提交 96708a06 编写于 作者: A Andrew Bradford 提交者: Tom Rini

serial: ns16550: Enable COM5 and COM6

Increase the possible number of ns16550 serial devices from 4 to 6.
Signed-off-by: NAndrew Bradford <andrew@bradfordembedded.com>
上级 6422b70b
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
#if !defined(CONFIG_CONS_INDEX) #if !defined(CONFIG_CONS_INDEX)
#elif (CONFIG_CONS_INDEX < 1) || (CONFIG_CONS_INDEX > 4) #elif (CONFIG_CONS_INDEX < 1) || (CONFIG_CONS_INDEX > 6)
#error "Invalid console index value." #error "Invalid console index value."
#endif #endif
...@@ -46,12 +46,16 @@ DECLARE_GLOBAL_DATA_PTR; ...@@ -46,12 +46,16 @@ DECLARE_GLOBAL_DATA_PTR;
#error "Console port 3 defined but not configured." #error "Console port 3 defined but not configured."
#elif CONFIG_CONS_INDEX == 4 && !defined(CONFIG_SYS_NS16550_COM4) #elif CONFIG_CONS_INDEX == 4 && !defined(CONFIG_SYS_NS16550_COM4)
#error "Console port 4 defined but not configured." #error "Console port 4 defined but not configured."
#elif CONFIG_CONS_INDEX == 5 && !defined(CONFIG_SYS_NS16550_COM5)
#error "Console port 5 defined but not configured."
#elif CONFIG_CONS_INDEX == 6 && !defined(CONFIG_SYS_NS16550_COM6)
#error "Console port 6 defined but not configured."
#endif #endif
/* Note: The port number specified in the functions is 1 based. /* Note: The port number specified in the functions is 1 based.
* the array is 0 based. * the array is 0 based.
*/ */
static NS16550_t serial_ports[4] = { static NS16550_t serial_ports[6] = {
#ifdef CONFIG_SYS_NS16550_COM1 #ifdef CONFIG_SYS_NS16550_COM1
(NS16550_t)CONFIG_SYS_NS16550_COM1, (NS16550_t)CONFIG_SYS_NS16550_COM1,
#else #else
...@@ -68,7 +72,17 @@ static NS16550_t serial_ports[4] = { ...@@ -68,7 +72,17 @@ static NS16550_t serial_ports[4] = {
NULL, NULL,
#endif #endif
#ifdef CONFIG_SYS_NS16550_COM4 #ifdef CONFIG_SYS_NS16550_COM4
(NS16550_t)CONFIG_SYS_NS16550_COM4 (NS16550_t)CONFIG_SYS_NS16550_COM4,
#else
NULL,
#endif
#ifdef CONFIG_SYS_NS16550_COM5
(NS16550_t)CONFIG_SYS_NS16550_COM5,
#else
NULL,
#endif
#ifdef CONFIG_SYS_NS16550_COM6
(NS16550_t)CONFIG_SYS_NS16550_COM6
#else #else
NULL NULL
#endif #endif
...@@ -231,6 +245,12 @@ struct serial_device eserial3_device = ...@@ -231,6 +245,12 @@ struct serial_device eserial3_device =
DECLARE_ESERIAL_FUNCTIONS(4); DECLARE_ESERIAL_FUNCTIONS(4);
struct serial_device eserial4_device = struct serial_device eserial4_device =
INIT_ESERIAL_STRUCTURE(4, "eserial3"); INIT_ESERIAL_STRUCTURE(4, "eserial3");
DECLARE_ESERIAL_FUNCTIONS(5);
struct serial_device eserial5_device =
INIT_ESERIAL_STRUCTURE(5, "eserial4");
DECLARE_ESERIAL_FUNCTIONS(6);
struct serial_device eserial6_device =
INIT_ESERIAL_STRUCTURE(6, "eserial5");
__weak struct serial_device *default_serial_console(void) __weak struct serial_device *default_serial_console(void)
{ {
...@@ -242,6 +262,10 @@ __weak struct serial_device *default_serial_console(void) ...@@ -242,6 +262,10 @@ __weak struct serial_device *default_serial_console(void)
return &eserial3_device; return &eserial3_device;
#elif CONFIG_CONS_INDEX == 4 #elif CONFIG_CONS_INDEX == 4
return &eserial4_device; return &eserial4_device;
#elif CONFIG_CONS_INDEX == 5
return &eserial5_device;
#elif CONFIG_CONS_INDEX == 6
return &eserial6_device;
#else #else
#error "Bad CONFIG_CONS_INDEX." #error "Bad CONFIG_CONS_INDEX."
#endif #endif
...@@ -261,4 +285,10 @@ void ns16550_serial_initialize(void) ...@@ -261,4 +285,10 @@ void ns16550_serial_initialize(void)
#if defined(CONFIG_SYS_NS16550_COM4) #if defined(CONFIG_SYS_NS16550_COM4)
serial_register(&eserial4_device); serial_register(&eserial4_device);
#endif #endif
#if defined(CONFIG_SYS_NS16550_COM5)
serial_register(&eserial5_device);
#endif
#if defined(CONFIG_SYS_NS16550_COM6)
serial_register(&eserial6_device);
#endif
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册