From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758278Ab2IYQS3 (ORCPT ); Tue, 25 Sep 2012 12:18:29 -0400 Received: from mail-pa0-f46.google.com ([209.85.220.46]:57024 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757719Ab2IYQOC (ORCPT ); Tue, 25 Sep 2012 12:14:02 -0400 From: mathieu.poirier@linaro.org To: linux-kernel@vger.kernel.org, cbou@mail.ru, dwmw2@infradead.org Cc: mathieu.poirier@linaro.org Subject: [PATCH 40/57] power: ab8500: ADC for battery thermistor Date: Tue, 25 Sep 2012 10:12:37 -0600 Message-Id: <1348589574-25655-41-git-send-email-mathieu.poirier@linaro.org> X-Mailer: git-send-email 1.7.5.4 In-Reply-To: <1348589574-25655-1-git-send-email-mathieu.poirier@linaro.org> References: <1348589574-25655-1-git-send-email-mathieu.poirier@linaro.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Marcus Cooper When using ABx500_ADC_THERM_BATCTRL the battery ID resistor is combined with a NTC resistor to both identify the battery and to measure its temperature. Signed-off-by: Marcus Cooper Signed-off-by: Mathieu Poirier Reviewed-by: Mian Yousaf KAUKAB Reviewed-by: Michel JAOUEN Reviewed-by: Hakan BERG Reviewed-by: Rabin VINCENT --- drivers/power/ab8500_btemp.c | 4 +++- include/linux/mfd/abx500.h | 2 ++ 2 files changed, 5 insertions(+), 1 deletions(-) diff --git a/drivers/power/ab8500_btemp.c b/drivers/power/ab8500_btemp.c index 506f124..56a3bb9 100644 --- a/drivers/power/ab8500_btemp.c +++ b/drivers/power/ab8500_btemp.c @@ -557,7 +557,9 @@ static int ab8500_btemp_id(struct ab8500_btemp *di) /* BATTERY_UNKNOWN is defined on position 0, skip it! */ for (i = BATTERY_UNKNOWN + 1; i < di->bat->n_btypes; i++) { if ((res <= di->bat->bat_type[i].resis_high) && - (res >= di->bat->bat_type[i].resis_low)) { + (res >= di->bat->bat_type[i].resis_low) && + (di->bat->bat_type[i].adc_therm == + di->bat->adc_therm)) { dev_dbg(di->dev, "Battery detected on %s" " low %d < res %d < high: %d" " index: %d\n", diff --git a/include/linux/mfd/abx500.h b/include/linux/mfd/abx500.h index 97e918f..cb2b82a 100644 --- a/include/linux/mfd/abx500.h +++ b/include/linux/mfd/abx500.h @@ -270,6 +270,7 @@ struct abx500_maxim_parameters { * @low_high_cur_lvl: charger current in temp low/high state in mA * @low_high_vol_lvl: charger voltage in temp low/high state in mV' * @battery_resistance: battery inner resistance in mOhm. + * @adc_therm: battery uses controller or resistor for temp. * @n_r_t_tbl_elements: number of elements in r_to_t_tbl * @r_to_t_tbl: table containing resistance to temp points * @n_v_cap_tbl_elements: number of elements in v_to_cap_tbl @@ -297,6 +298,7 @@ struct abx500_battery_type { int low_high_cur_lvl; int low_high_vol_lvl; int battery_resistance; + enum abx500_adc_therm adc_therm; int n_temp_tbl_elements; struct abx500_res_to_temp *r_to_t_tbl; int n_v_cap_tbl_elements; -- 1.7.5.4