summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--demos/bsp/boards/embedded_artists/board_ea4357.c7
-rw-r--r--tinyusb/device/dcd.h2
-rw-r--r--tinyusb/device/dcd_nxp_romdriver.c3
-rw-r--r--tinyusb/device/dcd_nxp_romdriver.h2
-rw-r--r--tinyusb/hal/hal_lpc43xx.c14
5 files changed, 19 insertions, 9 deletions
diff --git a/demos/bsp/boards/embedded_artists/board_ea4357.c b/demos/bsp/boards/embedded_artists/board_ea4357.c
index 97e2ff949..0e2854e53 100644
--- a/demos/bsp/boards/embedded_artists/board_ea4357.c
+++ b/demos/bsp/boards/embedded_artists/board_ea4357.c
@@ -57,6 +57,13 @@ void board_init(void)
// USB1 Power: EA4357 channel A U20 is enabled by SJ5 connected to pad 1-2, no more action required
+ // TODO Device only USB0
+ // 1.5Kohm pull-up resistor is needed on the USB DP data signal. GPIO28 (base), P9_5 (LPC4357) controls
+ scu_pinmux(0x9, 5, MD_PUP|MD_EZI|MD_ZI, FUNC4); // GPIO5[18]
+ GPIO_SetDir(5, BIT_(18), 1); // output
+ GPIO_ClearValue(5, BIT_(18));
+
+
// init I2C and set up MIC2555 to have 15k pull-down on USB1 D+ & D-
I2C_Init(LPC_I2C0, 100000);
I2C_Cmd(LPC_I2C0, ENABLE);
diff --git a/tinyusb/device/dcd.h b/tinyusb/device/dcd.h
index c4b98d990..10450dc54 100644
--- a/tinyusb/device/dcd.h
+++ b/tinyusb/device/dcd.h
@@ -58,8 +58,6 @@
#include "common/common.h"
#include "dcd_nxp_romdriver.h"
-#define ROM_API ( * (*((USBD_API_T***) 0x1FFF1FF8)) ) // TODO remove rom API dependency
-
tusb_error_t dcd_init(void) ATTR_WARN_UNUSED_RESULT;
tusb_error_t dcd_controller_reset(uint8_t coreid) ATTR_WARN_UNUSED_RESULT;
void dcd_controller_connect(uint8_t coreid);
diff --git a/tinyusb/device/dcd_nxp_romdriver.c b/tinyusb/device/dcd_nxp_romdriver.c
index 2aa9201be..9fa75087d 100644
--- a/tinyusb/device/dcd_nxp_romdriver.c
+++ b/tinyusb/device/dcd_nxp_romdriver.c
@@ -153,6 +153,7 @@ tusb_error_t dcd_init(void)
&membase , &memsize) );
#endif
+ hal_interrupt_enable(0);
ROM_API->hw->Connect(g_hUsb, 1);
return TUSB_ERROR_NONE;
@@ -172,7 +173,7 @@ tusb_error_t dcd_controller_reset(uint8_t coreid)
void dcd_controller_connect(uint8_t coreid)
{
- ROM_API->hw->Connect(g_hUsb, 1);
+// ROM_API->hw->Connect(g_hUsb, 1);
}
void dcd_isr(uint8_t coreid)
diff --git a/tinyusb/device/dcd_nxp_romdriver.h b/tinyusb/device/dcd_nxp_romdriver.h
index 616240151..28e7e2989 100644
--- a/tinyusb/device/dcd_nxp_romdriver.h
+++ b/tinyusb/device/dcd_nxp_romdriver.h
@@ -54,8 +54,10 @@
#if (MCU == MCU_LPC18XX) || (MCU == MCU_LPC43XX)
#include "dcd_lpc18xx_lpc43xx.h"
+ #define ROM_API ( * ((USBD_API_T**) DEVICE_ROM_DRIVER_ADDR) )
#elif (MCU == MCU_LPC13UXX)
#include "dcd_lpc13xx.h"
+ #define ROM_API ( * (*((USBD_API_T***) DEVICE_ROM_DRIVER_ADDR)) )
#else
#error forgot something, thach ?
#endif
diff --git a/tinyusb/hal/hal_lpc43xx.c b/tinyusb/hal/hal_lpc43xx.c
index 1284391e5..6b23ca9a2 100644
--- a/tinyusb/hal/hal_lpc43xx.c
+++ b/tinyusb/hal/hal_lpc43xx.c
@@ -70,8 +70,10 @@ tusb_error_t hal_init(void)
LPC_USB0->USBMODE_H = LPC43XX_USBMODE_HOST | (LPC43XX_USBMODE_VBUS_HIGH << 5);
#else // TODO OTG
// dcd_controller_reset(0);
- LPC_USB0->USBMODE_D = LPC43XX_USBMODE_DEVICE;
- dcd_controller_connect(0);
+// LPC_USB0->USBMODE_D = LPC43XX_USBMODE_DEVICE;
+// LPC_USB0->OTGSC = (1<<3) | (1<<0) /*| (1<<16)| (1<<24)| (1<<25)| (1<<26)| (1<<27)| (1<<28)| (1<<29)| (1<<30)*/;
+// LPC_USB0->PORTSC1_D |= (1<<24); // force full speed
+// dcd_controller_connect(0);
#endif
hal_interrupt_enable(0);
@@ -104,18 +106,18 @@ tusb_error_t hal_init(void)
return TUSB_ERROR_NONE;
}
+#if TUSB_CFG_CONTROLLER0_MODE
void USB0_IRQHandler(void)
{
-#if TUSB_CFG_CONTROLLER0_MODE
tusb_isr(0);
-#endif
}
+#endif
+#if TUSB_CFG_CONTROLLER1_MODE
void USB1_IRQHandler(void)
{
-#if TUSB_CFG_CONTROLLER1_MODE
tusb_isr(1);
-#endif
}
+#endif
#endif