diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2008-12-21 18:10:36 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2008-12-21 18:10:36 +0000 |
commit | 5667682dd204a07c52f057506fd2eef05bf63f2e (patch) | |
tree | a5f4f3cb22751362a9ed7774698ca55d27819d16 /firmware/target/arm/imx31/gigabeat-s/usb-imx31.c | |
parent | c3c15cce88481a2504eb492ba06b6a691d8e998d (diff) | |
download | rockbox-5667682dd204a07c52f057506fd2eef05bf63f2e.tar.gz rockbox-5667682dd204a07c52f057506fd2eef05bf63f2e.zip |
Gigabeat S: Implement charging and power control to charge from AC or USB. Hold MENU while plugging USB cable to charge from USB without connecting. Under Windows, plugging USB for charging only but not connecting still needs to be properly handled (driver popup issue) but it will charge when connected normally-- no issue under Linux. Some accomodating changes made to powermgmt.c will soon be made nicer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19547 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/imx31/gigabeat-s/usb-imx31.c')
-rw-r--r-- | firmware/target/arm/imx31/gigabeat-s/usb-imx31.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/firmware/target/arm/imx31/gigabeat-s/usb-imx31.c b/firmware/target/arm/imx31/gigabeat-s/usb-imx31.c index 382bc326b7..a7314861c3 100644 --- a/firmware/target/arm/imx31/gigabeat-s/usb-imx31.c +++ b/firmware/target/arm/imx31/gigabeat-s/usb-imx31.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include "usb_drv.h" | 28 | #include "usb_drv.h" |
29 | #include "usb-target.h" | 29 | #include "usb-target.h" |
30 | #include "clkctl-imx31.h" | 30 | #include "clkctl-imx31.h" |
31 | #include "power-imx31.h" | ||
31 | #include "mc13783.h" | 32 | #include "mc13783.h" |
32 | 33 | ||
33 | static int usb_status = USB_EXTRACTED; | 34 | static int usb_status = USB_EXTRACTED; |
@@ -53,8 +54,11 @@ static void enable_transceiver(bool enable) | |||
53 | 54 | ||
54 | void usb_connect_event(void) | 55 | void usb_connect_event(void) |
55 | { | 56 | { |
56 | uint32_t status = mc13783_read(MC13783_INTERRUPT_SENSE0); | 57 | uint32_t status = mc13783_read(MC13783_INTERRUPT_SENSE0); |
57 | usb_status = (status & MC13783_USB4V4S) ? USB_INSERTED : USB_EXTRACTED; | 58 | usb_status = (status & MC13783_USB4V4S) ? |
59 | USB_INSERTED : USB_EXTRACTED; | ||
60 | /* Notify power that USB charging is potentially available */ | ||
61 | charger_usb_detect_event(usb_status); | ||
58 | } | 62 | } |
59 | 63 | ||
60 | int usb_detect(void) | 64 | int usb_detect(void) |
@@ -81,7 +85,7 @@ void usb_init_device(void) | |||
81 | usb_connect_event(); | 85 | usb_connect_event(); |
82 | 86 | ||
83 | /* Enable PMIC event */ | 87 | /* Enable PMIC event */ |
84 | mc13783_enable_event(MC13783_USB4V4_EVENT); | 88 | mc13783_enable_event(MC13783_USB_EVENT); |
85 | } | 89 | } |
86 | 90 | ||
87 | void usb_enable(bool on) | 91 | void usb_enable(bool on) |