summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c')
-rw-r--r--firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c42
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
33void power_off(void) 33void 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
57bool usb_charging_enable(bool on)
58{
59 PDAT11 = (PDAT11 & ~1) | (on ? 1 : 0);
60 return on;
61}
62
63bool usb_charging_enabled(void)
64{
65 return PDAT11 & 1;
66}
67#endif
68
57unsigned int power_input_status(void) 69unsigned 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
63bool charging_state(void) 74bool 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 */