|
|
@@ -76,30 +76,27 @@ const uint32_t ExtRateIn = 0;
|
|
|
|
|
|
static const PINMUX_GRP_T pinmuxing[] =
|
|
|
{
|
|
|
- // LEDs
|
|
|
- {0xD, 10, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC4)},
|
|
|
- {0xD, 11, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC4 | SCU_MODE_PULLDOWN)},
|
|
|
- {0xD, 12, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC4 | SCU_MODE_PULLDOWN)},
|
|
|
- {0xD, 13, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC4 | SCU_MODE_PULLDOWN)},
|
|
|
- {0xD, 14, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC4 | SCU_MODE_PULLDOWN)},
|
|
|
- {0x9, 0, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC0 | SCU_MODE_PULLDOWN)},
|
|
|
- {0x9, 1, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC0 | SCU_MODE_PULLDOWN)},
|
|
|
- {0x9, 2, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC0 | SCU_MODE_PULLDOWN)},
|
|
|
-
|
|
|
- // Button
|
|
|
- {0x4, 0, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC0 | SCU_MODE_PULLUP)},
|
|
|
-
|
|
|
- // UART
|
|
|
- {UART_PORT, UART_PIN_TX, SCU_MODE_PULLDOWN | SCU_MODE_FUNC2 },
|
|
|
- {UART_PORT, UART_PIN_RX, SCU_MODE_INACT | SCU_MODE_INBUFF_EN | SCU_MODE_ZIF_DIS | SCU_MODE_FUNC2 },
|
|
|
-
|
|
|
- /* I2S */
|
|
|
- {0x3, 0, (SCU_PINIO_FAST | SCU_MODE_FUNC2)},
|
|
|
- {0x6, 0, (SCU_PINIO_FAST | SCU_MODE_FUNC4)},
|
|
|
- {0x7, 2, (SCU_PINIO_FAST | SCU_MODE_FUNC2)},
|
|
|
- {0x6, 2, (SCU_PINIO_FAST | SCU_MODE_FUNC3)},
|
|
|
- {0x7, 1, (SCU_PINIO_FAST | SCU_MODE_FUNC2)},
|
|
|
- {0x6, 1, (SCU_PINIO_FAST | SCU_MODE_FUNC3)},
|
|
|
+ // LEDs
|
|
|
+ { 0xD, 10, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC4) },
|
|
|
+ { 0xD, 11, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC4 | SCU_MODE_PULLDOWN) },
|
|
|
+ { 0xD, 12, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC4 | SCU_MODE_PULLDOWN) },
|
|
|
+ { 0xD, 13, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC4 | SCU_MODE_PULLDOWN) },
|
|
|
+ { 0xD, 14, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC4 | SCU_MODE_PULLDOWN) },
|
|
|
+ { 0x9, 0, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC0 | SCU_MODE_PULLDOWN) },
|
|
|
+ { 0x9, 1, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC0 | SCU_MODE_PULLDOWN) },
|
|
|
+ { 0x9, 2, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC0 | SCU_MODE_PULLDOWN) },
|
|
|
+
|
|
|
+ // Button
|
|
|
+ { 0x4, 0, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC0 | SCU_MODE_PULLUP) },
|
|
|
+
|
|
|
+ // UART
|
|
|
+ { UART_PORT, UART_PIN_TX, SCU_MODE_PULLDOWN | SCU_MODE_FUNC2 },
|
|
|
+ { UART_PORT, UART_PIN_RX, SCU_MODE_INACT | SCU_MODE_INBUFF_EN | SCU_MODE_ZIF_DIS | SCU_MODE_FUNC2 },
|
|
|
+
|
|
|
+ // USB
|
|
|
+ { 0x9, 5, SCU_MODE_PULLUP | SCU_MODE_INBUFF_EN | SCU_MODE_FUNC2 }, // P9_5 USB1_VBUS_EN, USB1 VBus function
|
|
|
+ { 0x2, 5, SCU_MODE_INACT | SCU_MODE_INBUFF_EN | SCU_MODE_ZIF_DIS | SCU_MODE_FUNC2 }, // P2_5 USB1_VBUS, MUST CONFIGURE THIS SIGNAL FOR USB1 NORMAL OPERATION */
|
|
|
+ { 0x6, 3, SCU_MODE_PULLUP | SCU_MODE_INBUFF_EN | SCU_MODE_FUNC1 } // P6_3 USB0_PWR_EN, USB0 VBus function
|
|
|
};
|
|
|
|
|
|
/* Pin clock mux values, re-used structure, value in first index is meaningless */
|
|
|
@@ -147,10 +144,10 @@ void board_init(void)
|
|
|
Chip_GPIO_SetPinDIRInput(LPC_GPIO_PORT, BUTTON_PORT, BUTTON_PIN);
|
|
|
|
|
|
//------------- UART -------------//
|
|
|
- Chip_UART_Init(UART_DEV);
|
|
|
- Chip_UART_SetBaud(UART_DEV, CFG_BOARD_UART_BAUDRATE);
|
|
|
- Chip_UART_ConfigData(UART_DEV, UART_LCR_WLEN8 | UART_LCR_SBS_1BIT | UART_LCR_PARITY_DIS);
|
|
|
- Chip_UART_TXEnable(UART_DEV);
|
|
|
+ Chip_UART_Init(UART_DEV);
|
|
|
+ Chip_UART_SetBaud(UART_DEV, CFG_BOARD_UART_BAUDRATE);
|
|
|
+ Chip_UART_ConfigData(UART_DEV, UART_LCR_WLEN8 | UART_LCR_SBS_1BIT | UART_LCR_PARITY_DIS);
|
|
|
+ Chip_UART_TXEnable(UART_DEV);
|
|
|
|
|
|
//------------- USB -------------//
|
|
|
enum {
|
|
|
@@ -167,17 +164,19 @@ void board_init(void)
|
|
|
#if CFG_TUSB_RHPORT0_MODE
|
|
|
Chip_USB0_Init();
|
|
|
|
|
|
-// // Reset controller
|
|
|
-// LPC_USB0->USBCMD_D |= 0x02;
|
|
|
-// while( LPC_USB0->USBCMD_D & 0x02 ) {}
|
|
|
-//
|
|
|
-// // Set mode
|
|
|
-// #if CFG_TUSB_RHPORT0_MODE & OPT_MODE_HOST
|
|
|
-// LPC_USB0->USBMODE_H = USBMODE_HOST | (USBMODE_VBUS_HIGH << 5);
|
|
|
-// #else // TODO OTG
|
|
|
-// LPC_USB0->USBMODE_D = 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)*/;
|
|
|
-// #endif
|
|
|
+ // Host/Device mode can only be set right after controller reset
|
|
|
+ LPC_USB0->USBCMD_D |= 0x02;
|
|
|
+ while( LPC_USB0->USBCMD_D & 0x02 ) {}
|
|
|
+
|
|
|
+ // Set mode
|
|
|
+ #if CFG_TUSB_RHPORT0_MODE & OPT_MODE_HOST
|
|
|
+ LPC_USB0->USBMODE_H = USBMODE_HOST | (USBMODE_VBUS_HIGH << 5);
|
|
|
+
|
|
|
+ LPC_USB0->PORTSC1_D |= (1<<24); // FIXME force full speed for debugging
|
|
|
+ #else // TODO OTG
|
|
|
+ LPC_USB0->USBMODE_D = 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)*/;
|
|
|
+ #endif
|
|
|
#endif
|
|
|
|
|
|
// USB1
|