diff options
Diffstat (limited to 'firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c')
-rw-r--r-- | firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c | 42 |
1 files changed, 26 insertions, 16 deletions
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c index cba1514aad..de3dbed853 100644 --- a/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c +++ b/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c | |||
@@ -32,18 +32,16 @@ | |||
32 | 32 | ||
33 | void power_off(void) | 33 | void power_off(void) |
34 | { | 34 | { |
35 | pmu_switch_power(0, 0); | 35 | pmu_ldo_on_in_standby(0, 0); |
36 | pmu_switch_power(2, 0); | 36 | pmu_ldo_on_in_standby(1, 0); |
37 | pmu_switch_power(3, 0); | 37 | pmu_ldo_on_in_standby(2, 0); |
38 | pmu_switch_power(4, 0); | 38 | pmu_ldo_on_in_standby(3, 0); |
39 | pmu_switch_power(6, 0); | 39 | pmu_ldo_on_in_standby(4, 0); |
40 | pmu_switch_power(7, 0); | 40 | pmu_ldo_on_in_standby(5, 0); |
41 | 41 | pmu_ldo_on_in_standby(6, 0); | |
42 | pmu_write(0x36, pmu_read(0x36) & 0xF0); | 42 | pmu_ldo_on_in_standby(7, 0); |
43 | pmu_write(0x34, pmu_read(0x34) & 0xF0); | 43 | pmu_set_wake_condition(0x42); /* USB inserted or EXTON1 */ |
44 | pmu_write(0xD, pmu_read(0xD) | 0x40); | 44 | pmu_enter_standby(); |
45 | pmu_write(0xD, pmu_read(0xD) | 0x02); | ||
46 | pmu_write(0xC, 1); | ||
47 | 45 | ||
48 | while(1); | 46 | while(1); |
49 | } | 47 | } |
@@ -54,15 +52,27 @@ void power_init(void) | |||
54 | } | 52 | } |
55 | 53 | ||
56 | #if CONFIG_CHARGING | 54 | #if CONFIG_CHARGING |
55 | |||
56 | #ifdef HAVE_USB_CHARGING_ENABLE | ||
57 | bool usb_charging_enable(bool on) | ||
58 | { | ||
59 | PDAT11 = (PDAT11 & ~1) | (on ? 1 : 0); | ||
60 | return on; | ||
61 | } | ||
62 | |||
63 | bool usb_charging_enabled(void) | ||
64 | { | ||
65 | return PDAT11 & 1; | ||
66 | } | ||
67 | #endif | ||
68 | |||
57 | unsigned int power_input_status(void) | 69 | unsigned int power_input_status(void) |
58 | { | 70 | { |
59 | /* TODO */ | 71 | return (PDAT14 & 0x80) ? POWER_INPUT_NONE : POWER_INPUT_MAIN; |
60 | return POWER_INPUT_NONE; | ||
61 | } | 72 | } |
62 | 73 | ||
63 | bool charging_state(void) | 74 | bool charging_state(void) |
64 | { | 75 | { |
65 | /* TODO */ | 76 | return (PDAT14 & 0x80) ? false : true; |
66 | return false; | ||
67 | } | 77 | } |
68 | #endif /* CONFIG_CHARGING */ | 78 | #endif /* CONFIG_CHARGING */ |