U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Lukasz Majewski <lukma@denx.de>
To: u-boot@lists.denx.de
Subject: [PATCH 08/26] clk: add support for setting clk rate from cmdline
Date: Mon, 16 Nov 2020 15:26:43 +0100	[thread overview]
Message-ID: <20201116152643.036d5d9a@jawa> (raw)
In-Reply-To: <5842ea3d-be3e-7754-c394-6369d1f89147@ti.com>

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 at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20201116/17ee7fa0/attachment.sig>

  reply	other threads:[~2020-11-16 14:26 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-10  9:05 [PATCH 00/26] TI J7 SoC HSM Rearch support series Tero Kristo
2020-11-10  9:05 ` [PATCH 01/26] lib: rational: copy the rational fraction lib routines from Linux Tero Kristo
2020-11-10 12:55   ` Tom Rini
2020-11-11  7:03     ` Tero Kristo
2020-11-10  9:05 ` [PATCH 02/26] ram: k3-j721e: fix clk_set_rate API usage Tero Kristo
2020-11-10  9:05 ` [PATCH 03/26] remoteproc: k3-r5: remove sysfw PM calls if not supported Tero Kristo
2020-11-15 10:29   ` Lokesh Vutla
2020-11-16 12:08     ` Tero Kristo
2020-11-10  9:05 ` [PATCH 04/26] common: fit: Update board_fit_image_post_process() to pass fit and node_offset Tero Kristo
2020-11-10  9:05 ` [PATCH 05/26] clk: fixed_rate: add API for directly registering fixed rate clocks Tero Kristo
2020-11-15 10:27   ` Lokesh Vutla
2020-11-16  0:42   ` Peng Fan
2020-11-10  9:05 ` [PATCH 06/26] clk: fix clock tree dump to properly dump out every registered clock Tero Kristo
2020-11-15 10:28   ` Lokesh Vutla
2020-11-10  9:05 ` [PATCH 07/26] clk: do not attempt to fetch clock pointer with null device Tero Kristo
2020-11-10  9:05 ` [PATCH 08/26] clk: add support for setting clk rate from cmdline Tero Kristo
2020-11-15 10:29   ` Lokesh Vutla
2020-11-16 12:06     ` Tero Kristo
2020-11-16 14:26       ` Lukasz Majewski [this message]
2020-11-10  9:05 ` [PATCH 09/26] clk: sci-clk: fix return value of set_rate Tero Kristo
2020-11-10  9:05 ` [PATCH 10/26] clk: fix assigned-clocks to pass with deferring provider Tero Kristo
2020-11-10  9:05 ` [PATCH 11/26] clk: fix set_rate to clean up cached rates for the hierarchy Tero Kristo
2020-11-10  9:05 ` [PATCH 12/26] clk: add support for TI K3 SoC PLL Tero Kristo
2020-11-10  9:05 ` [PATCH 13/26] clk: add support for TI K3 SoC clocks Tero Kristo
2020-11-10  9:05 ` [PATCH 14/26] power: domain: Introduce driver for raw TI K3 PDs Tero Kristo
2020-11-10  9:05 ` [PATCH 15/26] cmd: ti: pd: Add debug command for K3 power domains Tero Kristo
2020-11-10  9:05 ` [PATCH 16/26] tools: k3_fit_atf: add DM binary to the FIT image Tero Kristo
2020-11-10  9:05 ` [PATCH 17/26] arm: mach-k3: Add platform data for j721e and j7200 Tero Kristo
2020-11-10  9:05 ` [PATCH 18/26] arm: mach-k3: add support for detecting firmware images from FIT Tero Kristo
2020-11-10  9:05 ` [PATCH 19/26] arm: mach-k3: j721e: force enable A72 core 0 during spl shutdown Tero Kristo
2020-11-16  4:21   ` Lokesh Vutla
2020-11-16 12:22     ` Tero Kristo
2020-11-10  9:05 ` [PATCH 20/26] arm: mach-k3: do board config for PM and RM only if supported Tero Kristo
2020-11-16  4:23   ` Lokesh Vutla
2020-11-16 12:27     ` Tero Kristo
2020-11-17  6:14       ` Lokesh Vutla
2020-11-17  9:22         ` Tero Kristo
2020-11-18 10:23           ` Tero Kristo
2020-11-10  9:05 ` [PATCH 21/26] arm: mach-k3: common: Drop main r5 start Tero Kristo
2020-11-16  4:24   ` Lokesh Vutla
2020-11-16 12:28     ` Tero Kristo
2020-11-10  9:05 ` [PATCH 22/26] arm: mach-k3: sysfw-loader: pass boardcfg to sciserver Tero Kristo
2020-11-10  9:05 ` [PATCH 23/26] configs: j721e_evm_r5: Enable raw access power management features Tero Kristo
2020-11-10  9:06 ` [PATCH 24/26] configs: j721e_evm_r5: disable SCI PM drivers Tero Kristo
2020-11-10  9:06 ` [PATCH 25/26] configs: j721e_evm_r5: enable FIT image post processing Tero Kristo
2020-11-10  9:06 ` [PATCH 26/26] configs: j7200_evm_r5: Enable raw access power management features Tero Kristo
2020-11-16  4:13 ` [PATCH 00/26] TI J7 SoC HSM Rearch support series Lokesh Vutla
2020-11-16 12:13   ` Tero Kristo
2020-11-16 15:53     ` Tom Rini

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=20201116152643.036d5d9a@jawa \
    --to=lukma@denx.de \
    --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