FreeCalypso > hg > fc-tourmaline
annotate src/cs/services/fcbm/fcbm_powerkey_if.c @ 263:b5e8dfd114a7
Switch_ON(): go into charging boot mode on either CHGSTS or CHGPRES
If someone were to plug and then unplug a charger into a switched-off
phone in an extremely brief "glitch" manner, we should do an automatic
power-off on boot in this condition. When we were checking only
CHGPRES in Switch_ON(), we would go into Misc boot state instead,
which is undesirable. Now if we have a CHGSTS but not CHGPRES
condition, we will go into charging boot mode, and FCBM will then
do the automatic power-off upon detecting absence of the charger
in its periodic polling.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 14 May 2021 05:50:36 +0000 |
parents | baa738eeb842 |
children |
rev | line source |
---|---|
230
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This module implements the long-press-PWON interface for FCBM. |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 */ |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 #include "fcbm/fcbm_func_i.h" |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 #include "fcbm/fcbm_send_msg.h" |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include "kpd/kpd_api.h" |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 static void press_func(T_KPD_VIRTUAL_KEY_ID key) |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 { |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 fcbm_message_to_task(FCBM_START_PHONE); |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 } |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 static void release_func(void) |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 { |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 } |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 void fcbm_setup_long_pwon(void) |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 { |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 KP_Init(press_func, release_func); |
baa738eeb842
FCBM code implemented in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 } |