dm: serial: add "serial_dev_" API for normal serial device

"serial_" API is designed for UART debug and "serial_stub_" API
is designed for stdio device(e.g. keyboard, video, lcd...).

We need new API for normal serial device, e.g. a UART working
with other peripheral device.

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Change-Id: Ifc2cb2ca9c1d4a395e89ceb5e059ec05a07b1967
This commit is contained in:
Joseph Chen 2019-12-02 13:07:24 +08:00 committed by Jianhong Chen
parent 5d5f363eb9
commit 7ebffaaf20
2 changed files with 60 additions and 0 deletions

View File

@ -307,6 +307,58 @@ void serial_clear(void)
__serial_clear(gd->cur_serial_dev); __serial_clear(gd->cur_serial_dev);
} }
void serial_dev_putc(struct udevice *dev, char ch)
{
if (!dev)
return;
_serial_putc(dev, ch);
}
void serial_dev_puts(struct udevice *dev, const char *str)
{
if (!dev)
return;
_serial_puts(dev, str);
}
int serial_dev_getc(struct udevice *dev)
{
if (!dev)
return 0;
return _serial_getc(dev);
}
int serial_dev_tstc(struct udevice *dev)
{
if (!dev)
return 0;
return _serial_tstc(dev);
}
void serial_dev_setbrg(struct udevice *dev, int baudrate)
{
struct dm_serial_ops *ops;
if (!dev)
return;
ops = serial_get_ops(dev);
if (ops->setbrg)
ops->setbrg(dev, baudrate);
}
void serial_dev_clear(struct udevice *dev)
{
if (!dev)
return;
__serial_clear(dev);
}
void serial_stdio_init(void) void serial_stdio_init(void)
{ {
} }

View File

@ -207,4 +207,12 @@ void sh_serial_initialize(void);
void uartlite_serial_initialize(void); void uartlite_serial_initialize(void);
void zynq_serial_initialize(void); void zynq_serial_initialize(void);
/* serial device */
int serial_dev_getc(struct udevice *dev);
int serial_dev_tstc(struct udevice *dev);
void serial_dev_putc(struct udevice *dev, char ch);
void serial_dev_puts(struct udevice *dev, const char *str);
void serial_dev_setbrg(struct udevice *dev, int baudrate);
void serial_dev_clear(struct udevice *dev);
#endif #endif