summaryrefslogtreecommitdiff
path: root/src/portable
diff options
context:
space:
mode:
authoremb4fun <[email protected]>2023-07-23 10:53:22 +0200
committeremb4fun <[email protected]>2023-07-23 10:53:22 +0200
commite2f28bc134446dc081766055171ca427afd4f564 (patch)
tree9a11f1131b4455e0560709809f650749a042dcb4 /src/portable
parent8fa0b74d8016554d23f84981f78c656f215d76e8 (diff)
Added support for the NXP K64 series
Diffstat (limited to 'src/portable')
-rw-r--r--src/portable/nxp/khci/dcd_khci.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/portable/nxp/khci/dcd_khci.c b/src/portable/nxp/khci/dcd_khci.c
index 52f4145f2..d957338ad 100644
--- a/src/portable/nxp/khci/dcd_khci.c
+++ b/src/portable/nxp/khci/dcd_khci.c
@@ -269,8 +269,22 @@ void dcd_init(uint8_t rhport)
{
(void) rhport;
+#if (CFG_TUSB_MCU == OPT_MCU_KINETIS_K64)
+ uint32_t clk_recover_irc_en;
+ uint32_t clk_recover_ctrl;
+
+ clk_recover_irc_en = KHCI->CLK_RECOVER_IRC_EN;
+ clk_recover_ctrl = KHCI->CLK_RECOVER_CTRL;
+
+ KHCI->USBTRC0 |= USB_USBTRC0_USBRESET_MASK;
+ while (KHCI->USBTRC0 & USB_USBTRC0_USBRESET_MASK);
+
+ KHCI->CLK_RECOVER_IRC_EN = clk_recover_irc_en;
+ KHCI->CLK_RECOVER_CTRL |= clk_recover_ctrl;
+#else
KHCI->USBTRC0 |= USB_USBTRC0_USBRESET_MASK;
while (KHCI->USBTRC0 & USB_USBTRC0_USBRESET_MASK);
+#endif
tu_memclr(&_dcd, sizeof(_dcd));
KHCI->USBTRC0 |= TU_BIT(6); /* software must set this bit to 1 */