summaryrefslogtreecommitdiff
path: root/firmware/target/arm/ipod/power-ipod.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/ipod/power-ipod.c')
-rw-r--r--firmware/target/arm/ipod/power-ipod.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/firmware/target/arm/ipod/power-ipod.c b/firmware/target/arm/ipod/power-ipod.c
index 37ef418026..ae663d16e5 100644
--- a/firmware/target/arm/ipod/power-ipod.c
+++ b/firmware/target/arm/ipod/power-ipod.c
@@ -63,9 +63,19 @@ void ide_power_enable(bool on)
63 GPIOC_OUTPUT_VAL &= ~0x40; 63 GPIOC_OUTPUT_VAL &= ~0x40;
64 else 64 else
65 GPIOC_OUTPUT_VAL |= 0x40; 65 GPIOC_OUTPUT_VAL |= 0x40;
66#else 66#elif defined(IPOD_4G) || defined(IPOD_COLOR) \
67 /* We do nothing on other iPods yet */ 67 || defined(IPOD_MINI) || defined(IPOD_MINI2G)
68 (void)on; 68 if (on)
69 GPIO_CLEAR_BITWISE(GPIOJ_OUTPUT_VAL, 0x04);
70 else
71 GPIO_SET_BITWISE(GPIOJ_OUTPUT_VAL, 0x04);
72#elif defined(IPOD_VIDEO)
73 if (on)
74 GPO32_VAL &= ~0x40000000;
75 else
76 GPO32_VAL |= 0x40000000;
77#else /* Nano */
78 (void)on; /* Do nothing. */
69#endif 79#endif
70} 80}
71 81
@@ -73,9 +83,13 @@ bool ide_powered(void)
73{ 83{
74#if defined(IPOD_1G2G) || defined(IPOD_3G) 84#if defined(IPOD_1G2G) || defined(IPOD_3G)
75 return !(GPIOC_OUTPUT_VAL & 0x40); 85 return !(GPIOC_OUTPUT_VAL & 0x40);
76#else 86#elif defined(IPOD_4G) || defined(IPOD_COLOR) \
77 /* pretend we are always powered - we don't turn it off on the ipod */ 87 || defined(IPOD_MINI) || defined(IPOD_MINI2G)
78 return true; 88 return !(GPIOJ_OUTPUT_VAL & 0x04);
89#elif defined(IPOD_VIDEO)
90 return !(GPO32_VAL & 0x40000000);
91#else /* Nano */
92 return true; /* Pretend we are always powered */
79#endif 93#endif
80} 94}
81 95