view src/cs/drivers/drv_app/fchg/fchg_convert_mA.c @ 283:d9e3f3e293ac

etm_audio.c: fix off-by-one error in auw of FIR coefficients The implementation of auw operation for UL or DL FIR upload had this bug: the number of 16-bit shortwords copied into the RVF-allocated temporary buffer was one too many, causing memory corruption errors. The present change fixes this bug.
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 08 Nov 2021 02:54:04 +0000
parents 09ea37852fd6
children
line wrap: on
line source

/*
 * 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
}