diff --git a/firmware/target/arm/imx233/lradc-imx233.c b/firmware/target/arm/imx233/lradc-imx233.c index 1101e3d32d..8b065bffea 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 fb0085fc74..d79ebe0eff 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);