From 17e57e329184d7ef32151a68d2b3481efaa6089c Mon Sep 17 00:00:00 2001 From: Cástor Muñoz Date: Wed, 9 Jan 2013 21:32:25 +0100 Subject: iPod Classic/6G: support USB suspend mode Actually Rockbox does not use this mode, it is supported by other iPods, so implemented on Classic as well. Change-Id: Ia6578506df27a95a7f7522b3034b764631a8bb3a --- firmware/target/arm/s5l8702/ipod6g/power-ipod6g.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/firmware/target/arm/s5l8702/ipod6g/power-ipod6g.c b/firmware/target/arm/s5l8702/ipod6g/power-ipod6g.c index 12948f581d..2e0fe87883 100644 --- a/firmware/target/arm/s5l8702/ipod6g/power-ipod6g.c +++ b/firmware/target/arm/s5l8702/ipod6g/power-ipod6g.c @@ -61,8 +61,17 @@ bool ide_powered() #ifdef HAVE_USB_CHARGING_ENABLE void usb_charging_maxcurrent_change(int maxcurrent) { - bool on = (maxcurrent >= 500); - GPIOCMD = 0xb060e | (on ? 1 : 0); + bool suspend_charging = (maxcurrent < 100); + bool fast_charging = (maxcurrent >= 500); + + /* This GPIO is connected to the LTC4066's SUSP pin */ + /* Setting it high prevents any power being drawn over USB */ + /* which supports USB suspend */ + GPIOCMD = 0xb070e | (suspend_charging ? 1 : 0); + + /* This GPIO is connected to the LTC4066's HPWR pin */ + /* Setting it low limits current to 100mA, setting it high allows 500mA */ + GPIOCMD = 0xb060e | (fast_charging ? 1 : 0); } #endif -- cgit v1.2.3