summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorScott Shawcroft <[email protected]>2022-02-22 18:10:09 -0800
committerScott Shawcroft <[email protected]>2022-02-22 18:13:22 -0800
commitd7495975914645d147b7b9752df9e3bab7bdcfb6 (patch)
tree527baa5d1007c7dee3fa0ad35683e5c3259fd76f /hw
parent8a6fe8a8f398f460d0f2c3575c529e9b4d1b9785 (diff)
Add dual role (concurrent) example
This reads HID devices over host and then translates that to ASCII and sends it over CDC device.
Diffstat (limited to 'hw')
-rw-r--r--hw/bsp/imxrt/boards/mimxrt1060_evk/board.mk3
-rw-r--r--hw/bsp/imxrt/family.c23
-rw-r--r--hw/bsp/imxrt/family.mk7
3 files changed, 30 insertions, 3 deletions
diff --git a/hw/bsp/imxrt/boards/mimxrt1060_evk/board.mk b/hw/bsp/imxrt/boards/mimxrt1060_evk/board.mk
index d0498dbb1..b14b2a6b9 100644
--- a/hw/bsp/imxrt/boards/mimxrt1060_evk/board.mk
+++ b/hw/bsp/imxrt/boards/mimxrt1060_evk/board.mk
@@ -7,5 +7,8 @@ JLINK_DEVICE = MIMXRT1062xxx6A
# For flash-pyocd target
PYOCD_TARGET = mimxrt1060
+BOARD_DEVICE_RHPORT_NUM = 1
+BOARD_HOST_RHPORT_NUM = 0
+
# flash using pyocd
flash: flash-pyocd
diff --git a/hw/bsp/imxrt/family.c b/hw/bsp/imxrt/family.c
index 716681ca9..03be3b3dc 100644
--- a/hw/bsp/imxrt/family.c
+++ b/hw/bsp/imxrt/family.c
@@ -99,12 +99,12 @@ void board_init(void)
CLOCK_EnableUsbhs0Clock(kCLOCK_Usb480M, 480000000U);
// USB1
-// CLOCK_EnableUsbhs1PhyPllClock(kCLOCK_Usbphy480M, 480000000U);
-// CLOCK_EnableUsbhs1Clock(kCLOCK_Usb480M, 480000000U);
+ CLOCK_EnableUsbhs1PhyPllClock(kCLOCK_Usbphy480M, 480000000U);
+ CLOCK_EnableUsbhs1Clock(kCLOCK_Usb480M, 480000000U);
USBPHY_Type* usb_phy;
- // RT105x RT106x have dual USB controller. TODO support USB2
+ // RT105x RT106x have dual USB controller.
#ifdef USBPHY1
usb_phy = USBPHY1;
#else
@@ -122,6 +122,23 @@ void board_init(void)
phytx &= ~(USBPHY_TX_D_CAL_MASK | USBPHY_TX_TXCAL45DM_MASK | USBPHY_TX_TXCAL45DP_MASK);
phytx |= USBPHY_TX_D_CAL(0x0C) | USBPHY_TX_TXCAL45DP(0x06) | USBPHY_TX_TXCAL45DM(0x06);
usb_phy->TX = phytx;
+
+ // RT105x RT106x have dual USB controller.
+#ifdef USBPHY2
+ usb_phy = USBPHY2;
+
+ // Enable PHY support for Low speed device + LS via FS Hub
+ usb_phy->CTRL |= USBPHY_CTRL_SET_ENUTMILEVEL2_MASK | USBPHY_CTRL_SET_ENUTMILEVEL3_MASK;
+
+ // Enable all power for normal operation
+ usb_phy->PWD = 0;
+
+ // TX Timing
+ phytx = usb_phy->TX;
+ phytx &= ~(USBPHY_TX_D_CAL_MASK | USBPHY_TX_TXCAL45DM_MASK | USBPHY_TX_TXCAL45DP_MASK);
+ phytx |= USBPHY_TX_D_CAL(0x0C) | USBPHY_TX_TXCAL45DP(0x06) | USBPHY_TX_TXCAL45DM(0x06);
+ usb_phy->TX = phytx;
+#endif
}
//--------------------------------------------------------------------+
diff --git a/hw/bsp/imxrt/family.mk b/hw/bsp/imxrt/family.mk
index d086d503f..0bf4a0d15 100644
--- a/hw/bsp/imxrt/family.mk
+++ b/hw/bsp/imxrt/family.mk
@@ -15,6 +15,13 @@ CFLAGS += \
-DXIP_BOOT_HEADER_ENABLE=1 \
-DCFG_TUSB_MCU=OPT_MCU_MIMXRT10XX
+ifdef BOARD_DEVICE_RHPORT_NUM
+CFLAGS += -DBOARD_DEVICE_RHPORT_NUM=$(BOARD_DEVICE_RHPORT_NUM)
+endif
+ifdef BOARD_HOST_RHPORT_NUM
+CFLAGS += -DBOARD_HOST_RHPORT_NUM=$(BOARD_HOST_RHPORT_NUM)
+endif
+
# mcu driver cause following warnings
CFLAGS += -Wno-error=unused-parameter -Wno-error=implicit-fallthrough=