summaryrefslogtreecommitdiff
path: root/src/portable/st
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2020-04-11 15:49:34 +0700
committerGitHub <[email protected]>2020-04-11 15:49:34 +0700
commit04a06ec40147f1f44cfee0567667cc97bbe900ee (patch)
treee1efa890fa3ceb93e15244ba6e6df3e61c701910 /src/portable/st
parent4748b349a2812fb2e08f7dfd04866afd50acb98f (diff)
parent13a3081d308828ae6e4b9a40bb8ac7bf5b0e424c (diff)
Merge branch 'master' into refactor-irqhandler
Diffstat (limited to 'src/portable/st')
-rw-r--r--src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c b/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
index 21cd44396..2939e5ae2 100644
--- a/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
+++ b/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
@@ -239,17 +239,29 @@ void dcd_init (uint8_t rhport)
}
USB->CNTR |= USB_CNTR_RESETM | USB_CNTR_SOFM | USB_CNTR_ESOFM | USB_CNTR_CTRM | USB_CNTR_SUSPM | USB_CNTR_WKUPM;
dcd_handle_bus_reset();
+
+ // Data-line pull-up is left disconnected.
+}
- // And finally enable pull-up, which may trigger the RESET IRQ if the host is connected.
- // (if this MCU has an internal pullup)
+// Define only on MCU with internal pull-up. BSP can define on MCU without internal PU.
#if defined(USB_BCDR_DPPU)
- USB->BCDR |= USB_BCDR_DPPU;
-#else
- // FIXME: callback to the user to ask them to twiddle a GPIO to disable/enable D+???
-#endif
+// Disable internal D+ PU
+void dcd_disconnect(uint8_t rhport)
+{
+ (void) rhport;
+ USB->BCDR &= ~(USB_BCDR_DPPU);
+}
+
+// Enable internal D+ PU
+void dcd_connect(uint8_t rhport)
+{
+ (void) rhport;
+ USB->BCDR |= USB_BCDR_DPPU;
}
+#endif
+
// Enable device interrupt
void dcd_int_enable (uint8_t rhport)
{