diff options
Diffstat (limited to 'firmware/target/arm/ipod')
-rw-r--r-- | firmware/target/arm/ipod/power-ipod.c | 20 |
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 |
46 | bool charger_inserted(void) | 46 | unsigned 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. */ |