@ -10,6 +10,7 @@
# include <asm/io.h>
# include <linux/compiler.h>
# include <serial.h>
# include <asm/arch/hardware.h>
# define ZYNQ_UART_SR_TXFULL 0x00000010 /* TX FIFO full */
# define ZYNQ_UART_SR_RXEMPTY 0x00000002 /* RX FIFO empty */
@ -33,13 +34,23 @@ struct uart_zynq {
} ;
static struct uart_zynq * uart_zynq_ports [ 2 ] = {
# ifdef CONFIG_ZYNQ_SERIAL_BASEADDR0
[ 0 ] = ( struct uart_zynq * ) CONFIG_ZYNQ_SERIAL_BASEADDR0 ,
[ 0 ] = ( struct uart_zynq * ) ZYNQ_SERIAL_BASEADDR0 ,
[ 1 ] = ( struct uart_zynq * ) ZYNQ_SERIAL_BASEADDR1 ,
} ;
# if !defined(CONFIG_ZYNQ_SERIAL_BAUDRATE0)
# define CONFIG_ZYNQ_SERIAL_BAUDRATE0 CONFIG_BAUDRATE
# endif
# ifdef CONFIG_ZYNQ_SERIAL_BASEADDR1
[ 1 ] = ( struct uart_zynq * ) CONFIG_ZYNQ_SERIAL_BASEADDR1 ,
# if !defined(CONFIG_ZYNQ_SERIAL_BAUDRATE1)
# define CONFIG_ZYNQ_SERIAL_BAUDRATE1 CONFIG_BAUDRATE
# endif
# if !defined(CONFIG_ZYNQ_SERIAL_CLOCK0)
# define CONFIG_ZYNQ_SERIAL_CLOCK0 50000000
# endif
# if !defined(CONFIG_ZYNQ_SERIAL_CLOCK1)
# define CONFIG_ZYNQ_SERIAL_CLOCK1 50000000
# endif
} ;
struct uart_zynq_params {
u32 baudrate ;
@ -47,14 +58,10 @@ struct uart_zynq_params {
} ;
static struct uart_zynq_params uart_zynq_ports_param [ 2 ] = {
# if defined(CONFIG_ZYNQ_SERIAL_BAUDRATE0) && defined(CONFIG_ZYNQ_SERIAL_CLOCK0)
[ 0 ] . baudrate = CONFIG_ZYNQ_SERIAL_BAUDRATE0 ,
[ 0 ] . clock = CONFIG_ZYNQ_SERIAL_CLOCK0 ,
# endif
# if defined(CONFIG_ZYNQ_SERIAL_BAUDRATE1) && defined(CONFIG_ZYNQ_SERIAL_CLOCK1)
[ 1 ] . baudrate = CONFIG_ZYNQ_SERIAL_BAUDRATE1 ,
[ 1 ] . clock = CONFIG_ZYNQ_SERIAL_CLOCK1 ,
# endif
} ;
/* Set up the baud rate in gd struct */
@ -186,20 +193,19 @@ struct serial_device uart_zynq_serial1_device =
__weak struct serial_device * default_serial_console ( void )
{
# if defined(CONFIG_ZYNQ_SERIAL_UART0)
if ( uart_zynq_ports [ 0 ] )
return & uart_zynq_serial0_device ;
# endif
# if defined(CONFIG_ZYNQ_SERIAL_UART1)
if ( uart_zynq_ports [ 1 ] )
return & uart_zynq_serial1_device ;
# endif
return NULL ;
}
void zynq_serial_initalize ( void )
{
# ifdef CONFIG_ZYNQ_SERIAL_BASEADDR0
serial_register ( & uart_zynq_serial0_device ) ;
# endif
# ifdef CONFIG_ZYNQ_SERIAL_BASEADDR1
serial_register ( & uart_zynq_serial1_device ) ;
# endif
}