From: Conor Dooley <conor@kernel.org>
To: Detlev Casanova <detlev.casanova@collabora.com>
Cc: linux-kernel@vger.kernel.org,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Heiko Stuebner <heiko@sntech.de>,
Philipp Zabel <p.zabel@pengutronix.de>,
Elaine Zhang <zhangqing@rock-chips.com>,
linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-rockchip@lists.infradead.org, kernel@collabora.com,
Sugar Zhang <sugar.zhang@rock-chips.com>
Subject: Re: [PATCH v5 1/2] dt-bindings: clock, reset: Add support for rk3576
Date: Mon, 19 Aug 2024 18:31:09 +0100 [thread overview]
Message-ID: <20240819-robust-gutter-27540adb4621@spud> (raw)
In-Reply-To: <2071848.usQuhbGJ8B@trenzalore>
[-- Attachment #1: Type: text/plain, Size: 5779 bytes --]
On Mon, Aug 19, 2024 at 01:14:38PM -0400, Detlev Casanova wrote:
> On Monday, 19 August 2024 12:34:15 EDT Conor Dooley wrote:
> > On Mon, Aug 19, 2024 at 10:08:31AM -0400, Detlev Casanova wrote:
> > > Hi Conor,
> > >
> > > On Thursday, 15 August 2024 11:07:46 EDT Conor Dooley wrote:
> > > > On Wed, Aug 14, 2024 at 06:19:22PM -0400, Detlev Casanova wrote:
> > > > > Add clock and reset ID defines for rk3576.
> > > > >
> > > > > Compared to the downstream bindings written by Elaine, this uses
> > > > > continous gapless IDs starting at 0. Thus all numbers are
> > > > > different between downstream and upstream, but names are kept
> > > > > exactly the same.
> > > > >
> > > > > Also add documentation for the rk3576 CRU core.
> > > > >
> > > > > Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
> > > > > Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
> > > > > Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
> > > > > ---
> > > > >
> > > > > .../bindings/clock/rockchip,rk3576-cru.yaml | 64 ++
> > > > > .../dt-bindings/clock/rockchip,rk3576-cru.h | 592
> > > > > ++++++++++++++++++
> > > > > .../dt-bindings/reset/rockchip,rk3576-cru.h | 564 +++++++++++++++++
> > > > > 3 files changed, 1220 insertions(+)
> > > > > create mode 100644
> > > > > Documentation/devicetree/bindings/clock/rockchip,rk3576-cru.yaml
> > > > > create
> > > > > mode 100644 include/dt-bindings/clock/rockchip,rk3576-cru.h create
> > > > > mode
> > > > > 100644 include/dt-bindings/reset/rockchip,rk3576-cru.h>
> > > > >
> > > > > diff --git
> > > > > a/Documentation/devicetree/bindings/clock/rockchip,rk3576-cru.yaml
> > > > > b/Documentation/devicetree/bindings/clock/rockchip,rk3576-cru.yaml new
> > > > > file mode 100644
> > > > > index 0000000000000..d69985e6fa0ce
> > > > > --- /dev/null
> > > > > +++ b/Documentation/devicetree/bindings/clock/rockchip,rk3576-cru.yaml
> > > > > @@ -0,0 +1,64 @@
> > > > > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> > > > > +%YAML 1.2
> > > > > +---
> > > > > +$id: http://devicetree.org/schemas/clock/rockchip,rk3576-cru.yaml#
> > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > > +
> > > > > +title: Rockchip rk3576 Family Clock and Reset Control Module
> > > > > +
> > > > > +maintainers:
> > > > > + - Elaine Zhang <zhangqing@rock-chips.com>
> > > > > + - Heiko Stuebner <heiko@sntech.de>
> > > > > + - Detlev Casanova <detlev.casanova@collabora.com>
> > > > > +
> > > > > +description:
> > > > > + The RK3576 clock controller generates the clock and also implements
> > > > > a
> > > > > reset + controller for SoC peripherals. For example it provides
> > > > > SCLK_UART2 and + PCLK_UART2, as well as SRST_P_UART2 and SRST_S_UART2
> > > > > for the second UART + module.
> > > > > +
> > > > > +properties:
> > > > > + compatible:
> > > > > + const: rockchip,rk3576-cru
> > > > > +
> > > > > + reg:
> > > > > + maxItems: 1
> > > > > +
> > > > > + "#clock-cells":
> > > > > + const: 1
> > > > > +
> > > > > + "#reset-cells":
> > > > > + const: 1
> > > > > +
> > > > > + clocks:
> > > > > + maxItems: 2
> > > > > +
> > > > > + clock-names:
> > > > > + items:
> > > > > + - const: xin24m
> > > > > + - const: xin32k
> > > > > +
> > > > > + rockchip,grf:
> > > > > + $ref: /schemas/types.yaml#/definitions/phandle
> > > > > + description: >
> > > > > + phandle to the syscon managing the "general register files". It
> > > > > is
> > > > > used + for GRF muxes, if missing any muxes present in the GRF
> > > > > will
> > > > > not be + available.
> > > >
> > > > Two questions on this property:
> > > > - you only support one soc, why is this optional?
> > >
> > > It is optional because only used for some specific clocks. The SoC can
> > > still be used without this, but some devices might not work (Not tested
> > > but USB PHYs might not be working without the GRF)
I would not bother making them optional. I don't think there's any
benefit to doing so when there's only one instance of this controller
on the device, and the grfs will also always be present.
> > > This is also set as optional in similar rockchip CRU bindings (rk3588).
> > >
> > > > - why can't you look it up by compatible?
> > >
> > > These bindings are specific to one compatible only. It is very similar to
> > > rk3588 but it looks like all rockchip CRU driver has its own yaml file, so
> > > I followed that trend instead of merging with the rk3588 CRU bindings.
> > I don't think you've answered the question I am asking. Why can you not
> > look up the syscon by the /syscon/'s compatible in the clock driver, and
> > thus remove the property from here?
>
> I don't think that this is possible.
Undesirable maybe, impossible no.
> That means modifying rockchip/clk.c to
> lookup the syscon instead of using the `rockchip,grf` phandle. As it is used
> by other rockchip clock drivers, that means that we'd need to change the
> syscon's node name for some other SoCs to match what is being looked up.
No, you would not have to change anything for other SoCs, it would
definitely be possible to do compatible based lookups on some devices
and phandle on others, particularly given you're adding a new driver.
> But the GRF nodes have different compatibles:
> - rk3588 uses php_grf (rockchip,rk3588-php-grf)
> - rk3576 uses pmu0_grf (rockchip,rk3576-pmu0-grf)
Ditto this, the new clock driver that you're adding with knowledge of
the clock tree could also contain the new compatible for that soc.
>
> So an optional rockchip,grf phandle sounds a good solution for this
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2024-08-19 17:31 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-14 22:19 [PATCH v5 0/2] Add CRU support for rk3576 SoC Detlev Casanova
2024-08-14 22:19 ` [PATCH v5 1/2] dt-bindings: clock, reset: Add support for rk3576 Detlev Casanova
2024-08-15 15:07 ` Conor Dooley
2024-08-19 14:08 ` Detlev Casanova
2024-08-19 16:34 ` Conor Dooley
2024-08-19 17:14 ` Detlev Casanova
2024-08-19 17:31 ` Conor Dooley [this message]
2024-08-19 17:36 ` Conor Dooley
2024-08-14 22:19 ` [PATCH v5 2/2] clk: rockchip: Add clock controller for the RK3576 Detlev Casanova
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=20240819-robust-gutter-27540adb4621@spud \
--to=conor@kernel.org \
--cc=conor+dt@kernel.org \
--cc=detlev.casanova@collabora.com \
--cc=devicetree@vger.kernel.org \
--cc=heiko@sntech.de \
--cc=kernel@collabora.com \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=mturquette@baylibre.com \
--cc=p.zabel@pengutronix.de \
--cc=robh@kernel.org \
--cc=sboyd@kernel.org \
--cc=sugar.zhang@rock-chips.com \
--cc=zhangqing@rock-chips.com \
/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).