summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/lpc24xx/console/console-config.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/arm/lpc24xx/console/console-config.c')
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/console/console-config.c118
1 files changed, 92 insertions, 26 deletions
diff --git a/c/src/lib/libbsp/arm/lpc24xx/console/console-config.c b/c/src/lib/libbsp/arm/lpc24xx/console/console-config.c
index 0c298421da..d639ef9818 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/console/console-config.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/console/console-config.c
@@ -25,8 +25,6 @@
#include <bsp/lpc24xx.h>
#include <bsp/irq.h>
-#define LPC24XX_UART_NUMBER 1
-
static uint8_t lpc24xx_uart_register( uint32_t addr, uint8_t i)
{
volatile uint32_t *reg = (volatile uint32_t *) addr;
@@ -41,30 +39,98 @@ static void lpc24xx_uart_set_register( uint32_t addr, uint8_t i, uint8_t val)
reg [i] = val;
}
-unsigned long Console_Port_Count = LPC24XX_UART_NUMBER;
+rtems_device_minor_number Console_Port_Minor = 0;
+
+console_tbl Console_Port_Tbl [] = {
+ #ifdef LPC24XX_CONFIG_CONSOLE
+ {
+ .sDeviceName = "/dev/ttyS0",
+ .deviceType = SERIAL_NS16550,
+ .pDeviceFns = &ns16550_fns,
+ .deviceProbe = NULL,
+ .pDeviceFlow = NULL,
+ .ulMargin = 16,
+ .ulHysteresis = 8,
+ .pDeviceParams = (void *) LPC24XX_UART_BAUD,
+ .ulCtrlPort1 = UART0_BASE_ADDR,
+ .ulCtrlPort2 = 0,
+ .ulDataPort = UART0_BASE_ADDR,
+ .getRegister = lpc24xx_uart_register,
+ .setRegister = lpc24xx_uart_set_register,
+ .getData = NULL,
+ .setData = NULL,
+ .ulClock = LPC24XX_CCLK,
+ .ulIntVector = LPC24XX_IRQ_UART_0
+ },
+ #endif
+ #ifdef LPC24XX_CONFIG_UART_1
+ {
+ .sDeviceName = "/dev/ttyS1",
+ .deviceType = SERIAL_NS16550,
+ .pDeviceFns = &ns16550_fns,
+ .deviceProbe = NULL,
+ .pDeviceFlow = NULL,
+ .ulMargin = 16,
+ .ulHysteresis = 8,
+ .pDeviceParams = (void *) LPC24XX_UART_BAUD,
+ .ulCtrlPort1 = UART1_BASE_ADDR,
+ .ulCtrlPort2 = 0,
+ .ulDataPort = UART1_BASE_ADDR,
+ .getRegister = lpc24xx_uart_register,
+ .setRegister = lpc24xx_uart_set_register,
+ .getData = NULL,
+ .setData = NULL,
+ .ulClock = LPC24XX_CCLK,
+ .ulIntVector = LPC24XX_IRQ_UART_1
+ },
+ #endif
+ #ifdef LPC24XX_CONFIG_UART_2
+ {
+ .sDeviceName = "/dev/ttyS2",
+ .deviceType = SERIAL_NS16550,
+ .pDeviceFns = &ns16550_fns,
+ .deviceProbe = NULL,
+ .pDeviceFlow = NULL,
+ .ulMargin = 16,
+ .ulHysteresis = 8,
+ .pDeviceParams = (void *) LPC24XX_UART_BAUD,
+ .ulCtrlPort1 = UART2_BASE_ADDR,
+ .ulCtrlPort2 = 0,
+ .ulDataPort = UART2_BASE_ADDR,
+ .getRegister = lpc24xx_uart_register,
+ .setRegister = lpc24xx_uart_set_register,
+ .getData = NULL,
+ .setData = NULL,
+ .ulClock = LPC24XX_CCLK,
+ .ulIntVector = LPC24XX_IRQ_UART_2
+ },
+ #endif
+ #ifdef LPC24XX_CONFIG_UART_3
+ {
+ .sDeviceName = "/dev/ttyS3",
+ .deviceType = SERIAL_NS16550,
+ .pDeviceFns = &ns16550_fns,
+ .deviceProbe = NULL,
+ .pDeviceFlow = NULL,
+ .ulMargin = 16,
+ .ulHysteresis = 8,
+ .pDeviceParams = (void *) LPC24XX_UART_BAUD,
+ .ulCtrlPort1 = UART3_BASE_ADDR,
+ .ulCtrlPort2 = 0,
+ .ulDataPort = UART3_BASE_ADDR,
+ .getRegister = lpc24xx_uart_register,
+ .setRegister = lpc24xx_uart_set_register,
+ .getData = NULL,
+ .setData = NULL,
+ .ulClock = LPC24XX_CCLK,
+ .ulIntVector = LPC24XX_IRQ_UART_3
+ },
+ #endif
+};
-rtems_device_minor_number Console_Port_Minor = 0;
+#define LPC24XX_UART_NUMBER \
+ (sizeof( Console_Port_Tbl) / sizeof( Console_Port_Tbl [0]))
-console_data Console_Port_Data [LPC24XX_UART_NUMBER];
+unsigned long Console_Port_Count = LPC24XX_UART_NUMBER;
-console_tbl Console_Port_Tbl [LPC24XX_UART_NUMBER] = {
- {
- .sDeviceName = "/dev/ttyS0",
- .deviceType = SERIAL_NS16550,
- .pDeviceFns = &ns16550_fns,
- .deviceProbe = NULL,
- .pDeviceFlow = NULL,
- .ulMargin = 16,
- .ulHysteresis = 8,
- .pDeviceParams = (void *) LPC24XX_UART_BAUD,
- .ulCtrlPort1 = UART0_BASE_ADDR,
- .ulCtrlPort2 = 0,
- .ulDataPort = UART0_BASE_ADDR,
- .getRegister = lpc24xx_uart_register,
- .setRegister = lpc24xx_uart_set_register,
- .getData = NULL,
- .setData = NULL,
- .ulClock = LPC24XX_CCLK,
- .ulIntVector = LPC24XX_IRQ_UART_0
- }
-};
+console_data Console_Port_Data [LPC24XX_UART_NUMBER];