summaryrefslogtreecommitdiff
path: root/src/host/ehci/ehci.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/host/ehci/ehci.c')
-rw-r--r--src/host/ehci/ehci.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/host/ehci/ehci.c b/src/host/ehci/ehci.c
index 048affb1e..e2ead7b08 100644
--- a/src/host/ehci/ehci.c
+++ b/src/host/ehci/ehci.c
@@ -120,10 +120,27 @@ void hcd_port_reset(uint8_t rhport)
ehci_registers_t* regs = ehci_data.regs;
- regs->portsc_bm.port_enabled = 0; // disable port before reset
- regs->portsc_bm.port_reset = 1;
+// regs->portsc_bm.port_enabled = 0; // disable port before reset
+// regs->portsc_bm.port_reset = 1;
+
+ uint32_t portsc = regs->portsc;
+
+ portsc &= ~(EHCI_PORTSC_MASK_PORT_EANBLED);
+ portsc |= EHCI_PORTSC_MASK_PORT_RESET;
+
+ regs->portsc = portsc;
}
+#if 0
+void hcd_port_reset_end(uint8_t rhport)
+{
+ (void) rhport;
+
+ ehci_registers_t* regs = ehci_data.regs;
+ regs->portsc_bm.port_reset = 0;
+}
+#endif
+
bool hcd_port_connect_status(uint8_t rhport)
{
(void) rhport;