diff options
author | Patrice Chotard <patrice.chotard@st.com> | 2018-08-03 15:07:38 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2018-09-10 20:20:38 -0400 |
commit | cbf538831d4b49d914cfdd885204f2551c8608e2 (patch) | |
tree | 88e228fb4e37b585a33b21ded149756fa143fc2c /drivers/serial/serial-uclass.c | |
parent | 555e378ca7658e817986e18e4a3f214a7fac60ad (diff) | |
download | u-boot-cbf538831d4b49d914cfdd885204f2551c8608e2.tar.gz |
dm: serial: Replace setparity by setconfig
Replace setparity by more generic setconfig ops
to allow uart parity, bits word length and stop bits
number change.
Adds SERIAL_GET_PARITY/BITS/STOP macros.
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/serial/serial-uclass.c')
-rw-r--r-- | drivers/serial/serial-uclass.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/serial/serial-uclass.c b/drivers/serial/serial-uclass.c index 4121a37aa8..ffdcae0931 100644 --- a/drivers/serial/serial-uclass.c +++ b/drivers/serial/serial-uclass.c @@ -290,6 +290,20 @@ void serial_setbrg(void) ops->setbrg(gd->cur_serial_dev, gd->baudrate); } +int serial_setconfig(uint config) +{ + struct dm_serial_ops *ops; + + if (!gd->cur_serial_dev) + return 0; + + ops = serial_get_ops(gd->cur_serial_dev); + if (ops->setconfig) + return ops->setconfig(gd->cur_serial_dev, config); + + return 0; +} + void serial_stdio_init(void) { } @@ -401,6 +415,8 @@ static int serial_post_probe(struct udevice *dev) ops->pending += gd->reloc_off; if (ops->clear) ops->clear += gd->reloc_off; + if (ops->setconfig) + ops->setconfig += gd->reloc_off; #if CONFIG_POST & CONFIG_SYS_POST_UART if (ops->loop) ops->loop += gd->reloc_off |