mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-04-19 04:28:06 +07:00
lp8788-charger: Fix ADC channel names
The name of ADC channel is configurable in the platform side. This name is referenced in the IIO consumer driver. To get the IIO channel, specific name in the platform data is used as an parameter of the iio_channel_get(). Thus, lp8788_adc_id platform data are replaced with specific names. Signed-off-by: Milo(Woogyom) Kim <milo.kim@ti.com> Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
This commit is contained in:
parent
340968de48
commit
08d816b8cb
@ -584,50 +584,18 @@ static void lp8788_setup_adc_channel(const char *consumer_name,
|
|||||||
struct lp8788_charger *pchg)
|
struct lp8788_charger *pchg)
|
||||||
{
|
{
|
||||||
struct lp8788_charger_platform_data *pdata = pchg->pdata;
|
struct lp8788_charger_platform_data *pdata = pchg->pdata;
|
||||||
struct device *dev = pchg->lp->dev;
|
|
||||||
struct iio_channel *chan;
|
struct iio_channel *chan;
|
||||||
enum lp8788_adc_id id;
|
|
||||||
const char *chan_name[LPADC_MAX] = {
|
|
||||||
[LPADC_VBATT_5P5] = "vbatt-5p5",
|
|
||||||
[LPADC_VBATT_6P0] = "vbatt-6p0",
|
|
||||||
[LPADC_VBATT_5P0] = "vbatt-5p0",
|
|
||||||
[LPADC_ADC1] = "adc1",
|
|
||||||
[LPADC_ADC2] = "adc2",
|
|
||||||
[LPADC_ADC3] = "adc3",
|
|
||||||
[LPADC_ADC4] = "adc4",
|
|
||||||
};
|
|
||||||
|
|
||||||
if (!pdata)
|
if (!pdata)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
id = pdata->vbatt_adc;
|
/* ADC channel for battery voltage */
|
||||||
switch (id) {
|
chan = iio_channel_get(consumer_name, pdata->adc_vbatt);
|
||||||
case LPADC_VBATT_5P5:
|
pchg->chan[LP8788_VBATT] = IS_ERR(chan) ? NULL : chan;
|
||||||
case LPADC_VBATT_6P0:
|
|
||||||
case LPADC_VBATT_5P0:
|
|
||||||
chan = iio_channel_get(consumer_name, chan_name[id]);
|
|
||||||
pchg->chan[LP8788_VBATT] = IS_ERR(chan) ? NULL : chan;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
dev_err(dev, "invalid ADC id for VBATT: %d\n", id);
|
|
||||||
pchg->chan[LP8788_VBATT] = NULL;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = pdata->batt_temp_adc;
|
/* ADC channel for battery temperature */
|
||||||
switch (id) {
|
chan = iio_channel_get(consumer_name, pdata->adc_batt_temp);
|
||||||
case LPADC_ADC1:
|
pchg->chan[LP8788_BATT_TEMP] = IS_ERR(chan) ? NULL : chan;
|
||||||
case LPADC_ADC2:
|
|
||||||
case LPADC_ADC3:
|
|
||||||
case LPADC_ADC4:
|
|
||||||
chan = iio_channel_get(consumer_name, chan_name[id]);
|
|
||||||
pchg->chan[LP8788_BATT_TEMP] = IS_ERR(chan) ? NULL : chan;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
dev_err(dev, "invalid ADC id for BATT_TEMP : %d\n", id);
|
|
||||||
pchg->chan[LP8788_BATT_TEMP] = NULL;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void lp8788_release_adc_channel(struct lp8788_charger *pchg)
|
static void lp8788_release_adc_channel(struct lp8788_charger *pchg)
|
||||||
|
@ -211,16 +211,16 @@ struct lp8788_chg_param {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* struct lp8788_charger_platform_data
|
* struct lp8788_charger_platform_data
|
||||||
* @vbatt_adc : adc selection id for battery voltage
|
* @adc_vbatt : adc channel name for battery voltage
|
||||||
* @batt_temp_adc : adc selection id for battery temperature
|
* @adc_batt_temp : adc channel name for battery temperature
|
||||||
* @max_vbatt_mv : used for calculating battery capacity
|
* @max_vbatt_mv : used for calculating battery capacity
|
||||||
* @chg_params : initial charging parameters
|
* @chg_params : initial charging parameters
|
||||||
* @num_chg_params : numbers of charging parameters
|
* @num_chg_params : numbers of charging parameters
|
||||||
* @charger_event : the charger event can be reported to the platform side
|
* @charger_event : the charger event can be reported to the platform side
|
||||||
*/
|
*/
|
||||||
struct lp8788_charger_platform_data {
|
struct lp8788_charger_platform_data {
|
||||||
enum lp8788_adc_id vbatt_adc;
|
const char *adc_vbatt;
|
||||||
enum lp8788_adc_id batt_temp_adc;
|
const char *adc_batt_temp;
|
||||||
unsigned int max_vbatt_mv;
|
unsigned int max_vbatt_mv;
|
||||||
struct lp8788_chg_param *chg_params;
|
struct lp8788_chg_param *chg_params;
|
||||||
int num_chg_params;
|
int num_chg_params;
|
||||||
|
Loading…
Reference in New Issue
Block a user