aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/power/lp8788-charger.c
diff options
context:
space:
mode:
authorKim, Milo <Milo.Kim@ti.com>2012-10-21 20:18:54 -0400
committerAnton Vorontsov <anton.vorontsov@linaro.org>2012-11-17 23:44:44 -0500
commit08d816b8cb09de1fd8268c8f1dbc97c3cc435d67 (patch)
tree03b00f78898c730d521cd908a5593eb34a9f0241 /drivers/power/lp8788-charger.c
parent340968de484967f931d89d20a1344d213fa86fb8 (diff)
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>
Diffstat (limited to 'drivers/power/lp8788-charger.c')
-rw-r--r--drivers/power/lp8788-charger.c44
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
633static void lp8788_release_adc_channel(struct lp8788_charger *pchg) 601static void lp8788_release_adc_channel(struct lp8788_charger *pchg)