FreeCalypso > hg > fc-tourmaline
view src/cs/services/etm/etm_api.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
/******************************************************************************** * Enhanced TestMode (ETM) * @file etm_api.c * * API for ETM SWE. * * @author Kim T. Peteren (ktp@ti.com) * @version 0.1 * * * History: * * Date Modification * ------------------------------------ * 11/06/2003 Creation * * (C) Copyright 2003 by Texas Instruments Incorporated, All Rights Reserved *********************************************************************************/ #ifndef __ETM_API_H_ #define __ETM_API_H_ #include "etm/etm_misc.h" #include "etm/etm_messages_i.h" /****************************************************************************** * ETM Packet *****************************************************************************/ typedef struct { T_RV_HDR header; char size; uint8 data[255]; } T_ETM_MAIL; /****************************************************************************** * Messages *****************************************************************************/ /* Event return to entity */ #define ETM_DATA_READY (ETM_MESSAGES_OFFSET | 0x010) typedef struct { T_RV_HDR header; char data[255]; } T_ETM_DATA_READY; /****************************************************************************** * Prototypes *****************************************************************************/ int etm_register(char name[], int mid, int task_id, T_RVF_ADDR_ID addr_id, ETM_CALLBACK_FUNC callback); int etm_unregister(char name[], int mid, int task_id, T_RVF_ADDR_ID addr_id, ETM_CALLBACK_FUNC callback); int etm_pkt_send(T_ETM_PKT *pkt); int etm_pkt_putdata(T_ETM_PKT *pkt, const void *buf, int size); int etm_get8(void *buf); int etm_get16(void *buf); int etm_get32(void *buf); int etm_pkt_put8(T_ETM_PKT *p, int value); int etm_pkt_put16(T_ETM_PKT *p, int value); int etm_pkt_put32(T_ETM_PKT *p, int value); #endif /* __ETM_API_H_ */