[PATCH] serial: ns16550: Handle zero <clock-frequency> value

Simon Glass sjg at chromium.org
Wed Feb 3 22:42:18 CET 2021


Hi Bin,

On Wed, 3 Feb 2021 at 07:42, Bin Meng <bmeng.cn at gmail.com> wrote:
>
> A working device tree node of ns16550 should never be populated
> with value zero for the <clock-frequency> property. Unfortunately
> this is the case for the QEMU ppce500 target.
>
> Let's try to assign plat->clock to CONFIG_SYS_NS16550_CLK as the
> last resort to handle such case.
>
> This commit should be reverted when:
>
> - The following QEMU patch [1] is merged, and
> - U-Boot CI has upgraded its QEMU version that contains the fix
>
> [1] http://patchwork.ozlabs.org/project/qemu-devel/patch/1612362288-22216-2-git-send-email-bmeng.cn@gmail.com/
>
> Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
> ---
>
>  drivers/serial/ns16550.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
> index da903c1..a1593a2 100644
> --- a/drivers/serial/ns16550.c
> +++ b/drivers/serial/ns16550.c
> @@ -563,6 +563,8 @@ int ns16550_serial_of_to_plat(struct udevice *dev)
>         if (!plat->clock)
>                 plat->clock = dev_read_u32_default(dev, "clock-frequency",
>                                                    CONFIG_SYS_NS16550_CLK);
> +       if (!plat->clock)
> +               plat->clock = CONFIG_SYS_NS16550_CLK;

This is already done in the line above...does that not work?

>         if (!plat->clock) {
>                 debug("ns16550 clock not defined\n");
>                 return -EINVAL;
> --
> 2.7.4
>

Regards,
Simon


More information about the U-Boot mailing list