summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/arm/system-pp502x.c4
-rw-r--r--firmware/target/arm/usb-drv-arc.c8
-rw-r--r--firmware/target/arm/usb-fw-pp502x.c14
3 files changed, 17 insertions, 9 deletions
diff --git a/firmware/target/arm/system-pp502x.c b/firmware/target/arm/system-pp502x.c
index bd71d28417..0422ea7d9c 100644
--- a/firmware/target/arm/system-pp502x.c
+++ b/firmware/target/arm/system-pp502x.c
@@ -141,9 +141,7 @@ void __attribute__((interrupt("IRQ"))) irq_handler(void)
141 else if (CPU_HI_INT_STAT & GPIO0_MASK) { 141 else if (CPU_HI_INT_STAT & GPIO0_MASK) {
142 if (GPIOD_INT_STAT & 0x02) 142 if (GPIOD_INT_STAT & 0x02)
143 button_int(); 143 button_int();
144 } 144 if (GPIOB_INT_STAT & 0x40)
145 else if (CPU_HI_INT_STAT & GPIO1_MASK) {
146 if (GPIOF_INT_STAT & 0x80)
147 usb_insert_int(); 145 usb_insert_int();
148 } 146 }
149/* end PHILIPS_SA9200 */ 147/* end PHILIPS_SA9200 */
diff --git a/firmware/target/arm/usb-drv-arc.c b/firmware/target/arm/usb-drv-arc.c
index 86a1637bc8..fc74ce5bf0 100644
--- a/firmware/target/arm/usb-drv-arc.c
+++ b/firmware/target/arm/usb-drv-arc.c
@@ -498,15 +498,23 @@ static void log_ep(int ep_num, int ep_dir, char* prefix)
498 498
499void usb_drv_init(void) 499void usb_drv_init(void)
500{ 500{
501#ifdef USB_DETECT_BY_CORE
502 /* USB core decides */
503 _usb_drv_init(true);
504#else
505 /* Use bus reset condition */
501 _usb_drv_init(false); 506 _usb_drv_init(false);
507#endif
502} 508}
503 509
504/* fully enable driver */ 510/* fully enable driver */
505void usb_drv_attach(void) 511void usb_drv_attach(void)
506{ 512{
507 logf("usb_drv_attach"); 513 logf("usb_drv_attach");
514#ifndef USB_DETECT_BY_CORE
508 sleep(HZ/10); 515 sleep(HZ/10);
509 _usb_drv_init(true); 516 _usb_drv_init(true);
517#endif
510} 518}
511 519
512void usb_drv_exit(void) 520void usb_drv_exit(void)
diff --git a/firmware/target/arm/usb-fw-pp502x.c b/firmware/target/arm/usb-fw-pp502x.c
index 8f754fd04b..536535e059 100644
--- a/firmware/target/arm/usb-fw-pp502x.c
+++ b/firmware/target/arm/usb-fw-pp502x.c
@@ -65,10 +65,10 @@
65#define USB_GPIO_VAL 0x04 65#define USB_GPIO_VAL 0x04
66 66
67#elif defined(PHILIPS_SA9200) 67#elif defined(PHILIPS_SA9200)
68 /* GPIO F bit 7 (low) is usb detect */ 68 /* GPIO B bit 6 (high) is usb bus power detect */
69#define USB_GPIO GPIOF 69#define USB_GPIO GPIOB
70#define USB_GPIO_MASK 0x80 70#define USB_GPIO_MASK 0x40
71#define USB_GPIO_VAL 0x00 71#define USB_GPIO_VAL 0x40
72 72
73#elif defined(PHILIPS_HDD1630) || defined(PHILIPS_HDD6330) 73#elif defined(PHILIPS_HDD1630) || defined(PHILIPS_HDD6330)
74 /* GPIO E bit 2 is usb detect */ 74 /* GPIO E bit 2 is usb detect */
@@ -225,10 +225,12 @@ void usb_insert_int(void)
225 timeout_register(&usb_oneshot, usb_timeout_event, HZ/5, val); 225 timeout_register(&usb_oneshot, usb_timeout_event, HZ/5, val);
226} 226}
227 227
228/* Called during the bus reset interrupt when in detect mode - filter for 228/* USB_DETECT_BY_DRV: Called during the bus reset interrupt when in detect mode
229 * invalid bus reset when unplugging by checking the pin state. */ 229 * USB_DETECT_BY_CORE: Called when device descriptor is requested
230 */
230void usb_drv_usb_detect_event(void) 231void usb_drv_usb_detect_event(void)
231{ 232{
233 /* Filter for invalid bus reset when unplugging by checking the pin state. */
232 if(usb_plugged()) { 234 if(usb_plugged()) {
233 usb_status_event(USB_INSERTED); 235 usb_status_event(USB_INSERTED);
234 } 236 }