summaryrefslogtreecommitdiffstats
path: root/firmware/target/arm/pp/usb-fw-pp5002.c
diff options
context:
space:
mode:
authorMichaelRey <woulle@yahoo.com>2018-11-09 17:51:50 -0700
committerSolomon Peachy <pizza@shaftnet.org>2020-07-28 01:13:48 +0000
commitfbe557d4324c2bec2a990e9f07732d8bbb448261 (patch)
tree071b302c1109925bc68d7f6be1a9fe2f097530e0 /firmware/target/arm/pp/usb-fw-pp5002.c
parent5e72616618658c8b377db323696042ca122a5c89 (diff)
downloadrockbox-fbe557d432.tar.gz
rockbox-fbe557d432.tar.bz2
rockbox-fbe557d432.zip
Fix IPod 3G USB Recognition Problem
Allow IPod 3rd generation to recognize when USB is connected and reboot into disk mode. This problem is listed at the bottom of the Ipod status page https://www.rockbox.org/wiki/IpodStatus Change-Id: I8f32afd065d3a91cddc56fe63454bd082bfa29b9
Diffstat (limited to 'firmware/target/arm/pp/usb-fw-pp5002.c')
-rw-r--r--firmware/target/arm/pp/usb-fw-pp5002.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/firmware/target/arm/pp/usb-fw-pp5002.c b/firmware/target/arm/pp/usb-fw-pp5002.c
index d296b05b2f..d0fbbd6e48 100644
--- a/firmware/target/arm/pp/usb-fw-pp5002.c
+++ b/firmware/target/arm/pp/usb-fw-pp5002.c
@@ -28,12 +28,14 @@
void usb_pin_init(void)
{
- /* TODO: add USB init for iPod 3rd gen */
-
-#if defined(IPOD_1G2G) || defined(IPOD_3G)
+#if defined(IPOD_1G2G)
/* GPIO C bit 7 is firewire detect */
GPIOC_ENABLE |= 0x80;
GPIOC_OUTPUT_EN &= ~0x80;
+#elif defined(IPOD_3G)
+ /* GPIO D bit 4 is USB detect */
+ GPIOD_ENABLE |= 0x10;
+ GPIOD_OUTPUT_EN &= ~0x10;
#endif
}
@@ -62,13 +64,17 @@ void usb_enable(bool on)
int usb_detect(void)
{
-#if defined(IPOD_1G2G) || defined(IPOD_3G)
+#if defined(IPOD_1G2G)
/* GPIO C bit 7 is firewire detect */
if (!(GPIOC_INPUT_VAL & 0x80))
return USB_INSERTED;
#endif
- /* TODO: add USB detection for iPod 3rd gen */
+#if defined(IPOD_3G)
+ /* GPIO D bit 4 is USB detect */
+ if (GPIOD_INPUT_VAL & 0x10)
+ return USB_INSERTED;
+#endif
return USB_EXTRACTED;
}