@ -39,7 +39,7 @@ struct uart_zynq {
u32 baud_rate_divider ; /* 0x34 - Baud Rate Divider [7:0] */
} ;
struct zynq_uart_priv {
struct zynq_uart_platdata {
struct uart_zynq * regs ;
} ;
@ -105,7 +105,7 @@ static int _uart_zynq_serial_putc(struct uart_zynq *regs, const char c)
static int zynq_serial_setbrg ( struct udevice * dev , int baudrate )
{
struct zynq_uart_priv * priv = dev_get_priv ( dev ) ;
struct zynq_uart_platdata * platdata = dev_get_platdata ( dev ) ;
unsigned long clock ;
int ret ;
@ -130,28 +130,28 @@ static int zynq_serial_setbrg(struct udevice *dev, int baudrate)
return ret ;
}
_uart_zynq_serial_setbrg ( priv - > regs , clock , baudrate ) ;
_uart_zynq_serial_setbrg ( platdata - > regs , clock , baudrate ) ;
return 0 ;
}
static int zynq_serial_probe ( struct udevice * dev )
{
struct zynq_uart_priv * priv = dev_get_priv ( dev ) ;
struct zynq_uart_platdata * platdata = dev_get_platdata ( dev ) ;
/* No need to reinitialize the UART after relocation */
if ( gd - > flags & GD_FLG_RELOC )
return 0 ;
_uart_zynq_serial_init ( priv - > regs ) ;
_uart_zynq_serial_init ( platdata - > regs ) ;
return 0 ;
}
static int zynq_serial_getc ( struct udevice * dev )
{
struct zynq_uart_priv * priv = dev_get_priv ( dev ) ;
struct uart_zynq * regs = priv - > regs ;
struct zynq_uart_platdata * platdata = dev_get_platdata ( dev ) ;
struct uart_zynq * regs = platdata - > regs ;
if ( readl ( & regs - > channel_sts ) & ZYNQ_UART_SR_RXEMPTY )
return - EAGAIN ;
@ -161,15 +161,15 @@ static int zynq_serial_getc(struct udevice *dev)
static int zynq_serial_putc ( struct udevice * dev , const char ch )
{
struct zynq_uart_priv * priv = dev_get_priv ( dev ) ;
struct zynq_uart_platdata * platdata = dev_get_platdata ( dev ) ;
return _uart_zynq_serial_putc ( priv - > regs , ch ) ;
return _uart_zynq_serial_putc ( platdata - > regs , ch ) ;
}
static int zynq_serial_pending ( struct udevice * dev , bool input )
{
struct zynq_uart_priv * priv = dev_get_priv ( dev ) ;
struct uart_zynq * regs = priv - > regs ;
struct zynq_uart_platdata * platdata = dev_get_platdata ( dev ) ;
struct uart_zynq * regs = platdata - > regs ;
if ( input )
return ! ( readl ( & regs - > channel_sts ) & ZYNQ_UART_SR_RXEMPTY ) ;
@ -179,11 +179,11 @@ static int zynq_serial_pending(struct udevice *dev, bool input)
static int zynq_serial_ofdata_to_platdata ( struct udevice * dev )
{
struct zynq_uart_priv * priv = dev_get_priv ( dev ) ;
struct zynq_uart_platdata * platdata = dev_get_platdata ( dev ) ;
priv - > regs = ( struct uart_zynq * ) dev_read_addr ( dev ) ;
if ( IS_ERR ( priv - > regs ) )
return PTR_ERR ( priv - > regs ) ;
platdata - > regs = ( struct uart_zynq * ) dev_read_addr ( dev ) ;
if ( IS_ERR ( platdata - > regs ) )
return PTR_ERR ( platdata - > regs ) ;
return 0 ;
}
@ -207,7 +207,7 @@ U_BOOT_DRIVER(serial_zynq) = {
. id = UCLASS_SERIAL ,
. of_match = zynq_serial_ids ,
. ofdata_to_platdata = zynq_serial_ofdata_to_platdata ,
. priv _auto_alloc_size = sizeof ( struct zynq_uart_priv ) ,
. platdata _auto_alloc_size = sizeof ( struct zynq_uart_platdata ) ,
. probe = zynq_serial_probe ,
. ops = & zynq_serial_ops ,
. flags = DM_FLAG_PRE_RELOC ,