diff options
Diffstat (limited to 'drivers/power')
-rw-r--r-- | drivers/power/lp8788-charger.c | 44 |
1 files changed, 6 insertions, 38 deletions
diff --git a/drivers/power/lp8788-charger.c b/drivers/power/lp8788-charger.c index 1afa5f7a5359..fb592bfbec6e 100644 --- a/drivers/power/lp8788-charger.c +++ b/drivers/power/lp8788-charger.c | |||
@@ -584,50 +584,18 @@ static void lp8788_setup_adc_channel(const char *consumer_name, | |||
584 | struct lp8788_charger *pchg) | 584 | struct lp8788_charger *pchg) |
585 | { | 585 | { |
586 | struct lp8788_charger_platform_data *pdata = pchg->pdata; | 586 | struct lp8788_charger_platform_data *pdata = pchg->pdata; |
587 | struct device *dev = pchg->lp->dev; | ||
588 | struct iio_channel *chan; | 587 | struct iio_channel *chan; |
589 | enum lp8788_adc_id id; | ||
590 | const char *chan_name[LPADC_MAX] = { | ||
591 | [LPADC_VBATT_5P5] = "vbatt-5p5", | ||
592 | [LPADC_VBATT_6P0] = "vbatt-6p0", | ||
593 | [LPADC_VBATT_5P0] = "vbatt-5p0", | ||
594 | [LPADC_ADC1] = "adc1", | ||
595 | [LPADC_ADC2] = "adc2", | ||
596 | [LPADC_ADC3] = "adc3", | ||
597 | [LPADC_ADC4] = "adc4", | ||
598 | }; | ||
599 | 588 | ||
600 | if (!pdata) | 589 | if (!pdata) |
601 | return; | 590 | return; |
602 | 591 | ||
603 | id = pdata->vbatt_adc; | 592 | /* ADC channel for battery voltage */ |
604 | switch (id) { | 593 | chan = iio_channel_get(consumer_name, pdata->adc_vbatt); |
605 | case LPADC_VBATT_5P5: | 594 | pchg->chan[LP8788_VBATT] = IS_ERR(chan) ? NULL : chan; |
606 | case LPADC_VBATT_6P0: | ||
607 | case LPADC_VBATT_5P0: | ||
608 | chan = iio_channel_get(consumer_name, chan_name[id]); | ||
609 | pchg->chan[LP8788_VBATT] = IS_ERR(chan) ? NULL : chan; | ||
610 | break; | ||
611 | default: | ||
612 | dev_err(dev, "invalid ADC id for VBATT: %d\n", id); | ||
613 | pchg->chan[LP8788_VBATT] = NULL; | ||
614 | break; | ||
615 | } | ||
616 | 595 | ||
617 | id = pdata->batt_temp_adc; | 596 | /* ADC channel for battery temperature */ |
618 | switch (id) { | 597 | chan = iio_channel_get(consumer_name, pdata->adc_batt_temp); |
619 | case LPADC_ADC1: | 598 | pchg->chan[LP8788_BATT_TEMP] = IS_ERR(chan) ? NULL : chan; |
620 | case LPADC_ADC2: | ||
621 | case LPADC_ADC3: | ||
622 | case LPADC_ADC4: | ||
623 | chan = iio_channel_get(consumer_name, chan_name[id]); | ||
624 | pchg->chan[LP8788_BATT_TEMP] = IS_ERR(chan) ? NULL : chan; | ||
625 | break; | ||
626 | default: | ||
627 | dev_err(dev, "invalid ADC id for BATT_TEMP : %d\n", id); | ||
628 | pchg->chan[LP8788_BATT_TEMP] = NULL; | ||
629 | break; | ||
630 | } | ||
631 | } | 599 | } |
632 | 600 | ||
633 | static void lp8788_release_adc_channel(struct lp8788_charger *pchg) | 601 | static void lp8788_release_adc_channel(struct lp8788_charger *pchg) |