diff options
Diffstat (limited to 'firmware/target/arm/s5l8700')
-rw-r--r-- | firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c | 14 | ||||
-rw-r--r-- | firmware/target/arm/s5l8700/usb-nano2g-6g.c | 2 |
2 files changed, 13 insertions, 3 deletions
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c index 10d96fd59c..989fb1550b 100644 --- a/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c +++ b/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c | |||
@@ -61,11 +61,21 @@ void usb_charging_maxcurrent_change(int maxcurrent) | |||
61 | 61 | ||
62 | unsigned int power_input_status(void) | 62 | unsigned int power_input_status(void) |
63 | { | 63 | { |
64 | return (PDAT14 & 8) ? POWER_INPUT_NONE : POWER_INPUT_MAIN_CHARGER; | 64 | /* This checks if USB Vbus is present. */ |
65 | if (!(PDAT14 & 0x8)) return POWER_INPUT_USB_CHARGER; | ||
66 | |||
67 | /* If USB Vbus is not present, check if we have a positive power balance | ||
68 | regardless. This would indicate FireWire charging. Note that this will | ||
69 | drop to POWER_INPUT_NONE if FireWire isn't able to supply enough current | ||
70 | for device operation, e.g. during disk spinup. */ | ||
71 | if (PDAT11 & 0x20) return POWER_INPUT_NONE; | ||
72 | |||
73 | /* Looks like we have FireWire power. */ | ||
74 | return POWER_INPUT_MAIN_CHARGER; | ||
65 | } | 75 | } |
66 | 76 | ||
67 | bool charging_state(void) | 77 | bool charging_state(void) |
68 | { | 78 | { |
69 | return (PDAT11 & 0x10) ? false : true; | 79 | return (PDAT11 & 0x10) ? 0 : 1; |
70 | } | 80 | } |
71 | #endif /* CONFIG_CHARGING */ | 81 | #endif /* CONFIG_CHARGING */ |
diff --git a/firmware/target/arm/s5l8700/usb-nano2g-6g.c b/firmware/target/arm/s5l8700/usb-nano2g-6g.c index 1807a39c76..db397f8fd5 100644 --- a/firmware/target/arm/s5l8700/usb-nano2g-6g.c +++ b/firmware/target/arm/s5l8700/usb-nano2g-6g.c | |||
@@ -37,7 +37,7 @@ void usb_enable(bool on) | |||
37 | 37 | ||
38 | int usb_detect(void) | 38 | int usb_detect(void) |
39 | { | 39 | { |
40 | if (charger_inserted()) | 40 | if (power_input_status() & POWER_INPUT_USB) |
41 | return USB_INSERTED; | 41 | return USB_INSERTED; |
42 | return USB_EXTRACTED; | 42 | return USB_EXTRACTED; |
43 | } | 43 | } |