FreeCalypso > hg > fc-tourmaline
view src/cs/layer1/tm_cust0/l1tm_tpu12.c @ 244:96784b8974eb
Switch_ON(): detect charging mode by CHGPRES bit
Consider the following scenario: the phone is on, the user plugs in
the charger, and then executes the power-off operation. In the Iota
VRPC this sequence translates to a switch-off immediately followed
by another switch-on - but the CHGSTS bit doesn't get set on the second
switch-on cycle! Disassembly of Pirelli's fw shows that they check
the CHGPRES bit, and furthermore, if both CHGPRES and ONBSTS are set,
the code they pass to their modified Power_ON_Button() function is
the one for charging - so let's adopt the same CHGPRES check and
the same priority order for switch-on causes.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 03 May 2021 06:51:29 +0000 |
parents | 4e78acac3d88 |
children |
line wrap: on
line source
/************* Revision Controle System Header ************* * GSM Layer 1 software * L1TM_TPU2.C * * Filename %M% * Version %I% * Date %G% * ************* Revision Controle System Header *************/ #include "l1_confg.h" #if (TESTMODE && (RF==12)) #include "tm_defs.h" #include "l1_const.h" #include "l1_types.h" #include "l1tm_defty.h" #include "l1tm_cust.h" #include "l1tm_tpu12.h" #if (AUDIO_TASK == 1) #include "l1audio_const.h" #include "l1audio_cust.h" #include "l1audio_defty.h" #endif ////////////////////////////henry #if (L1_GTT == 1) #include "l1gtt_const.h" #include "l1gtt_defty.h" #endif /////////////////////////// #include "l1_defty.h" #include "l1_msgty.h" #include "l1_tabs.h" #include "l1tm_msgty.h" #include "l1tm_varex.h" #if ((ANLG_FAM == 1) || (ANLG_FAM == 2)) #include "spi_drv.h" #endif #include "tpudrv12.h" #include "l1_rf12.h" #include <string.h> // Import band configuration from Flash module (need to replace by an access function) // External function prototypes void Cust_tm_tpu_table_write (T_TM_RETURN *tm_return, WORD8 index, UWORD8 size, UWORD8 table[]) { /* INDICES BETWEEN in [0..63] RANGE ARE RESERVED FOR TI RF MODULE */ // fill in the cid tm_return->cid = TPU_TABLE_WRITE; switch (index) { default: tm_return->size = 0; tm_return->status = E_BADINDEX; break; } // end of switch } void Cust_tm_tpu_table_read (T_TM_RETURN *tm_return, WORD8 index) { /* INDICES BETWEEN in [0..63] RANGE ARE RESERVED FOR TI RF MODULE */ // fill in the cid tm_return->cid = TPU_TABLE_READ; switch (index) { default: tm_return->size = 0; tm_return->status = E_BADINDEX; break; } // end of switch } #endif //TESTMODE