From: Shawn Guo <shawnguo@kernel.org>
To: Dong Aisheng <dongas86@gmail.com>
Cc: Dong Aisheng <aisheng.dong@nxp.com>,
devicetree <devicetree@vger.kernel.org>,
sboyd@kernel.org, Michael Turquette <mturquette@baylibre.com>,
Rob Herring <robh+dt@kernel.org>,
dl-linux-imx <linux-imx@nxp.com>,
Sascha Hauer <kernel@pengutronix.de>,
Fabio Estevam <fabio.estevam@nxp.com>,
linux-clk <linux-clk@vger.kernel.org>,
"moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v3 02/11] dt-bindings: clock: imx-lpcg: add support to parse clocks from device tree
Date: Mon, 12 Aug 2019 15:00:43 +0200 [thread overview]
Message-ID: <20190812130041.GD27041@X250> (raw)
In-Reply-To: <CAA+hA=TVv8m2GZr0W-u+S6XzJUCYrFDF95iyUGyAsbYMwatyZg@mail.gmail.com>
On Mon, Aug 05, 2019 at 11:27:20AM +0800, Dong Aisheng wrote:
> > > +- compatible: Should be one of:
> > > + "fsl,imx8qxp-lpcg"
> > > + "fsl,imx8qm-lpcg" followed by "fsl,imx8qxp-lpcg".
> > > +- reg: Address and length of the register set.
> > > +- #clock-cells: Should be 1. One LPCG supports multiple clocks.
> > > +- clocks: Input parent clocks phandle array for each clock.
> > > +- bit-offset: An integer array indicating the bit offset for each clock.
> >
> > I guess that the driver should be able to figure bit offset from
> > 'clock-indices' property.
> >
>
> Yes, it can be done in theory.
> Then the binding may look like:
> sdhc0_lpcg: clock-controller@5b200000 {
> ...
> #clock-cells = <1>;
> clocks = <&sdhc0_clk IMX_SC_PM_CLK_PER>,
> <&conn_ipg_clk>, <&conn_axi_clk>;
> clock-indices = <0>, <16>, <20>;
> clock-output-names = "sdhc0_lpcg_per_clk",
> "sdhc0_lpcg_ipg_clk",
> "sdhc0_lpcg_ahb_clk";
> power-domains = <&pd IMX_SC_R_SDHC_0>;
> };
>
> usdhc1: mmc@5b010000 {
> ...
> clocks = <&sdhc0_lpcg 16>,
> <&sdhc0_lpcg 0>,
> <&sdhc0_lpcg 20>;
> clock-names = "ipg", "per", "ahb";
> };
>
> However, after trying, i found one limitation if using clock-indices
> that users have to do a secondary search for the indices value from clock names
> which is not very friendly.
>
> Formerly from the clock output names, user can easily get the clock
> index as they're
> in fixed orders as output names, so very easily to use.
> e.g.
> clocks = <&sdhc0_lpcg 1>,
> <&sdhc0_lpcg 0>,
> <&sdhc0_lpcg 2>;
>
> If using clock-indices, users have no way to know it's clock index
> from clock output names order
> unless they do a secondary search from the clock-indice array accordingly.
> For example, for "sdhc0_lpcg_ahb_clk", user can easily know its
> reference is <&sdhc0_lpcg 2>.
> But if using clock-indice, we need search clock-indices array to find
> its reference
> becomes <&sdhc0_lpcg 20>. So this seems like a drawback if using clock-indices.
Shouldn't we have constant macro defined for those numbers, so that both
'clock-indices' and 'clocks' of client device can use?
>
> Therefore, personally i'm still a bit intend to the original way which
> is more simple and
> straightforward from user point of view, unless there's a strong
> objections on define another
> vendor private property.
>
> Shawn,
> How do you think?
> Should we enforce the complexity to users?
>
> > > +- hw-autogate: Boolean array indicating whether supports HW autogate for
> > > + each clock.
> >
> > Not sure why it needs to be a property in DT. Or asking it different
> > way, when it should be true and when false?
> >
>
> It is one LPCG feature.
> For some specific device LPCGs, it may support clock auto gating. (depends on
> IP's capability. e.g. uSDHC).
> So we define this feature in DT as well in case if user may want to
> use it in the future.
>
> But AFAIK, there's still no one using it. Most drivers reply on runtime PM to do
> clock management. Did not use LPCG auto gate off feature.
> But the current LPCG driver API does support this parameter.
>
> If you think it's unnecessary to define it in DT as there're still no
> users, i can remove it
> and disabling autogate in driver by default.
I would suggest to drop it then.
Shawn
next prev parent reply other threads:[~2019-08-12 13:00 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1563289265-10977-1-git-send-email-aisheng.dong@nxp.com>
2019-07-16 15:00 ` [PATCH v3 01/11] dt-bindings: firmware: imx-scu: new binding to parse clocks from device tree Dong Aisheng
2019-08-03 14:42 ` Shawn Guo
2019-08-05 3:48 ` Dong Aisheng
2019-08-19 12:36 ` Daniel Baluta
2019-08-29 10:01 ` Oliver Graute
2019-07-16 15:00 ` [PATCH v3 02/11] dt-bindings: clock: imx-lpcg: add support " Dong Aisheng
2019-08-03 13:50 ` Shawn Guo
2019-08-05 3:27 ` Dong Aisheng
2019-08-12 13:00 ` Shawn Guo [this message]
2019-08-12 14:41 ` Aisheng Dong
2019-08-12 15:54 ` Shawn Guo
2019-08-19 12:42 ` Daniel Baluta
2019-07-25 12:48 ` [PATCH v3 00/11] clk: imx8: add new clock binding for better pm support Dong Aisheng
2019-07-30 11:55 ` Oliver Graute
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=20190812130041.GD27041@X250 \
--to=shawnguo@kernel.org \
--cc=aisheng.dong@nxp.com \
--cc=devicetree@vger.kernel.org \
--cc=dongas86@gmail.com \
--cc=fabio.estevam@nxp.com \
--cc=kernel@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-imx@nxp.com \
--cc=mturquette@baylibre.com \
--cc=robh+dt@kernel.org \
--cc=sboyd@kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).