diff options
author | Michael Sparmann <theseven@rockbox.org> | 2009-10-08 20:56:51 +0000 |
---|---|---|
committer | Michael Sparmann <theseven@rockbox.org> | 2009-10-08 20:56:51 +0000 |
commit | 1fa5d49380a412aa909446d2afeb6c3894e392c6 (patch) | |
tree | 90e4eae3b09e33578e490ddb48a22e01a0832460 /firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c | |
parent | 32b367b042f7e12d06be42e026bc679d48796ede (diff) | |
download | rockbox-1fa5d49380a412aa909446d2afeb6c3894e392c6.tar.gz rockbox-1fa5d49380a412aa909446d2afeb6c3894e392c6.zip |
Implemented iPod Nano 2G power_off()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23014 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c')
-rw-r--r-- | firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c index fbd5157fb0..31f23ff9ff 100644 --- a/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c +++ b/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c | |||
@@ -26,20 +26,32 @@ | |||
26 | #include "ftl-target.h" | 26 | #include "ftl-target.h" |
27 | #include <string.h> | 27 | #include <string.h> |
28 | #include "panic.h" | 28 | #include "panic.h" |
29 | #include "pmu-target.h" | ||
30 | #include "lcd.h" | ||
29 | 31 | ||
30 | 32 | ||
31 | /* Power handling for S5L8700 based Meizu players | ||
32 | |||
33 | The M3 and M6 players appear to use the same pins for power, USB detection | ||
34 | and charging status. | ||
35 | */ | ||
36 | |||
37 | void power_off(void) | 33 | void power_off(void) |
38 | { | 34 | { |
39 | if (ftl_sync() != 0) panicf("Failed to unmount flash!"); | 35 | if (ftl_sync() != 0) panicf("Failed to unmount flash!"); |
40 | 36 | ||
41 | /* TODO: Really power-off */ | 37 | pmu_write(0x2b, 0); /* Kill the backlight, instantly. */ |
42 | panicf("Poweroff not implemented yet."); | 38 | pmu_write(0x29, 0); |
39 | |||
40 | lcd_off(); | ||
41 | |||
42 | pmu_switch_power(0, 0); | ||
43 | pmu_switch_power(2, 0); | ||
44 | pmu_switch_power(3, 0); | ||
45 | pmu_switch_power(4, 0); | ||
46 | pmu_switch_power(6, 0); | ||
47 | pmu_switch_power(7, 0); | ||
48 | |||
49 | pmu_write(0x36, pmu_read(0x36) & 0xF0); | ||
50 | pmu_write(0x34, pmu_read(0x34) & 0xF0); | ||
51 | pmu_write(0xD, pmu_read(0xD) | 0x40); | ||
52 | pmu_write(0xD, pmu_read(0xD) | 0x02); | ||
53 | pmu_write(0xC, 1); | ||
54 | |||
43 | while(1); | 55 | while(1); |
44 | } | 56 | } |
45 | 57 | ||