imx233: rework adc battery temperature sensor handling

Change-Id: I770729d7246b0ad8bc6fc5d6e45861325f6b790c
This commit is contained in:
Amaury Pouly 2012-05-19 13:08:05 +02:00
parent bc4631055f
commit 25feb00a64
4 changed files with 17 additions and 11 deletions

View file

@ -19,10 +19,6 @@
* *
****************************************************************************/ ****************************************************************************/
#include "config.h"
#include "adc.h"
#include "adc-target.h"
#include "system.h"
#include "adc-imx233.h" #include "adc-imx233.h"
void adc_init(void) void adc_init(void)
@ -73,11 +69,11 @@ static short adc_read_virtual(int c)
imx233_lradc_release_channel(nmos_chan); imx233_lradc_release_channel(nmos_chan);
return val; return val;
} }
#ifdef IMX233_ADC_BATT_TEMP_SENSOR #ifdef IMX233_BATT_TEMP_SENSOR
case IMX233_ADC_BATT_TEMP: case IMX233_ADC_BATT_TEMP:
{ {
int virt = imx233_lradc_acquire_channel(TIMEOUT_BLOCK); int virt = imx233_lradc_acquire_channel(TIMEOUT_BLOCK);
int val = imx233_lradc_sense_ext_temperature(virt, IMX233_ADC_BATT_TEMP_SENSOR); int val = imx233_lradc_sense_ext_temperature(virt, IMX233_BATT_TEMP_SENSOR);
imx233_lradc_release_channel(virt); imx233_lradc_release_channel(virt);
return val; return val;
} }

View file

@ -22,15 +22,17 @@
#define _ADC_IMX233_H_ #define _ADC_IMX233_H_
#include "system.h" #include "system.h"
#include "adc.h"
#include "adc-target.h"
#include "powermgmt-target.h"
#include "lradc-imx233.h" #include "lradc-imx233.h"
#include "adc-imx233.h"
/* Virtual channels */ /* Virtual channels */
#define IMX233_ADC_BATTERY -1 /* Battery voltage (mV) */ #define IMX233_ADC_BATTERY -1 /* Battery voltage (mV) */
#define IMX233_ADC_DIE_TEMP -2 /* Die temperature (°C) */ #define IMX233_ADC_DIE_TEMP -2 /* Die temperature (°C) */
#define IMX233_ADC_VDDIO -3 /* VddIO voltage (mV) */ #define IMX233_ADC_VDDIO -3 /* VddIO voltage (mV) */
#define IMX233_ADC_VDD5V -4 /* Vdd5V voltage (mV) */ #define IMX233_ADC_VDD5V -4 /* Vdd5V voltage (mV) */
#ifdef IMX233_ADC_BATT_TEMP_SENSOR #ifdef IMX233_BATT_TEMP_SENSOR
#define IMX233_ADC_BATT_TEMP -5 /* Battery temperature (°C) */ #define IMX233_ADC_BATT_TEMP -5 /* Battery temperature (°C) */
#endif #endif

View file

@ -30,6 +30,4 @@
#define ADC_BATT_TEMP 4 #define ADC_BATT_TEMP 4
#define ADC_CH2 5 #define ADC_CH2 5
#define IMX233_ADC_BATT_TEMP_SENSOR 0
#endif #endif

View file

@ -37,12 +37,22 @@
* - top off period: 30 min * - top off period: 30 min
* - high die temperature: 71 °C * - high die temperature: 71 °C
* - low die temperature: 56 °C * - low die temperature: 56 °C
* - safe temperature current: 30 mA * - safe die temperature current: 30 mA
* - battery temperature channel: 0
* - high battery temperature: 1100
* - low battery temperature: 220
* - safe battery temperature current: 0 mA
* - low DCDC battery voltage: 3.9 V
*/ */
#define IMX233_CHARGE_CURRENT 200 #define IMX233_CHARGE_CURRENT 200
#define IMX233_STOP_CURRENT 30 #define IMX233_STOP_CURRENT 30
#define IMX233_TOPOFF_TIMEOUT (30 * 60 * HZ) #define IMX233_TOPOFF_TIMEOUT (30 * 60 * HZ)
#define IMX233_CHARGING_TIMEOUT (4 * 3600 * HZ) #define IMX233_CHARGING_TIMEOUT (4 * 3600 * HZ)
#define IMX233_DIE_TEMP_HIGH 71
#define IMX233_DIE_TEMP_LOW 56
#define IMX233_BATT_TEMP_SENSOR 0
#define IMX233_BATT_TEMP_HIGH 1100
#define IMX233_BATT_TEMP_LOW 220
#endif /* POWERMGMT_TARGET_H */ #endif /* POWERMGMT_TARGET_H */