From 36bc6a1fd5273a22daf4e00e5da058250ab54774 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Sun, 1 Jan 2012 03:19:52 +0000 Subject: Gigabeat S: Revert removal of usb_plugged in r31489 Synchronous cable read is still required because the timing of the receipt of the cable event cannot be known for sure-- basically it introduced a thread race between main and pmic. If a keypress is desired instead to enter BL USB mode a la AS3525, then it's possible to remove that. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31510 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c') diff --git a/firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c b/firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c index d967cd67f6..b157544016 100644 --- a/firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c +++ b/firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c @@ -53,11 +53,16 @@ static void enable_transceiver(bool enable) } } +/* Read the immediate state of the cable from the PMIC */ +bool usb_plugged(void) +{ + return mc13783_read(MC13783_INTERRUPT_SENSE0) & MC13783_USB4V4S; +} + void usb_connect_event(void) { /* Read the immediate state of the cable from the PMIC */ - int status = (mc13783_read(MC13783_INTERRUPT_SENSE0) & MC13783_USB4V4S) - ? USB_INSERTED : USB_EXTRACTED; + int status = usb_plugged() ? USB_INSERTED : USB_EXTRACTED; usb_status = status; /* Notify power that USB charging is potentially available */ charger_usb_detect_event(status); -- cgit v1.2.3