summaryrefslogtreecommitdiff
path: root/firmware/target/arm/usb-pp.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/usb-pp.c')
-rw-r--r--firmware/target/arm/usb-pp.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/firmware/target/arm/usb-pp.c b/firmware/target/arm/usb-pp.c
index 042fb5bda5..d69c6e6c9c 100644
--- a/firmware/target/arm/usb-pp.c
+++ b/firmware/target/arm/usb-pp.c
@@ -85,6 +85,9 @@ void usb_init_device(void)
85 outl(inl(0x70000028) | 0x2, 0x70000028); 85 outl(inl(0x70000028) | 0x2, 0x70000028);
86 86
87 udelay(0x186A0); 87 udelay(0x186A0);
88
89
90 dr_controller_setup();
88} 91}
89 92
90void usb_enable(bool on) 93void usb_enable(bool on)
@@ -138,9 +141,11 @@ bool usb_detect(void)
138 141
139 usbstatus1 = (UDC_OTGSC & 0x800) ? true : false; 142 usbstatus1 = (UDC_OTGSC & 0x800) ? true : false;
140 if ((usbstatus1 == true) && (prev_usbstatus1 == false)) { 143 if ((usbstatus1 == true) && (prev_usbstatus1 == false)) {
141 dr_controller_setup();
142 dr_controller_run(); 144 dr_controller_run();
145 } else if ((usbstatus1 == false) && (prev_usbstatus1 == true)) {
146 dr_controller_stop();
143 } 147 }
148
144 prev_usbstatus1 = usbstatus1; 149 prev_usbstatus1 = usbstatus1;
145 usbstatus2 = (UDC_PORTSC1 & PORTSCX_CURRENT_CONNECT_STATUS) ? true : false; 150 usbstatus2 = (UDC_PORTSC1 & PORTSCX_CURRENT_CONNECT_STATUS) ? true : false;
146 151