FreeCalypso > hg > fc-tourmaline
view components/l1_ext @ 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 | 598958aec071 |
children | edcb8364d45b |
line wrap: on
line source
# Building l1_ext.lib CFLAGS="-g -me -pw2 -mt -o -mw" CPPFLAGS="-DRV_TRACE_LEVEL_WARNING=2 -DTOOL_CHOICE=0 -D_TMS470" # Includes CPPFLAGS="$CPPFLAGS -I../config" CPPFLAGS="$CPPFLAGS -I$SRC/nucleus" CPPFLAGS="$CPPFLAGS -I.." CPPFLAGS="$CPPFLAGS -I$SRC/gpf/frame/cust_os" CPPFLAGS="$CPPFLAGS -I$SRC/cs/system" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_app" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_app/buzzer" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_app/ffs" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_app/sim" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_app/uart" CPPFLAGS="$CPPFLAGS -I$SRC/cs/riviera" CPPFLAGS="$CPPFLAGS -I$SRC/cs/riviera/rv" CPPFLAGS="$CPPFLAGS -I$SRC/cs/riviera/rvt" CPPFLAGS="$CPPFLAGS -I$SRC/cs/services" CPPFLAGS="$CPPFLAGS -I$SRC/cs/services/audio" CPPFLAGS="$CPPFLAGS -I$SRC/cs/layer1/audio_cust0" CPPFLAGS="$CPPFLAGS -I$SRC/cs/layer1/audio_include" CPPFLAGS="$CPPFLAGS -I$SRC/cs/layer1/cust0" CPPFLAGS="$CPPFLAGS -I$SRC/cs/layer1/hmacs" CPPFLAGS="$CPPFLAGS -I$SRC/cs/layer1/include" CPPFLAGS="$CPPFLAGS -I$SRC/cs/layer1/p_include" CPPFLAGS="$CPPFLAGS -I$SRC/cs/layer1/tm_include" CPPFLAGS="$CPPFLAGS -I$SRC/cs/layer1/tm_cust0" CPPFLAGS="$CPPFLAGS -I$SRC/cs/layer1/dyn_dwl_include" CPPFLAGS="$CPPFLAGS -I$SRC/cs/layer1/tpu_drivers/p_source0" CPPFLAGS="$CPPFLAGS -I$SRC/cs/layer1/tpu_drivers/source0" CPPFLAGS="$CPPFLAGS -I$SRC/cs/layer1/tpu_drivers/source" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/abb" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/armio" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/clkm" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/conf" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/dma" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/dsp_dwnld" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/inth" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/memif" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/rhea" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/security" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/spi" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/timer" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/uart" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/ulpd" # Source modules SRCDIR=$SRC/cs/layer1 cfile_plain $SRCDIR/cfile/l1_pwmgr.c cfile_plain $SRCDIR/cfile/l1_afunc.c cfile_plain $SRCDIR/cfile/l1_trace.c cfile_plain $SRCDIR/cfile/l1_init.c cfile_plain $SRCDIR/cfile/l1_sync.c cfile_plain $SRCDIR/cfile/l1_cmplx.c cfile_plain $SRCDIR/tm_cfile/l1tm_async.c cfile_plain $SRCDIR/tm_cfile/l1tm_func.c cfile_plain $SRCDIR/tm_cfile/l1tm_stats.c cfile_plain $SRCDIR/audio_cfile/l1audio_async.c cfile_plain $SRCDIR/audio_cfile/l1audio_afunc.c cfile_plain $SRCDIR/audio_cfile/l1audio_init.c cfile_plain $SRCDIR/audio_cfile/l1audio_drive.c cfile_plain $SRCDIR/audio_cfile/l1audio_back.c cfile_plain $SRCDIR/audio_cfile/l1audio_abb.c #cfile_plain $SRCDIR/gtt_cfile/l1gtt_async.c #cfile_plain $SRCDIR/gtt_cfile/l1gtt_sync.c #cfile_plain $SRCDIR/gtt_cfile/l1gtt_func.c #cfile_plain $SRCDIR/gtt_cfile/l1gtt_drive.c #cfile_plain $SRCDIR/gtt_cfile/l1gtt_init.c #cfile_plain $SRCDIR/gtt_cfile/l1gtt_back.c #cfile_plain $SRCDIR/gtt_cfile/l1gtt_baudot_functions.c #cfile_plain $SRCDIR/gtt_cfile/ctm/conv_encoder.c #cfile_plain $SRCDIR/gtt_cfile/ctm/conv_poly.c #cfile_plain $SRCDIR/gtt_cfile/ctm/ctm_receiver.c #cfile_plain $SRCDIR/gtt_cfile/ctm/ctm_transmitter.c #cfile_plain $SRCDIR/gtt_cfile/ctm/diag_interleaver.c #cfile_plain $SRCDIR/gtt_cfile/ctm/m_sequence.c #cfile_plain $SRCDIR/gtt_cfile/ctm/ucs_functions.c #cfile_plain $SRCDIR/gtt_cfile/ctm/diag_deinterleaver.c #cfile_plain $SRCDIR/gtt_cfile/ctm/fifo.c #cfile_plain $SRCDIR/gtt_cfile/ctm/init_interleaver.c if [ "$L1_DYN_DSP_DWNLD" = 1 ] then cfile_plain $SRCDIR/dyn_dwl_cfile/l1_dyn_dwl_afunc.c cfile_plain $SRCDIR/dyn_dwl_cfile/l1_dyn_dwl_async.c cfile_plain $SRCDIR/dyn_dwl_cfile/l1_dyn_dwl_init.c cfile_plain $SRCDIR/dyn_dwl_cfile/l1_dyn_dwl_sync.c cfile_plain $SRCDIR/dyn_dwl_cfile/l1_dyn_dwl_apihisr.c cfile_plain $SRCDIR/dyn_dwl_cfile/l1_dyn_dwl_func.c cfile_plain $SRCDIR/dsp1/Dyn_dwnld/tty_patch_file36_10.c cfile_plain $SRCDIR/dsp1/Dyn_dwnld/amr_mms_patch_file36_10.c cfile_plain $SRCDIR/dsp1/Dyn_dwnld/amr_sch_patch_file36_10.c cfile_plain $SRCDIR/dsp1/Dyn_dwnld/e2_patch_file36_10.c cfile_plain $SRCDIR/dsp1/Dyn_dwnld/speech_acoustic_patch_file36_10.c cfile_plain $SRCDIR/dsp1/Dyn_dwnld/gprs_patch_file36_10.c cfile_plain $SRCDIR/dsp1/patch_file36_10_dyn_dwl.c else cfile_plain $SRCDIR/dsp1/patch_file${DSP}_${CHIPSET}.c fi cfile_plain $SRCDIR/dsp1/leadboot.c if [ "$GPRS" = 1 ] then cfile_plain $SRCDIR/p_cfile/l1p_afun.c cfile_plain $SRCDIR/p_cfile/l1p_asyn.c cfile_plain $SRCDIR/p_cfile/l1p_cmpl.c cfile_plain $SRCDIR/p_cfile/l1p_sync.c fi # Different CFLAGS for l1_small.c CFLAGS="-g -me -pw2 -mw" cfile_plain $SRCDIR/cfile/l1_small.c # Different again for l1_async.c CFLAGS="-g -me -pw2 -mt -mw -o1" cfile_plain $SRCDIR/cfile/l1_async.c