[U-Boot] [PATCH v2 2/2] serial: lpuart: request dm device removal when booting OS

Peng Fan peng.fan at nxp.com
Mon Jul 15 03:02:46 UTC 2019


Hi Anatolij,

> Subject: [PATCH v2 2/2] serial: lpuart: request dm device removal when
> booting OS
> 
> 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 at denx.de>
> ---
> Changes in v2:
>  - None
> 
>  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
> 57dd4a72c6..b028f4b35f 100644
> --- a/drivers/serial/serial_lpuart.c
> +++ b/drivers/serial/serial_lpuart.c
> @@ -489,6 +489,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;

How about introduce a device tree property for DM? Then
Set the flags in common code, not in specific driver.

Thanks,
Peng

> +	return 0;
> +}
> +
>  static int lpuart_serial_ofdata_to_platdata(struct udevice *dev)  {
>  	struct lpuart_serial_platdata *plat = dev->platdata; @@ -543,5 +550,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,
>  };
> --
> 2.17.1



More information about the U-Boot mailing list