[U-Boot] [PATCH v3 05/13] ns16550: unify serial_ppc

Simon Glass sjg at chromium.org
Fri Nov 20 18:18:24 CET 2015


Hi Thomas,

On 19 November 2015 at 06:48, Thomas Chou <thomas at wytron.com.tw> wrote:
> Unify serial_ppc, and use the generic binding.
>
> Signed-off-by: Thomas Chou <thomas at wytron.com.tw>
> Reviewed-by: Tom Rini <trini at konsulko.com>
> ---
>  arch/powerpc/include/asm/config.h |  4 ++++
>  drivers/serial/Kconfig            |  2 +-
>  drivers/serial/Makefile           |  1 -
>  drivers/serial/serial_ppc.c       | 40 ---------------------------------------
>  4 files changed, 5 insertions(+), 42 deletions(-)
>  delete mode 100644 drivers/serial/serial_ppc.c
>
> diff --git a/arch/powerpc/include/asm/config.h b/arch/powerpc/include/asm/config.h
> index 65496d0..7391066 100644
> --- a/arch/powerpc/include/asm/config.h
> +++ b/arch/powerpc/include/asm/config.h
> @@ -104,4 +104,8 @@
>  /* All PPC boards must swap IDE bytes */
>  #define CONFIG_IDE_SWAP_IO
>
> +#if defined(CONFIG_DM_SERIAL)
> +#define CONFIG_SYS_NS16550_CLK         get_serial_clock()
> +#endif
> +
>  #endif /* _ASM_CONFIG_H_ */
> diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
> index 93faa4c..b41f508 100644
> --- a/drivers/serial/Kconfig
> +++ b/drivers/serial/Kconfig
> @@ -198,7 +198,7 @@ config ROCKCHIP_SERIAL
>  config NS16550_SERIAL
>         bool "NS16550 UART or compatible"
>         depends on DM_SERIAL
> -       default y if X86
> +       default y if X86 || PPC
>         help
>           Support NS16550 UART or compatible with driver model. This can be
>           enabled in the device tree with the correct input clock frequency.
> diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
> index 9036a8e..9f61113 100644
> --- a/drivers/serial/Makefile
> +++ b/drivers/serial/Makefile
> @@ -8,7 +8,6 @@
>  ifdef CONFIG_DM_SERIAL
>  obj-y += serial-uclass.o
>  obj-$(CONFIG_PL01X_SERIAL) += serial_pl01x.o
> -obj-$(CONFIG_PPC) += serial_ppc.o
>  else
>  obj-y += serial.o
>  obj-$(CONFIG_PL010_SERIAL) += serial_pl01x.o
> diff --git a/drivers/serial/serial_ppc.c b/drivers/serial/serial_ppc.c
> deleted file mode 100644
> index 47141c6..0000000
> --- a/drivers/serial/serial_ppc.c
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -/*
> - * Copyright (c) 2014 Google, Inc
> - *
> - * SPDX-License-Identifier:    GPL-2.0+
> - */
> -
> -#include <common.h>
> -#include <dm.h>
> -#include <ns16550.h>
> -#include <serial.h>
> -
> -static const struct udevice_id ppc_serial_ids[] = {
> -       { .compatible = "ns16550" },
> -       { }
> -};
> -
> -static int ppc_serial_ofdata_to_platdata(struct udevice *dev)
> -{
> -       struct ns16550_platdata *plat = dev_get_platdata(dev);
> -       int ret;
> -
> -       ret = ns16550_serial_ofdata_to_platdata(dev);
> -       if (ret)
> -               return ret;
> -       plat->clock = get_serial_clock();

You are dropping this call. We certainly don't want it for driver
model, but I suspect it will break some PPC boards if they don't have
the clock-frequency in the device tree. Do they?

> -
> -       return 0;
> -}
> -
> -U_BOOT_DRIVER(serial_ns16550) = {
> -       .name   = "serial_ppc",
> -       .id     = UCLASS_SERIAL,
> -       .of_match = ppc_serial_ids,
> -       .ofdata_to_platdata = ppc_serial_ofdata_to_platdata,
> -       .platdata_auto_alloc_size = sizeof(struct ns16550_platdata),
> -       .priv_auto_alloc_size = sizeof(struct NS16550),
> -       .probe = ns16550_serial_probe,
> -       .ops    = &ns16550_serial_ops,
> -       .flags  = DM_FLAG_PRE_RELOC,
> -};
> --
> 2.5.0
>

Regards,
Simon


More information about the U-Boot mailing list