
Extend the driver to allow dm device removal, but always let the console serial device power domain enabled, so that U-Boot doesn't crash when i. e. the serial output is enabled for debugging.
Signed-off-by: Anatolij Gustschin agust@denx.de --- drivers/serial/serial_lpuart.c | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/drivers/serial/serial_lpuart.c b/drivers/serial/serial_lpuart.c index a357b00d28..9b56dfb11e 100644 --- a/drivers/serial/serial_lpuart.c +++ b/drivers/serial/serial_lpuart.c @@ -488,6 +488,13 @@ static int lpuart_serial_probe(struct udevice *dev) return _lpuart_serial_init(dev); }
+static int lpuart_serial_remove(struct udevice *dev) +{ + if (dev == gd->cur_serial_dev) + dev->flags |= DM_FLAG_REMOVE_WITH_PD_ON; + return 0; +} + static int lpuart_serial_ofdata_to_platdata(struct udevice *dev) { struct lpuart_serial_platdata *plat = dev->platdata; @@ -539,5 +546,7 @@ U_BOOT_DRIVER(serial_lpuart) = { .ofdata_to_platdata = lpuart_serial_ofdata_to_platdata, .platdata_auto_alloc_size = sizeof(struct lpuart_serial_platdata), .probe = lpuart_serial_probe, + .remove = lpuart_serial_remove, .ops = &lpuart_serial_ops, + .flags = DM_FLAG_OS_PREPARE, };