public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Tero Kristo <kristo@kernel.org>
To: u-boot@lists.denx.de, lokeshvutla@ti.com
Cc: trini@konsulko.com
Subject: [PATCHv5 08/26] clk: add support for setting clk rate from cmdline
Date: Thu,  3 Jun 2021 09:32:37 +0300	[thread overview]
Message-ID: <20210603063255.5483-9-kristo@kernel.org> (raw)
In-Reply-To: <20210603063255.5483-1-kristo@kernel.org>

From: Tero Kristo <t-kristo@ti.com>

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.

Acked-by: Lukasz Majewski <lukma@denx.de>
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tero Kristo <kristo@kernel.org>
---
 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);
-- 
2.17.1


  parent reply	other threads:[~2021-06-03  6:34 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-03  6:32 [PATCHv5 00/26] Re-base / re-post of TI-K3 HSM rearch series Tero Kristo
2021-06-03  6:32 ` [PATCHv5 01/26] lib: rational: copy the rational fraction lib routines from Linux Tero Kristo
2021-06-03  6:32 ` [PATCHv5 02/26] arm: mach-k3: introduce new config option for sysfw split Tero Kristo
2021-06-03  6:32 ` [PATCHv5 03/26] remoteproc: k3-r5: remove sysfw PM calls if not supported Tero Kristo
2021-06-03  6:32 ` [PATCHv5 04/26] common: fit: Update board_fit_image_post_process() to pass fit and node_offset Tero Kristo
2021-06-09 10:33   ` Tero Kristo
2021-06-03  6:32 ` [PATCHv5 05/26] clk: fixed_rate: add API for directly registering fixed rate clocks Tero Kristo
2021-06-03  6:32 ` [PATCHv5 06/26] clk: fix clock tree dump to properly dump out every registered clock Tero Kristo
2021-06-03  6:32 ` [PATCHv5 07/26] clk: do not attempt to fetch clock pointer with null device Tero Kristo
2021-06-03  6:32 ` Tero Kristo [this message]
2021-06-03  6:32 ` [PATCHv5 09/26] clk: sci-clk: fix return value of set_rate Tero Kristo
2021-06-03  6:32 ` [PATCHv5 10/26] clk: fix assigned-clocks to pass with deferring provider Tero Kristo
2021-06-03  6:32 ` [PATCHv5 11/26] clk: fix set_rate to clean up cached rates for the hierarchy Tero Kristo
2021-06-03  6:32 ` [PATCHv5 12/26] clk: add support for TI K3 SoC PLL Tero Kristo
2021-06-03  6:32 ` [PATCHv5 13/26] clk: add support for TI K3 SoC clocks Tero Kristo
2021-06-03  6:32 ` [PATCHv5 14/26] power: domain: Introduce driver for raw TI K3 PDs Tero Kristo
2021-06-03  6:32 ` [PATCHv5 15/26] cmd: ti: pd: Add debug command for K3 power domains Tero Kristo
2021-06-03  6:32 ` [PATCHv5 16/26] tools: k3_fit_atf: add DM binary to the FIT image Tero Kristo
2021-06-03  6:32 ` [PATCHv5 17/26] arm: mach-k3: Add platform data for j721e and j7200 Tero Kristo
2021-06-03  6:32 ` [PATCHv5 18/26] arm: mach-k3: add support for detecting firmware images from FIT Tero Kristo
2021-06-03  6:32 ` [PATCHv5 19/26] arm: mach-k3: do board config for PM only if supported Tero Kristo
2021-06-03  6:32 ` [PATCHv5 20/26] arm: mach-k3: common: Drop main r5 start Tero Kristo
2021-06-03  6:32 ` [PATCHv5 21/26] arm: mach-k3: sysfw-loader: pass boardcfg to sciserver Tero Kristo
2021-06-03  6:32 ` [PATCHv5 22/26] arm: mach-k3: j721e_init: Force early probe of clk-k3 driver Tero Kristo
2021-06-03  6:32 ` [PATCHv5 23/26] configs: j721e_evm_r5: Enable raw access power management features Tero Kristo
2021-06-03  6:32 ` [PATCHv5 24/26] configs: j7200_evm_r5: " Tero Kristo
2021-06-03  6:32 ` [PATCHv5 25/26] board: ti: j72xx: README: update build instructions and image formats Tero Kristo
2021-06-03  6:32 ` [PATCHv5 26/26] arm: dts: k3-j72xx: correct MCU timer1 frequency Tero Kristo
2021-06-07 11:22 ` [PATCHv5 00/26] Re-base / re-post of TI-K3 HSM rearch series Lokesh Vutla
2021-06-08  6:27   ` Tero Kristo
2021-06-08  6:32     ` Lokesh Vutla
2021-06-08  6:43       ` Tero Kristo
2021-06-09 16:59 ` Lokesh Vutla

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210603063255.5483-9-kristo@kernel.org \
    --to=kristo@kernel.org \
    --cc=lokeshvutla@ti.com \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox