mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00: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
1 changed files with 19 additions and 15 deletions
|
@ -89,11 +89,17 @@ int uartlite_serial_tstc(const int port)
|
|||
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)
|
||||
int serial_init(void)
|
||||
{
|
||||
/* FIXME: Nothing for now. We should initialize fifo, etc */
|
||||
return 0;
|
||||
return uartlite_serial_init(0);
|
||||
}
|
||||
|
||||
void serial_setbrg(void)
|
||||
|
@ -126,7 +132,7 @@ int serial_tstc(void)
|
|||
/* Multi serial device functions */
|
||||
#define DECLARE_ESERIAL_FUNCTIONS(port) \
|
||||
int userial##port##_init(void) \
|
||||
{ return(0); } \
|
||||
{ return uartlite_serial_init(port); } \
|
||||
void userial##port##_setbrg(void) {} \
|
||||
int userial##port##_getc(void) \
|
||||
{ return uartlite_serial_getc(port); } \
|
||||
|
@ -163,17 +169,15 @@ struct serial_device uartlite_serial3_device =
|
|||
|
||||
__weak struct serial_device *default_serial_console(void)
|
||||
{
|
||||
# ifdef XILINX_UARTLITE_BASEADDR
|
||||
return &uartlite_serial0_device;
|
||||
# endif /* XILINX_UARTLITE_BASEADDR */
|
||||
# ifdef XILINX_UARTLITE_BASEADDR1
|
||||
return &uartlite_serial1_device;
|
||||
# endif /* XILINX_UARTLITE_BASEADDR1 */
|
||||
# ifdef XILINX_UARTLITE_BASEADDR2
|
||||
return &uartlite_serial2_device;
|
||||
# endif /* XILINX_UARTLITE_BASEADDR2 */
|
||||
# ifdef XILINX_UARTLITE_BASEADDR3
|
||||
return &uartlite_serial3_device;
|
||||
# endif /* XILINX_UARTLITE_BASEADDR3 */
|
||||
if (userial_ports[0])
|
||||
return &uartlite_serial0_device;
|
||||
if (userial_ports[1])
|
||||
return &uartlite_serial1_device;
|
||||
if (userial_ports[2])
|
||||
return &uartlite_serial2_device;
|
||||
if (userial_ports[3])
|
||||
return &uartlite_serial3_device;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
#endif /* CONFIG_SERIAL_MULTI */
|
||||
|
|
Loading…
Reference in a new issue