diff --git a/arch/arm/mach-msm/board-9615.c b/arch/arm/mach-msm/board-9615.c index 6c6a5c27136..53cec385342 100644 --- a/arch/arm/mach-msm/board-9615.c +++ b/arch/arm/mach-msm/board-9615.c @@ -132,10 +132,16 @@ static struct pm8xxx_adc_amux pm8018_adc_channels_data[] = { ADC_DECIMATION_TYPE2, ADC_SCALE_DEFAULT}, {"vph_pwr", CHANNEL_VPH_PWR, CHAN_PATH_SCALING2, AMUX_RSV1, ADC_DECIMATION_TYPE2, ADC_SCALE_DEFAULT}, - {"batt_therm", CHANNEL_BATT_THERM, CHAN_PATH_SCALING1, AMUX_RSV2, - ADC_DECIMATION_TYPE2, ADC_SCALE_BATT_THERM}, - {"batt_id", CHANNEL_BATT_ID, CHAN_PATH_SCALING1, AMUX_RSV2, - ADC_DECIMATION_TYPE2, ADC_SCALE_DEFAULT}, + /* AMUX8 is used to read either Batt_id/Batt_therm. + * Current configuration is to support Batt_id. If clients + * want to read the Batt_therm, the scaling function needs to be + * updated to use ADC_SCALE_BATT_THERM instead of ADC_SCALE_DEFAULT. + * E.g. + * {"batt_therm", CHANNEL_BATT_ID_THERM, CHAN_PATH_SCALING1, + * AMUX_RSV2, ADC_DECIMATION_TYPE2, ADC_SCALE_BATT_THERM}, + */ + {"batt_id", CHANNEL_BATT_ID_THERM, CHAN_PATH_SCALING1, + AMUX_RSV2, ADC_DECIMATION_TYPE2, ADC_SCALE_DEFAULT}, {"pmic_therm", CHANNEL_DIE_TEMP, CHAN_PATH_SCALING1, AMUX_RSV1, ADC_DECIMATION_TYPE2, ADC_SCALE_PMIC_THERM}, {"625mv", CHANNEL_625MV, CHAN_PATH_SCALING1, AMUX_RSV1, diff --git a/include/linux/mfd/pm8xxx/pm8xxx-adc.h b/include/linux/mfd/pm8xxx/pm8xxx-adc.h index d2b1cfcaff5..84f8e03899e 100644 --- a/include/linux/mfd/pm8xxx/pm8xxx-adc.h +++ b/include/linux/mfd/pm8xxx/pm8xxx-adc.h @@ -51,6 +51,10 @@ enum pm8xxx_adc_channels { CHANNEL_MPP_1, CHANNEL_MPP_2, CHANNEL_BATT_THERM, + /* PM8018 ADC Arbiter uses a single channel on AMUX8 + * to read either Batt_id or Batt_therm. + */ + CHANNEL_BATT_ID_THERM = CHANNEL_BATT_THERM, CHANNEL_BATT_ID, CHANNEL_USBIN, CHANNEL_DIE_TEMP,