u-boot.lists.denx.de archive mirror
 help / color / mirror / Atom feed
From: Tom Rini <trini@konsulko.com>
To: Sean Anderson <seanga2@gmail.com>
Cc: "Peng Fan (OSS)" <peng.fan@oss.nxp.com>,
	Rob Herring <robh+dt@kernel.org>, "lukma@denx.de" <lukma@denx.de>,
	"sjg@chromium.org" <sjg@chromium.org>,
	"u-boot@lists.denx.de" <u-boot@lists.denx.de>
Subject: Re: [PATCH V2] clk: introduce u-boot,ignore-clk-defaults
Date: Wed, 24 Nov 2021 09:10:28 -0500	[thread overview]
Message-ID: <20211124141028.GS24579@bill-the-cat> (raw)
In-Reply-To: <a4cb8501-9fd6-63c9-22aa-398df3460942@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 6524 bytes --]

On Tue, Nov 23, 2021 at 09:16:14PM -0500, Sean Anderson wrote:
> On 11/22/21 10:02 PM, Peng Fan (OSS) wrote:
> > > Subject: Re: [PATCH V2] clk: introduce u-boot,ignore-clk-defaults
> > > 
> > > On Mon, Nov 22, 2021 at 11:33:27AM +0800, Peng Fan (OSS) wrote:
> > > > + Rob
> > > > 
> > > > On 2021/11/20 20:57, Tom Rini wrote:
> > > > > On Sat, Nov 20, 2021 at 12:10:54PM +0000, Peng Fan (OSS) wrote:
> > > > > > > Subject: [PATCH V2] clk: introduce u-boot,ignore-clk-defaults
> > > > > > > 
> > > > > > > From: Peng Fan <peng.fan@nxp.com>
> > > > > > > 
> > > > > > > Current code has a force clk_set_defaults in multiple stages,
> > > > > > > U-Boot reuse the same device tree and Linux Kernel device tree,
> > > > > > > but we not register all the clks as Linux Kernel, so
> > > > > > > clk_set_defaults will fail and cause the clk provider registeration fail.
> > > > > > > 
> > > > > > > So introduce a new property to ignore the default settings which
> > > > > > > could be used by any node that wanna ignore default settings.
> > > > > > > 
> > > > > > > Reviewed-by: Simon Glass <sjg@chromium.org>
> > > > > > > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > > > > > > ---
> > > > > > > 
> > > > > > > V2:
> > > > > > >    Add R-b tag
> > > > > > >    Tom, Simon
> > > > > > >      After a thought, I think still put it as a u-boot thing.
> > > assigned-clock-x is
> > > > > > >      actually Linux specific, however I could not add the new property
> > > to Linux,
> > > > > > >      because we are supporting SystemReady-IR, we need the
> > > > > > > assigned-clock-x property
> > > > > > >      in linux working and ignore it in U-Boot.
> > > > > > 
> > > > > > Any more thoughts?
> > > > > 
> > > > > Just my continued request that you treat this as generic and submit
> > > > > the binding upstream so it can be in the device tree for the platform.
> > > > > 
> > > > 
> > > > As Sean said, this is to serve cast that linux and U-Boot use the same
> > > > device tree, I mean U-Boot runtime export device tree to linux for
> > > > SR-IR (system-ready IR) booting.
> > > > 
> > > > Linux needs assigned-clocks to some reason, but U-Boot not need that
> > > > because the driver not added the support or not a must to have that.
> > > > 
> > > > Because assigned-clocks failure in U-Boot will cause probe fail now,
> > > > the device driver will report failure.
> > > > 
> > > > You mean rename this to "ignore-clk-defaults" or keep
> > > > "u-boot,ignore-clk-defauls" or "firmware,ignore-clk-defaults" to linux
> > > > device tree binding?
> > > > 
> > > > I could try to send to linux kernel with "firmware" as a prefix.
> > > 
> > > What I mean is that first I'm not seeing the description of the property as
> > > being clear enough, either in commit message or the binding itself.
> > > That's why in my mind I keep seeing this as "we set the properties
> > > linux,assigned-clocks and u-boot,ignore-clk-defaults" and I don't know why
> > > we need both.  Is there not something we can do based on seeing
> > > linux,assigned-clocks ?  Showing something that makes use of the property
> > > you're wishing to add would be helpful.  In fact, some specific dts snippets
> > > would be helpful to understand what's going on here.
> > 
> > clk: clock-controller@30380000 {
> >          compatible = "fsl,imx8mp-ccm";
> >          reg = <0x30380000 0x10000>;
> >          #clock-cells = <1>;
> >          clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>, <&clk_ext2>,
> >                   <&clk_ext3>, <&clk_ext4>;
> >          clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2",
> >                        "clk_ext3", "clk_ext4";
> >          assigned-clocks = <&clk IMX8MP_CLK_A53_SRC>,
> >                            <&clk IMX8MP_CLK_A53_CORE>,
> >                            <&clk IMX8MP_CLK_NOC>,
> >                            <&clk IMX8MP_CLK_NOC_IO>,
> >                            <&clk IMX8MP_CLK_GIC>,
> >                            <&clk IMX8MP_CLK_AUDIO_AHB>,
> >                            <&clk IMX8MP_CLK_AUDIO_AXI_SRC>,
> >                            <&clk IMX8MP_CLK_IPG_AUDIO_ROOT>,
> >                            <&clk IMX8MP_AUDIO_PLL1>,
> >                            <&clk IMX8MP_AUDIO_PLL2>;
> >          assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>,
> >                                   <&clk IMX8MP_ARM_PLL_OUT>,
> >                                   <&clk IMX8MP_SYS_PLL2_1000M>,
> >                                   <&clk IMX8MP_SYS_PLL1_800M>,
> >                                   <&clk IMX8MP_SYS_PLL2_500M>,
> >                                   <&clk IMX8MP_SYS_PLL1_800M>,
> >                                   <&clk IMX8MP_SYS_PLL1_800M>;
> >          assigned-clock-rates = <0>, <0>,
> >                                 <1000000000>,
> >                                 <800000000>,
> >                                 <500000000>,
> >                                 <400000000>,
> >                                 <800000000>,
> >                                 <400000000>,
> >                                 <393216000>,
> >                                 <361267200>;
> >          u-boot,ignore-clk-defaults;
> > };
> > 
> > The above node is that I wanna have in U-Boot device tree.
> > This node is same as the one used in linux device tree except the new
> > property introduced here.
> > 
> > In i.MX U-Boot, we not support the clks here in the clk driver, but linux needs the assigned-clocks property, so I could not delete it
> > because U-Boot runtime export the device tree to Linux.
> > 
> > So add a new property here for U-Boot specific usage, if the property
> > is there, U-Boot ignore the assigned-clock settings for a node.
> > 
> > I hope this is clear and please suggest what to do next.
> 
> Hm. Well perhaps we can designate a specific return code to indicate
> that we have a valid clock ID but it is just unimplemented. So in your
> driver you would do
> 
> ulong my_get_rate(struct clk *clk)
> {
> 	switch (clk->id) {
> 	case MY_CLK:
> 		...
> 	default:
> 		if (clk->id < MY_CLK_MAX)
> 			return -ENOSYS;
> 		else
> 			return -EINVAL;
> 	}
> }
> 
> and then the clock rate assignment would see -ENOSYS and go on its merry
> way.

Or even just have the driver that matches on "fsl,imx8mp-ccm" have a
log_debug("Leaving clocks as-is, OS will handle them\n");
and returning success?

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

  reply	other threads:[~2021-11-24 14:10 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-29  1:28 [PATCH V2] clk: introduce u-boot,ignore-clk-defaults Peng Fan (OSS)
2021-10-29  0:57 ` Sean Anderson
2021-10-29  2:10 ` Tom Rini
2021-10-29  2:43   ` Sean Anderson
2021-10-29  2:47     ` Tom Rini
2021-11-20 12:10 ` Peng Fan (OSS)
2021-11-20 12:57   ` Tom Rini
2021-11-20 15:06     ` Sean Anderson
2021-11-20 15:13       ` Tom Rini
2021-11-20 15:21       ` Mark Kettenis
2021-11-20 15:25         ` Tom Rini
2021-11-22  3:34       ` Peng Fan (OSS)
2021-11-22  3:33     ` Peng Fan (OSS)
2021-11-22  3:51       ` Simon Glass
2021-11-22 13:22       ` Tom Rini
2021-11-23  3:02         ` Peng Fan (OSS)
2021-11-23 15:38           ` Tom Rini
2021-11-24  2:16           ` Sean Anderson
2021-11-24 14:10             ` Tom Rini [this message]
2021-11-26 18:17               ` Sean Anderson
2021-11-26 18:54                 ` 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=20211124141028.GS24579@bill-the-cat \
    --to=trini@konsulko.com \
    --cc=lukma@denx.de \
    --cc=peng.fan@oss.nxp.com \
    --cc=robh+dt@kernel.org \
    --cc=seanga2@gmail.com \
    --cc=sjg@chromium.org \
    --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;
as well as URLs for NNTP newsgroup(s).