
Hi Tero,
On 15/11/2020 12:29, Lokesh Vutla wrote:
+Lucasz
This is just a nice to have patch. Found it quite useful while debugging the new drivers so decided to share.
-Tero
On 10/11/20 2:35 pm, Tero Kristo wrote:
Add new clk subcommand "clk setfreq", for setting up a clock rate directly from u-boot cmdline. This is handy for any debugging purposes towards clocks.
Signed-off-by: Tero Kristo t-kristo@ti.com
cmd/clk.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-)
diff --git a/cmd/clk.c b/cmd/clk.c index 0245b97136..fd7944c02e 100644 --- a/cmd/clk.c +++ b/cmd/clk.c @@ -98,8 +98,52 @@ static int do_clk_dump(struct cmd_tbl *cmdtp, int flag, int argc, return ret; }
+struct udevice *clk_lookup(const char *name) +{
- int i = 0;
- struct udevice *dev;
- do {
uclass_get_device(UCLASS_CLK, i++, &dev);
if (!strcmp(name, dev->name))
return dev;
- } while (dev);
- return NULL;
+}
+static int do_clk_setfreq(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
+{
- struct clk *clk = NULL;
- s32 freq;
- struct udevice *dev;
- freq = simple_strtoul(argv[2], NULL, 10);
- dev = clk_lookup(argv[1]);
- if (dev)
clk = dev_get_clk_ptr(dev);
- if (!clk) {
printf("clock '%s' not found.\n", argv[1]);
return -EINVAL;
- }
- freq = clk_set_rate(clk, freq);
- if (freq < 0) {
printf("set_rate failed: %d\n", freq);
return CMD_RET_FAILURE;
- }
- printf("set_rate returns %u\n", freq);
- return 0;
+}
static struct cmd_tbl cmd_clk_sub[] = { U_BOOT_CMD_MKENT(dump, 1, 1, do_clk_dump, "", ""),
U_BOOT_CMD_MKENT(setfreq, 3, 1, do_clk_setfreq, "", ""), };
static int do_clk(struct cmd_tbl *cmdtp, int flag, int argc,
@@ -124,7 +168,8 @@ static int do_clk(struct cmd_tbl *cmdtp, int flag, int argc, #ifdef CONFIG_SYS_LONGHELP static char clk_help_text[] =
- "dump - Print clock frequencies";
- "dump - Print clock frequencies\n"
- "setfreq [clk] [freq] - Set clock frequency"; #endif
-U_BOOT_CMD(clk, 2, 1, do_clk, "CLK sub-system", clk_help_text); +U_BOOT_CMD(clk, 4, 1, do_clk, "CLK sub-system", clk_help_text);
-- Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
Acked-by: Lukasz Majewski lukma@denx.de
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de