[U-Boot] [RFC PATCH 1/2] common: Add new clk command

Simon Glass sjg at chromium.org
Tue Dec 22 05:21:25 CET 2015


Hi Michal,

On 22 January 2014 at 04:02, Michal Simek <michal.simek at xilinx.com> wrote:
> Command provides just dump subcommand for showing clock
> frequencies in a soc.
>
> Signed-off-by: Michal Simek <michal.simek at xilinx.com>
> ---
>
>  README                   |  1 +
>  common/Makefile          |  1 +
>  common/cmd_clk.c         | 51 ++++++++++++++++++++++++++++++++++++++++++++++++
>  include/clk.h            |  6 ++++++
>  include/config_cmd_all.h |  1 +
>  5 files changed, 60 insertions(+)
>  create mode 100644 common/cmd_clk.c
>  create mode 100644 include/clk.h
>
> diff --git a/README b/README
> index aea82be..0087649 100644
> --- a/README
> +++ b/README
> @@ -887,6 +887,7 @@ The following options need to be configured:
>                 CONFIG_CMD_BSP          * Board specific commands
>                 CONFIG_CMD_BOOTD          bootd
>                 CONFIG_CMD_CACHE        * icache, dcache
> +               CONFIG_CMD_CLK          * clock command support
>                 CONFIG_CMD_CONSOLE        coninfo
>                 CONFIG_CMD_CRC32        * crc32
>                 CONFIG_CMD_DATE         * support for RTC, date/time...
> diff --git a/common/Makefile b/common/Makefile
> index d12cba5..a000e7d 100644
> --- a/common/Makefile
> +++ b/common/Makefile
> @@ -59,6 +59,7 @@ obj-$(CONFIG_CMD_BOOTLDR) += cmd_bootldr.o
>  obj-$(CONFIG_CMD_BOOTSTAGE) += cmd_bootstage.o
>  obj-$(CONFIG_CMD_CACHE) += cmd_cache.o
>  obj-$(CONFIG_CMD_CBFS) += cmd_cbfs.o
> +obj-$(CONFIG_CMD_CLK) += cmd_clk.o
>  obj-$(CONFIG_CMD_CONSOLE) += cmd_console.o
>  obj-$(CONFIG_CMD_CPLBINFO) += cmd_cplbinfo.o
>  obj-$(CONFIG_DATAFLASH_MMC_SELECT) += cmd_dataflash_mmc_mux.o
> diff --git a/common/cmd_clk.c b/common/cmd_clk.c
> new file mode 100644
> index 0000000..6d3d46a
> --- /dev/null
> +++ b/common/cmd_clk.c
> @@ -0,0 +1,51 @@
> +/*
> + * Copyright (C) 2013 Xilinx, Inc.
> + *
> + * SPDX-License-Identifier:    GPL-2.0+
> + */
> +#include <common.h>
> +#include <command.h>
> +#include <clk.h>
> +
> +int __weak soc_clk_dump(void)
> +{
> +       puts("Not implemented\n");
> +       return 1;
> +}
> +
> +static int do_clk_dump(cmd_tbl_t *cmdtp, int flag, int argc,
> +                      char *const argv[])
> +{
> +       return soc_clk_dump();

This is not the way things should work in driver model. See how the
gpio command works for an example. I suggest it iterates through the
available clocks and then calls a driver function to obtain
information about each clock, then prints it out. We should avoid weak
functions as a method of connecting things together.

[snip]

Regards,
Simon


More information about the U-Boot mailing list