@ -83,7 +83,7 @@ void serial_initialize(void)
serial_find_console_or_panic ( ) ;
serial_find_console_or_panic ( ) ;
}
}
static void serial_putc_dev ( struct udevice * dev , char ch )
static void _ serial_putc( struct udevice * dev , char ch )
{
{
struct dm_serial_ops * ops = serial_get_ops ( dev ) ;
struct dm_serial_ops * ops = serial_get_ops ( dev ) ;
int err ;
int err ;
@ -92,55 +92,65 @@ static void serial_putc_dev(struct udevice *dev, char ch)
err = ops - > putc ( dev , ch ) ;
err = ops - > putc ( dev , ch ) ;
} while ( err = = - EAGAIN ) ;
} while ( err = = - EAGAIN ) ;
if ( ch = = ' \n ' )
if ( ch = = ' \n ' )
serial_putc_dev ( dev , ' \r ' ) ;
_ serial_putc( dev , ' \r ' ) ;
}
}
void serial_putc ( char ch )
static void _serial_puts ( struct udevice * dev , const char * str )
{
{
serial_putc_dev ( cur_dev , ch ) ;
while ( * str )
_serial_putc ( dev , * str + + ) ;
}
}
void serial_setbrg ( void )
static int _serial_getc ( struct udevice * dev )
{
{
struct dm_serial_ops * ops = serial_get_ops ( cur_dev ) ;
struct dm_serial_ops * ops = serial_get_ops ( dev ) ;
int err ;
if ( ops - > setbrg )
do {
ops - > setbrg ( cur_dev , gd - > baudrate ) ;
err = ops - > getc ( dev ) ;
}
if ( err = = - EAGAIN )
WATCHDOG_RESET ( ) ;
} while ( err = = - EAGAIN ) ;
void serial_puts ( const char * str )
return err > = 0 ? err : 0 ;
{
while ( * str )
serial_putc ( * str + + ) ;
}
}
int serial_tstc ( vo id )
static int _serial_tstc ( struct udevice * dev )
{
{
struct dm_serial_ops * ops = serial_get_ops ( cur_ dev) ;
struct dm_serial_ops * ops = serial_get_ops ( dev ) ;
if ( ops - > pending )
if ( ops - > pending )
return ops - > pending ( cur_ dev, true ) ;
return ops - > pending ( dev , true ) ;
return 1 ;
return 1 ;
}
}
static int serial_getc_dev ( struct udevice * dev )
void serial_putc ( char ch )
{
{
struct dm_serial_ops * ops = serial_get_ops ( dev ) ;
_serial_putc ( cur_dev , ch ) ;
int err ;
}
do {
err = ops - > getc ( dev ) ;
if ( err = = - EAGAIN )
WATCHDOG_RESET ( ) ;
} while ( err = = - EAGAIN ) ;
return err > = 0 ? err : 0 ;
void serial_puts ( const char * str )
{
_serial_puts ( cur_dev , str ) ;
}
}
int serial_getc ( void )
int serial_getc ( void )
{
{
return serial_getc_dev ( cur_dev ) ;
return _serial_getc ( cur_dev ) ;
}
int serial_tstc ( void )
{
return _serial_tstc ( cur_dev ) ;
}
void serial_setbrg ( void )
{
struct dm_serial_ops * ops = serial_get_ops ( cur_dev ) ;
if ( ops - > setbrg )
ops - > setbrg ( cur_dev , gd - > baudrate ) ;
}
}
void serial_stdio_init ( void )
void serial_stdio_init ( void )
@ -149,29 +159,22 @@ void serial_stdio_init(void)
static void serial_stub_putc ( struct stdio_dev * sdev , const char ch )
static void serial_stub_putc ( struct stdio_dev * sdev , const char ch )
{
{
serial_putc_dev ( sdev - > priv , ch ) ;
_ serial_putc( sdev - > priv , ch ) ;
}
}
void serial_stub_puts ( struct stdio_dev * sdev , const char * str )
void serial_stub_puts ( struct stdio_dev * sdev , const char * str )
{
{
while ( * str )
_serial_puts ( sdev - > priv , str ) ;
serial_stub_putc ( sdev , * str + + ) ;
}
}
int serial_stub_getc ( struct stdio_dev * sdev )
int serial_stub_getc ( struct stdio_dev * sdev )
{
{
return serial_getc_dev ( sdev - > priv ) ;
return _ serial_getc( sdev - > priv ) ;
}
}
int serial_stub_tstc ( struct stdio_dev * sdev )
int serial_stub_tstc ( struct stdio_dev * sdev )
{
{
struct udevice * dev = sdev - > priv ;
return _serial_tstc ( sdev - > priv ) ;
struct dm_serial_ops * ops = serial_get_ops ( dev ) ;
if ( ops - > pending )
return ops - > pending ( dev , true ) ;
return 1 ;
}
}
static int serial_post_probe ( struct udevice * dev )
static int serial_post_probe ( struct udevice * dev )