mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-06-09 23:36:03 +09:00
serial: uartlite: Init all uartlites for serial multi
Initialize all possible uartlites and return the first initialized port. For static configuration is initialization done in userial_ports array. Signed-off-by: Michal Simek <monstr@monstr.eu> Acked-by: Stephan Linz <linz@li-pro.net>
This commit is contained in:
parent
7636ebe1d2
commit
25239e12d9
|
@ -89,11 +89,17 @@ int uartlite_serial_tstc(const int port)
|
||||||
return in_be32(®s->status) & SR_RX_FIFO_VALID_DATA;
|
return in_be32(®s->status) & SR_RX_FIFO_VALID_DATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int uartlite_serial_init(const int port)
|
||||||
|
{
|
||||||
|
if (userial_ports[port])
|
||||||
|
return 0;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
#if !defined(CONFIG_SERIAL_MULTI)
|
#if !defined(CONFIG_SERIAL_MULTI)
|
||||||
int serial_init(void)
|
int serial_init(void)
|
||||||
{
|
{
|
||||||
/* FIXME: Nothing for now. We should initialize fifo, etc */
|
return uartlite_serial_init(0);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void serial_setbrg(void)
|
void serial_setbrg(void)
|
||||||
|
@ -126,7 +132,7 @@ int serial_tstc(void)
|
||||||
/* Multi serial device functions */
|
/* Multi serial device functions */
|
||||||
#define DECLARE_ESERIAL_FUNCTIONS(port) \
|
#define DECLARE_ESERIAL_FUNCTIONS(port) \
|
||||||
int userial##port##_init(void) \
|
int userial##port##_init(void) \
|
||||||
{ return(0); } \
|
{ return uartlite_serial_init(port); } \
|
||||||
void userial##port##_setbrg(void) {} \
|
void userial##port##_setbrg(void) {} \
|
||||||
int userial##port##_getc(void) \
|
int userial##port##_getc(void) \
|
||||||
{ return uartlite_serial_getc(port); } \
|
{ return uartlite_serial_getc(port); } \
|
||||||
|
@ -163,17 +169,15 @@ struct serial_device uartlite_serial3_device =
|
||||||
|
|
||||||
__weak struct serial_device *default_serial_console(void)
|
__weak struct serial_device *default_serial_console(void)
|
||||||
{
|
{
|
||||||
# ifdef XILINX_UARTLITE_BASEADDR
|
if (userial_ports[0])
|
||||||
return &uartlite_serial0_device;
|
return &uartlite_serial0_device;
|
||||||
# endif /* XILINX_UARTLITE_BASEADDR */
|
if (userial_ports[1])
|
||||||
# ifdef XILINX_UARTLITE_BASEADDR1
|
return &uartlite_serial1_device;
|
||||||
return &uartlite_serial1_device;
|
if (userial_ports[2])
|
||||||
# endif /* XILINX_UARTLITE_BASEADDR1 */
|
return &uartlite_serial2_device;
|
||||||
# ifdef XILINX_UARTLITE_BASEADDR2
|
if (userial_ports[3])
|
||||||
return &uartlite_serial2_device;
|
return &uartlite_serial3_device;
|
||||||
# endif /* XILINX_UARTLITE_BASEADDR2 */
|
|
||||||
# ifdef XILINX_UARTLITE_BASEADDR3
|
return NULL;
|
||||||
return &uartlite_serial3_device;
|
|
||||||
# endif /* XILINX_UARTLITE_BASEADDR3 */
|
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_SERIAL_MULTI */
|
#endif /* CONFIG_SERIAL_MULTI */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user