FreeCalypso > hg > fc-tourmaline
view src/gpf/tst/idle.h @ 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
/* +------------------------------------------------------------------------------ | File: idle.h +------------------------------------------------------------------------------ | Copyright Texas Instruments 2002 | All rights reserved. | +------------------------------------------------------------------------------ | Purpose: Definitions for the IDLE entity. | $Identity:$ +------------------------------------------------------------------------------ */ #ifndef IDLE_H #define IDLE_H /*==== INCLUDES ==============================================================*/ /*==== CONSTS ================================================================*/ #ifdef VSI_CALLER #undef VSI_CALLER #define VSI_CALLER idle_handle, #define VSI_CALLER_SINGLE idle_handle #endif #define hCommTST idle_hCommTST /* Communication handle to TST */ #define IDLE_REQ 0x00000010 #define IDLE_CNF 0x00010010 #ifndef __T_IDLE_CNF__ #define __T_IDLE_CNF__ typedef struct { U8 dummy; /*< 0: 1> */ } T_IDLE_CNF; #endif #ifndef __T_IDLE_REQ__ #define __T_IDLE_REQ__ typedef struct { U8 dummy; /*< 0: 1> */ } T_IDLE_REQ; #endif /*==== TYPES =================================================================*/ /*==== EXPORTS ===============================================================*/ #ifdef IDLE_PEI_C /* Communication handles */ T_HANDLE idle_handle; T_HANDLE hCommTST = VSI_ERROR; #else /* IDLE_PEI_C */ extern T_HANDLE idle_handle; extern T_HANDLE hCommTST; #endif /* IDLE_PEI_C */ #endif /* IDLE_H */ /*==== END OF FILE ===========================================================*/