FreeCalypso > hg > freecalypso-tools
annotate target-utils/lunadrv/sleep.c @ 995:74024eb17e04
fc-loadtool help: improve language regarding 16 MiB flash chips
In FC project history, 16 MiB flash originally meant Pirelli DP-L10.
Then we got FCDEV3B with the same flash (our own design), but now we are
discovering more Calypso devices that used such large flash, both late
Calypso era (Sony Ericsson K2x0) as well as much earlier ones (FIC FLUID
devices.txt file with 2004 dates, Leonardo+ rev 5). Hence we need to
migrate to more generic or neutral language in associated documentation,
without giving elevated status to specific examples that drove our
early project history.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 03 Dec 2023 21:11:12 +0000 |
parents | 57f7db8c4f45 |
children |
rev | line source |
---|---|
849
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This module implements suspend and resume commands for entering |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * and exiting ILI9225G sleep mode. These commands are expected |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * to work the same on both HaoRan and Formike LCDs, but the |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 * current measurement resistor that allows one to see the actual |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 * power supply current drawn by the LCD is present only on lunalcd2 |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 * boards. |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 */ |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include "types.h" |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #include "luna.h" |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 void |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 cmd_suspend() |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 { |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 LCD_REG_WR(0x0007, 0); /* display off */ |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 wait_ARM_cycles(DELAY_1MS * 50); |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 LCD_REG_WR(0x0010, 1); /* suspend mode */ |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 } |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 void |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 cmd_resume() |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 { |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 LCD_REG_WR(0x0010, 0); /* out of suspend */ |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 wait_ARM_cycles(DELAY_1MS * 50); |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 LCD_REG_WR(0x0007, 0x1017); /* display on */ |
a66095c7f35f
lunadrv: add suspend and resume commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 } |
865
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
28 |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
29 /* |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
30 * If we wish to run sans-UI firmware on an LCD-equipped board, |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
31 * we would like to put the ILI9225G controller into its lowest |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
32 * power mode, without doing anything else to it. The following |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
33 * reset-suspend command prototypes this functionality. |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
34 */ |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
35 |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
36 void |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
37 cmd_reset_suspend() |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
38 { |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
39 /* reset pulse */ |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
40 CNTL_RST_REG |= EXT_RESET; |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
41 wait_ARM_cycles(DELAY_1MS * 10); |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
42 CNTL_RST_REG &= ~EXT_RESET; |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
43 /* datasheet says it needs 50 ms */ |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
44 wait_ARM_cycles(DELAY_1MS * 50); |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
45 /* and straight into suspend mode */ |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
46 LCD_REG_WR(0x0010, 1); |
57f7db8c4f45
lunadrv: add reset-suspend command
Mychaela Falconia <falcon@freecalypso.org>
parents:
849
diff
changeset
|
47 } |