diff options
author | Frank Gevaerts <frank@gevaerts.be> | 2008-03-20 20:01:28 +0000 |
---|---|---|
committer | Frank Gevaerts <frank@gevaerts.be> | 2008-03-20 20:01:28 +0000 |
commit | a6108b90978e1f8c33963043149061640423c4a3 (patch) | |
tree | 53b7541bb3f930cf5fe178bd8c3b75a01a2deab3 /firmware/target/arm | |
parent | 8113717da9af4977065702a682bc8d71f85180b2 (diff) | |
download | rockbox-a6108b90978e1f8c33963043149061640423c4a3.tar.gz rockbox-a6108b90978e1f8c33963043149061640423c4a3.zip |
differentiate between connected and powered in usb_detect()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16723 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm')
-rw-r--r-- | firmware/target/arm/usb-drv-pp502x.c | 6 | ||||
-rw-r--r-- | firmware/target/arm/usb-fw-pp502x.c | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/firmware/target/arm/usb-drv-pp502x.c b/firmware/target/arm/usb-drv-pp502x.c index 06358669c6..7a88e2bbc2 100644 --- a/firmware/target/arm/usb-drv-pp502x.c +++ b/firmware/target/arm/usb-drv-pp502x.c | |||
@@ -353,6 +353,7 @@ bool usb_drv_powered(void) | |||
353 | /* manual: 32.14.1 Device Controller Initialization */ | 353 | /* manual: 32.14.1 Device Controller Initialization */ |
354 | void usb_drv_init(void) | 354 | void usb_drv_init(void) |
355 | { | 355 | { |
356 | trigger_cpu_boost(); | ||
356 | REG_USBCMD &= ~USBCMD_RUN; | 357 | REG_USBCMD &= ~USBCMD_RUN; |
357 | udelay(50000); | 358 | udelay(50000); |
358 | REG_USBCMD |= USBCMD_CTRL_RESET; | 359 | REG_USBCMD |= USBCMD_CTRL_RESET; |
@@ -522,6 +523,11 @@ int usb_drv_port_speed(void) | |||
522 | return (REG_PORTSC1 & 0x08000000) ? 1 : 0; | 523 | return (REG_PORTSC1 & 0x08000000) ? 1 : 0; |
523 | } | 524 | } |
524 | 525 | ||
526 | bool usb_drv_connected(void) | ||
527 | { | ||
528 | return ((REG_PORTSC1 & PORTSCX_CURRENT_CONNECT_STATUS) !=0); | ||
529 | } | ||
530 | |||
525 | void usb_drv_set_address(int address) | 531 | void usb_drv_set_address(int address) |
526 | { | 532 | { |
527 | REG_DEVICEADDR = address << USBDEVICEADDRESS_BIT_POS; | 533 | REG_DEVICEADDR = address << USBDEVICEADDRESS_BIT_POS; |
diff --git a/firmware/target/arm/usb-fw-pp502x.c b/firmware/target/arm/usb-fw-pp502x.c index 008d42d991..d881488094 100644 --- a/firmware/target/arm/usb-fw-pp502x.c +++ b/firmware/target/arm/usb-fw-pp502x.c | |||
@@ -119,7 +119,12 @@ static bool usb_pin_detect(void) | |||
119 | int usb_detect(void) | 119 | int usb_detect(void) |
120 | { | 120 | { |
121 | if(usb_pin_detect()) { | 121 | if(usb_pin_detect()) { |
122 | return USB_INSERTED; | 122 | if(usb_drv_connected()) { |
123 | return USB_INSERTED; | ||
124 | } | ||
125 | else { | ||
126 | return USB_POWERED; | ||
127 | } | ||
123 | } | 128 | } |
124 | else { | 129 | else { |
125 | return USB_EXTRACTED; | 130 | return USB_EXTRACTED; |