From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ley Foon Tan Date: Thu, 09 Aug 2018 16:42:07 +0800 Subject: [U-Boot] [RFC][PATCH] cmd: clk: Add trivial implementation of clock dump for DM In-Reply-To: <20180808201044.13522-1-marex@denx.de> References: <20180808201044.13522-1-marex@denx.de> Message-ID: <1533804127.38452.12.camel@intel.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: u-boot@lists.denx.de On Wed, 2018-08-08 at 22:10 +0200, Marek Vasut wrote: > Add trivial implementation of the clk dump in case DM is enabled. > This implementation just iterates over all the clock registered > with the CLK uclass and prints their rate. > > Signed-off-by: Marek Vasut > Cc: Chin Liang See > Cc: Dinh Nguyen > Cc: Ley Foon Tan > Cc: Simon Glass > Cc: Tom Rini > --- >  cmd/clk.c | 37 +++++++++++++++++++++++++++++++++++++ >  1 file changed, 37 insertions(+) > > diff --git a/cmd/clk.c b/cmd/clk.c > index 73fb25092b..fd4231589c 100644 > --- a/cmd/clk.c > +++ b/cmd/clk.c > @@ -5,11 +5,48 @@ >  #include >  #include >  #include > +#if defined(CONFIG_DM) && defined(CONFIG_CLK) > +#include > +#include > +#endif >   >  int __weak soc_clk_dump(void) >  { > +#if defined(CONFIG_DM) && defined(CONFIG_CLK) > + struct udevice *dev; > + struct uclass *uc; > + struct clk clk; > + int ret; > + > + /* Device addresses start at 1 */ > + ret = uclass_get(UCLASS_CLK, &uc); > + if (ret) > + return ret; > + > + uclass_foreach_dev(dev, uc) { > + memset(&clk, 0, sizeof(clk)); > + ret = device_probe(dev); > + if (ret) { > + printf("%-30.30s : ? Hz\n", dev->name); > + continue; > + } > + > + ret = clk_request(dev, &clk); > + if (ret) { > + printf("%-30.30s : ? Hz\n", dev->name); > + continue; > + } > + > + printf("%-30.30s : %lu Hz\n", dev->name, > clk_get_rate(&clk)); > + > + clk_free(&clk); > + } > + > + return 0; > +#else >   puts("Not implemented\n"); >   return 1; > +#endif >  } >   >  static int do_clk_dump(cmd_tbl_t *cmdtp, int flag, int argc, Reviewed-by: Ley Foon Tan