FreeCalypso > hg > fc-tourmaline
view src/cs/services/lls/lls_api.c @ 281:a75eefbf8be4
Phone boot with PWON: weed out short button presses
Every standard end user phone has a design provision, most naturally
implemented in firmware, whereby the PWON button effects a boot only
if it is held down long enough - short presses of this PWON button
are detected, assumed to be spurious and cause the fw to power back off
instead of proceeding with boot. The present change introduces this
standard function in FreeCalypso.
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Fri, 24 Sep 2021 02:03:08 +0000 |
| parents | 04aaa5622fa7 |
| children |
line wrap: on
line source
/** * @file lls_api.c * * Implementation of Functions. * * @author Laurent Sollier (l-sollier@ti.com) * @version 0.1 */ /* * History: * * Date Author Modification * ---------------------------------------- * 03/12/2002 L Sollier Create * * * (C) Copyright 2002 by Texas Instruments Incorporated, All Rights Reserved */ #ifndef _WINDOWS #include "l1sw.cfg" #include "chipset.cfg" #endif #include "lls/lls_api.h" #include "lls/lls_env.h" #include "lls/lls_i.h" /** External declaration */ extern T_LLS_ENV_CTRL_BLK* lls_env_ctrl_blk; /* FreeCalypso addition for L1 sleep manager */ unsigned char iota_ledb_status; /** * @name Functions implementation * */ /*@{*/ /** * function: lls_switch_on */ T_RV_RET lls_switch_on(T_LLS_EQUIPMENT equipment_sort) { #if (ANLG_FAM == 2) T_RV_RET ret = RV_OK; UINT8 equipment_index; /* Check if initialization has been correctly done */ if ( (lls_env_ctrl_blk == 0) || (lls_env_ctrl_blk->swe_is_initialized == FALSE) ) { LLS_SEND_TRACE("LLS: Initialization is not yet done or failed", RV_TRACE_LEVEL_ERROR); return RV_INTERNAL_ERR; } LLS_SEND_TRACE_PARAM("LLS: Switch ON request for equipment", equipment_sort, RV_TRACE_LEVEL_DEBUG_HIGH); /* Retrieve index of the equipment in the table */ ret = lls_search_index(equipment_sort, &equipment_index); if (ret != RV_OK) { LLS_SEND_TRACE("LLS: Equipment is unknown", RV_TRACE_LEVEL_ERROR); return ret; } /* FreeCalypso addition */ if (equipment_sort == LLS_BACKLIGHT) iota_ledb_status = 1; ret = lls_manage_equipment(equipment_index, SWITCH_ON); return ret; #else return RV_NOT_SUPPORTED; #endif } /** * function: lls_switch_off * */ T_RV_RET lls_switch_off(T_LLS_EQUIPMENT equipment_sort) { #if (ANLG_FAM == 2) T_RV_RET ret = RV_OK; UINT8 equipment_index; /* Check if initialization has been correctly done */ if ( (lls_env_ctrl_blk == 0) || (lls_env_ctrl_blk->swe_is_initialized == FALSE) ) { LLS_SEND_TRACE("LLS: Initialization is not yet done or failed", RV_TRACE_LEVEL_ERROR); return RV_INTERNAL_ERR; } LLS_SEND_TRACE_PARAM("LLS: Switch OFF request for equipment", equipment_sort, RV_TRACE_LEVEL_DEBUG_HIGH); /* Retrieve index of the equipment in the table */ ret = lls_search_index(equipment_sort, &equipment_index); if (ret != RV_OK) { LLS_SEND_TRACE("LLS: Equipment is unknown", RV_TRACE_LEVEL_ERROR); return ret; } ret = lls_manage_equipment(equipment_index, SWITCH_OFF); /* FreeCalypso addition */ if (equipment_sort == LLS_BACKLIGHT) iota_ledb_status = 0; return ret; #else return RV_NOT_SUPPORTED; #endif } /*@}*/
