diff options
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.c | 118 |
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]; |