[PATCH] serial: pl01x: set baudrate when probing
Yang Xiwen via B4 Relay
devnull+forbidden405.outlook.com at kernel.org
Mon Jan 22 21:13:52 CET 2024
From: Yang Xiwen <forbidden405 at outlook.com>
It is found that when DM is enabled, only generic init function is
called in .probe(). Baudrate is never honored. Add a function call
to .setbrg() when probing so that we can update the baudrate of the
serial device.
Signed-off-by: Yang Xiwen <forbidden405 at outlook.com>
---
drivers/serial/serial_pl01x.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/serial/serial_pl01x.c b/drivers/serial/serial_pl01x.c
index 428a4d210d..57bbcaf3b6 100644
--- a/drivers/serial/serial_pl01x.c
+++ b/drivers/serial/serial_pl01x.c
@@ -290,6 +290,7 @@ int pl01x_serial_probe(struct udevice *dev)
{
struct pl01x_serial_plat *plat = dev_get_plat(dev);
struct pl01x_priv *priv = dev_get_priv(dev);
+ int ret;
#if CONFIG_IS_ENABLED(OF_PLATDATA)
struct dtd_serial_pl01x *dtplat = &plat->dtplat;
@@ -301,10 +302,14 @@ int pl01x_serial_probe(struct udevice *dev)
#endif
priv->type = plat->type;
- if (!plat->skip_init)
- return pl01x_generic_serial_init(priv->regs, priv->type);
- else
+ if (!plat->skip_init) {
+ ret = pl01x_generic_serial_init(priv->regs, priv->type);
+ if (!ret)
+ return ret;
+ return pl01x_serial_setbrg(dev, gd->baudrate);
+ } else {
return 0;
+ }
}
int pl01x_serial_getc(struct udevice *dev)
---
base-commit: f7cca7ccc5117eaafcc2bde91ad1bed6fee7cfc3
change-id: 20240123-b4-pl011-ee9575ff2a38
Best regards,
--
Yang Xiwen <forbidden405 at outlook.com>
More information about the U-Boot
mailing list