summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/target/arm/imx233/lradc-imx233.c12
-rw-r--r--firmware/target/arm/imx233/lradc-imx233.h2
2 files changed, 8 insertions, 6 deletions
diff --git a/firmware/target/arm/imx233/lradc-imx233.c b/firmware/target/arm/imx233/lradc-imx233.c
index 1101e3d..8b065bf 100644
--- a/firmware/target/arm/imx233/lradc-imx233.c
+++ b/firmware/target/arm/imx233/lradc-imx233.c
@@ -177,12 +177,14 @@ int imx233_lradc_sense_die_temperature(int nmos_chan, int pmos_chan)
return (diff * 1012) / 4000;
}
-void imx233_lradc_setup_battery_conversion(bool automatic, int scale_factor)
+void imx233_lradc_setup_battery_conversion(bool automatic, unsigned long scale_factor)
{
- __REG_CLR(HW_LRADC_CONVERSION) = HW_LRADC_CONVERSION__AUTOMATIC |
- HW_LRADC_CONVERSION__SCALE_FACTOR_BM;
- __REG_SET(HW_LRADC_CONVERSION) = scale_factor |
- automatic ? HW_LRADC_CONVERSION__AUTOMATIC : 0;
+ __REG_CLR(HW_LRADC_CONVERSION) = HW_LRADC_CONVERSION__SCALE_FACTOR_BM;
+ __REG_SET(HW_LRADC_CONVERSION) = scale_factor;
+ if(automatic)
+ __REG_SET(HW_LRADC_CONVERSION) = HW_LRADC_CONVERSION__AUTOMATIC;
+ else
+ __REG_CLR(HW_LRADC_CONVERSION) = HW_LRADC_CONVERSION__AUTOMATIC;
}
int imx233_lradc_read_battery_voltage(void)
diff --git a/firmware/target/arm/imx233/lradc-imx233.h b/firmware/target/arm/imx233/lradc-imx233.h
index fb0085f..d79ebe0 100644
--- a/firmware/target/arm/imx233/lradc-imx233.h
+++ b/firmware/target/arm/imx233/lradc-imx233.h
@@ -130,7 +130,7 @@ void imx233_lradc_release_delay(int dchan);
* channels must already be configured as nmos and pmos */
int imx233_lradc_sense_die_temperature(int nmos_chan, int pmos_chan);
-void imx233_lradc_setup_battery_conversion(bool automatic, int scale_factor);
+void imx233_lradc_setup_battery_conversion(bool automatic, unsigned long scale_factor);
// read scaled voltage, only available after proper setup
int imx233_lradc_read_battery_voltage(void);