FreeCalypso > hg > fc-magnetite
view src/cs/drivers/drv_app/pwr/pwr_cust.h @ 673:62a5285e014a
Lorekeeping: allow tpudrv-leonardo.lib on Leonardo/Tango
Back in 2015 the Mother's idea was to produce a FreeCalypso development
board that would be a clone of TI Leonardo, including the original
quadband RFFE; one major additional stipulation was that this board
needed to be able to run original unmodified TCS211-20070608 firmware
with all blobs intact, with only minimal binary patches to main.lib
and tpudrv.lib. The necessary patched libs were produced at that time
in the tcs211-patches repository.
That plan was changed and we produced FCDEV3B instead, with Openmoko's
triband RFFE instead of Leonardo quadband, but when FC Magnetite started
in 2016, a TPUDRV_blob= provision was still made, allowing the possibility
of patching OM's tpudrv.lib for a restored Leonardo RFFE.
Now in 2020 we have FC Tango which is essentially a verbatim clone of
Leonardo core, including the original quadband RFFE. We have also
deblobbed our firmware so much that we have absolutely no real need
for a blob version of tpudrv.lib - but I thought it would be neat to put
the ancient TPUDRV_blob= mechanism (classic config) to its originally
intended use, just for the heck of it.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 29 May 2020 03:55:36 +0000 |
parents | c93a236e0d50 |
children |
line wrap: on
line source
/******************************************************************************* * * pwr_cust.h * * Purpose: This file contains definitions for battery management. * These definitions can be modified by the customer. * * Author Candice Bazanegue (c-brille@ti.com) * * * (C) Texas Instruments 2001 * ******************************************************************************/ #ifndef __PWR_CUST_H__ #define __PWR_CUST_H__ #include "pwr/pwr_api.h" /* Constants relative to the battery type */ #define BAT_TYPE_LI_ION_MIN 0x400 #define BAT_TYPE_LI_ION_MAX 0x450 /* Constants relative to the charging process */ #define CONSTANT_VOLTAGE_VALUE 4200 // (mV) /* for CV charge */ #define CONSTANT_CURRENT_VALUE 500 // (mA) /* for CI charge */ #define END_OF_CHARGE_I 150 // (mA) /* for CV charge */ #define END_OF_CHARGE_V 4200 // (mV) /* for CI charge */ #define CHARGE_START_AGAIN_CAPACITY 75 /* capacity threshold under which */ /* the charge is started again if */ /* the charger has been left plugged. */ /* the chosen value must be part of the */ /* a_pwr_thresholds array. */ /* Constants relative to the battery temperature */ #define BAT_TEMPERATURE_MAX_LI_ION (50) /* Celsius degrees */ #define BAT_TEMPERATURE_MIN_LI_ION (0) /* Celsius degrees */ #define BAT_TEMPERATURE_MAX BAT_TEMPERATURE_MAX_LI_ION #define BAT_TEMPERATURE_MIN BAT_TEMPERATURE_MIN_LI_ION #define THEN_10uA 0x0041 /* THSENS0 , THSENS1, THSENS2 = 0, 0, 0 MESBAT = 1 */ #define THEN_30uA 0x0051 /* THSENS0 , THSENS1, THSENS2 = 0, 1, 0 MESBAT = 1 */ #define THEN_50uA 0x0061 /* THSENS0 , THSENS1, THSENS2 = 0, 0, 1 MESBAT = 1 */ #define THEN_80uA 0x0079 /* THSENS0 , THSENS1, THSENS2 = 1, 1, 1 MESBAT = 1 */ #define MESBAT 0x0001 /* Resistive divider connected to main battery */ /* Constants relative to the timers duration */ #define PWR_BAT_TEST_TIME_1 (10) /* 10 ms */ #define PWR_BAT_TEST_TIME_2 (5000) /* 5s */ #define PWR_CALIBRATION_TIME_1 (10) /* 10 ms */ #define PWR_CALIBRATION_TIME_2 (5000) /* 5s */ #define PWR_CI_CHECKING_TIME (4000) /* 4s */ #define PWR_CV_CHECKING_TIME (4000) /* 4s */ #define PWR_DISCHARGE_CHECKING_TIME_1 (60000) /* 1 minute */ #define PWR_DISCHARGE_CHECKING_TIME_2 (10000) /* 10s */ typedef struct { UINT16 bat_voltage; T_PWR_PERCENT remain_capa; }T_PWR_THRESHOLDS; typedef enum { LI_ION, UNKNOWN } T_PWR_BATTERY_TYPE; #define NB_THRESHOLDS (6) /* number of elements in the a_pwr_thresholds array */ extern const T_PWR_THRESHOLDS a_pwr_thresholds[NB_THRESHOLDS]; /* Prototypes */ UINT16 pwr_adc_to_mvolt(UINT16 bat_voltage_madc); UINT16 pwr_adc_to_mA(UINT16 current_madc); UINT8 pwr_bat_temp_within_limits(INT16 battery_temperature); UINT8 pwr_madc_to_Celsius_conv(UINT8 bias_current, UINT16 madc_temp, INT16 *celsius_temp); void pwr_get_battery_type(void); void pwr_get_battery_temperature(void); T_PWR_PERCENT pwr_get_capacity_vs_voltage(UINT16 bat_voltage); void pwr_bat_50uA_temp_test_timer_process(void); void pwr_bat_10uA_temp_test_timer_process(void); void pwr_type_test_timer_process(void); #endif /* __PWR_CUST_H__ */