[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YLdOsA63GyMj4SgR@atomide.com>
Date: Wed, 2 Jun 2021 12:26:08 +0300
From: Tony Lindgren <tony@...mide.com>
To: Sven Peter <sven@...npeter.dev>
Cc: Rob Herring <robh+dt@...nel.org>, devicetree@...r.kernel.org,
linux-clk <linux-clk@...r.kernel.org>,
linux-arm-kernel <linux-arm-kernel@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Hector Martin <marcan@...can.st>,
Michael Turquette <mturquette@...libre.com>,
Stephen Boyd <sboyd@...nel.org>,
Mark Kettenis <mark.kettenis@...all.nl>,
Arnd Bergmann <arnd@...nel.org>
Subject: Re: [PATCH 0/3] Apple M1 clock gate driver
* Sven Peter <sven@...npeter.dev> [210530 11:09]:
> Hi,
>
> On Wed, May 26, 2021, at 09:18, Tony Lindgren wrote:
> > Hi,
> >
> > * Rob Herring <robh+dt@...nel.org> [210525 18:09]:
> > > I would do a single node per mmio region with the register offset (or
> > > offset / 4) being the clock id. This can still support new SoCs easily
> > > if you have a fallback compatible. If you want/need to get all the
> > > clocks, just walk the DT 'clocks' properties and extract all the IDs.
> >
> > I mostly agree.. Except I'd also leave out the artificial clock ID and
> > just use real register offsets from the clock controller base instead.
>
> Sure, I'll do that.
>
> >
> > So a single clock controller node for each MMIO range, then set
> > #clock=cells = <1>. Then the binding follows what we have for the
> > interrupts-extended binding for example.
> >
> > If the clock controller optionally needs some data in the dts,
> > that can be added to the clock controller node. Or it can be driver
> > internal built-in data. If the data for dts can be described in a
> > generic way, even better :)
>
> Now the big question is *how* to describe this additional data in the
> dts. Essentially I need to specify that e.g. to enable clock 0x270
> I first need to enable the (internal) clocks 0x1c0 and then 0x220.
> Are you aware of any generic way to describe this? I'm not even sure
> how a sane non-generic way would look like when I just have a single
> clock controller node.
To me it seems you might be able to recycle the assigned-clocks and
assigned-clock-parents etc properties in the clock controller node.
Sure the assigned-clocks property will point to clocks in the
clock controller itself, and will have tens of entries, but should
work :)
And sounds like you can generate that list with some script from the
Apple dtb.
Regards,
Tony
Powered by blists - more mailing lists