summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2019-09-01 16:15:23 +0700
committerhathach <[email protected]>2019-09-01 16:15:23 +0700
commit30678099577f60aa36c9ab40f7eacd9fbf844873 (patch)
tree6b4c59db89ebb85009d2ab21964d4e9088494297
parent403662a1d6b49e32cbf1adb4a05a1b3ac8982083 (diff)
adding lpc54xxx to dcd, able to go through enumeration
-rw-r--r--hw/bsp/lpcxpresso54114/lpcxpresso54114.c24
-rw-r--r--src/portable/nxp/lpc_usbd/dcd_lpc_usbd.c8
2 files changed, 17 insertions, 15 deletions
diff --git a/hw/bsp/lpcxpresso54114/lpcxpresso54114.c b/hw/bsp/lpcxpresso54114/lpcxpresso54114.c
index 9da1c6e5f..090c1a95e 100644
--- a/hw/bsp/lpcxpresso54114/lpcxpresso54114.c
+++ b/hw/bsp/lpcxpresso54114/lpcxpresso54114.c
@@ -114,18 +114,18 @@ void board_init(void)
GPIO_PinInit(GPIO, BUTTON_PORT, BUTTON_PIN, &button_config);
// USB
-// const uint32_t port1_pin6_config = (
-// IOCON_PIO_FUNC7 | /* Pin is configured as USB0_VBUS */
-// IOCON_PIO_MODE_INACT | /* No addition pin function */
-// IOCON_PIO_INV_DI | /* Input function is not inverted */
-// IOCON_PIO_DIGITAL_EN | /* Enables digital function */
-// IOCON_PIO_INPFILT_OFF | /* Input filter disabled */
-// IOCON_PIO_OPENDRAIN_DI /* Open drain is disabled */
-// );
-// IOCON_PinMuxSet(IOCON, 1, 6, port1_pin6_config); /* PORT1 PIN6 (coords: 26) is configured as USB0_VBUS */
-//
-// POWER_DisablePD(kPDRUNCFG_PD_USB0_PHY); /*Turn on USB Phy */
-// CLOCK_EnableUsbfs0Clock(kCLOCK_UsbSrcFro, CLOCK_GetFreq(kCLOCK_FroHf)); /* enable USB IP clock */
+ const uint32_t port1_pin6_config = (
+ IOCON_PIO_FUNC7 | /* Pin is configured as USB0_VBUS */
+ IOCON_PIO_MODE_INACT | /* No addition pin function */
+ IOCON_PIO_INV_DI | /* Input function is not inverted */
+ IOCON_PIO_DIGITAL_EN | /* Enables digital function */
+ IOCON_PIO_INPFILT_OFF | /* Input filter disabled */
+ IOCON_PIO_OPENDRAIN_DI /* Open drain is disabled */
+ );
+ IOCON_PinMuxSet(IOCON, 1, 6, port1_pin6_config); /* PORT1 PIN6 (coords: 26) is configured as USB0_VBUS */
+
+ POWER_DisablePD(kPDRUNCFG_PD_USB0_PHY); /*Turn on USB Phy */
+ CLOCK_EnableUsbfs0Clock(kCLOCK_UsbSrcFro, CLOCK_GetFreq(kCLOCK_FroHf)); /* enable USB IP clock */
}
//--------------------------------------------------------------------+
diff --git a/src/portable/nxp/lpc_usbd/dcd_lpc_usbd.c b/src/portable/nxp/lpc_usbd/dcd_lpc_usbd.c
index 223c39c1a..d8e4de5a5 100644
--- a/src/portable/nxp/lpc_usbd/dcd_lpc_usbd.c
+++ b/src/portable/nxp/lpc_usbd/dcd_lpc_usbd.c
@@ -38,14 +38,15 @@
#if TUSB_OPT_DEVICE_ENABLED && ( CFG_TUSB_MCU == OPT_MCU_LPC11UXX || \
CFG_TUSB_MCU == OPT_MCU_LPC13XX || \
- CFG_TUSB_MCU == OPT_MCU_LPC51UXX )
+ CFG_TUSB_MCU == OPT_MCU_LPC51UXX || \
+ CFG_TUSB_MCU == OPT_MCU_LPC54XXX )
#if CFG_TUSB_MCU == OPT_MCU_LPC11UXX || CFG_TUSB_MCU == OPT_MCU_LPC13XX
// LPC11Uxx and LPC13xx use lpcopen
#include "chip.h"
#define DCD_REGS LPC_USB
#define DCD_IRQHandler USB_IRQHandler
-#elif CFG_TUSB_MCU == OPT_MCU_LPC51UXX
+#elif CFG_TUSB_MCU == OPT_MCU_LPC51UXX || CFG_TUSB_MCU == OPT_MCU_LPC54XXX
#include "fsl_device_registers.h"
#define DCD_REGS USB0
#define DCD_IRQHandler USB0_IRQHandler
@@ -60,7 +61,8 @@
// Number of endpoints
#define EP_COUNT 10
-// only SRAM1 & USB RAM can be used for transfer
+// only SRAM1 & USB RAM can be used for transfer.
+// Used to set DATABUFSTART which is 22-bit aligned
// 2000 0000 to 203F FFFF
#define SRAM_REGION 0x20000000