summaryrefslogtreecommitdiff
path: root/firmware/target/arm/ipod
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/ipod')
-rw-r--r--firmware/target/arm/ipod/power-ipod.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/firmware/target/arm/ipod/power-ipod.c b/firmware/target/arm/ipod/power-ipod.c
index af1ac9fc87..cb93fe398f 100644
--- a/firmware/target/arm/ipod/power-ipod.c
+++ b/firmware/target/arm/ipod/power-ipod.c
@@ -43,18 +43,28 @@ void power_init(void)
43} 43}
44 44
45#if CONFIG_CHARGING 45#if CONFIG_CHARGING
46bool charger_inserted(void) 46unsigned int power_input_status(void)
47{ 47{
48#if defined(IPOD_VIDEO) 48 unsigned int status = POWER_INPUT_NONE;
49 return (GPIOL_INPUT_VAL & 0x08)?false:true; 49
50#if defined(IPOD_NANO) || defined(IPOD_VIDEO)
51 if ((GPIOL_INPUT_VAL & 0x08) == 0)
52 status = POWER_INPUT_MAIN_CHARGER;
53
54 if ((GPIOL_INPUT_VAL & 0x10) != 0)
55 status |= POWER_INPUT_USB_CHARGER;
56 /* */
50#elif defined(IPOD_4G) || defined(IPOD_COLOR) \ 57#elif defined(IPOD_4G) || defined(IPOD_COLOR) \
51 || defined(IPOD_MINI) || defined(IPOD_MINI2G) 58 || defined(IPOD_MINI) || defined(IPOD_MINI2G)
52 /* C2 is firewire power */ 59 /* C2 is firewire power */
53 return (GPIOC_INPUT_VAL & 0x04)?false:true; 60 if ((GPIOC_INPUT_VAL & 0x04) == 0)
61 status = POWER_INPUT_MAIN_CHARGER;
62 /* */
54#else 63#else
55 /* This needs filling in for other ipods. */ 64 /* This needs filling in for other ipods. */
56 return false;
57#endif 65#endif
66
67 return status;
58} 68}
59 69
60/* Returns true if the unit is charging the batteries. */ 70/* Returns true if the unit is charging the batteries. */