FreeCalypso > hg > fc-tourmaline
changeset 225:09ea37852fd6
add function to convert Ichg ADC readings to mA
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 29 Apr 2021 05:13:09 +0000 |
parents | bb1f572ac098 |
children | 4f3bbe9515f8 |
files | components/fchg src/cs/drivers/drv_app/fchg/fchg_api.h src/cs/drivers/drv_app/fchg/fchg_convert_mA.c |
diffstat | 3 files changed, 29 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/components/fchg Wed Apr 28 05:44:07 2021 +0000 +++ b/components/fchg Thu Apr 29 05:13:09 2021 +0000 @@ -36,6 +36,7 @@ SRCDIR=$SRC/cs/drivers/drv_app/fchg cfile_plain $SRCDIR/fchg_api.c +cfile_plain $SRCDIR/fchg_convert_mA.c cfile_plain $SRCDIR/fchg_default_batt.c cfile_plain $SRCDIR/fchg_env.c cfile_plain $SRCDIR/fchg_ffs_init.c
--- a/src/cs/drivers/drv_app/fchg/fchg_api.h Wed Apr 28 05:44:07 2021 +0000 +++ b/src/cs/drivers/drv_app/fchg/fchg_api.h Thu Apr 29 05:13:09 2021 +0000 @@ -27,5 +27,6 @@ T_RV_RET fchg_user_charge_control(enum fchg_user_charge_ctrl); T_RV_RET fchg_get_current_state(struct fchg_user_state *); T_RV_RET fchg_register_event_handler(T_FCHG_EVENT_HANDLER); +UINT16 fchg_convert_ichg_to_mA(UINT16 ichg); #endif /* include guard */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/drivers/drv_app/fchg/fchg_convert_mA.c Thu Apr 29 05:13:09 2021 +0000 @@ -0,0 +1,27 @@ +/* + * This module implements the fchg_convert_ichg_to_mA() function, + * converting charging current (Ichg) measurements from ADC units + * to human-friendly mA numbers. In the phone hardware this current + * measurement is made with the aid of a current measurement resistor + * placed in the charging current path (the Iota chip's MADC actually + * measures the voltage across this resistor, between VCCS and VBATS + * terminals), and it just so happens that different phone designers + * have chosen different values for this current measurement resistor: + * Pirelli DP-L10 uses 0.20R, following TI's canon, whereas Mot C1xx + * phones use 0.15R. Because of these different resistor values, + * the formula for converting ADC units to mA becomes target-dependent. + */ + +#include "fchg/fchg_api.h" +#include "fc-target.h" + +UINT16 fchg_convert_ichg_to_mA(UINT16 ichg) +{ +#ifdef CONFIG_TARGET_COMPAL + /* formula for 0.15R */ + return (ichg * 875 / 768); +#else + /* formula for 0.20R */ + return (ichg * 875 / 1024); +#endif +}