From: Conor Dooley <conor@kernel.org>
To: Vyacheslav Yurkov <uvv.mail@gmail.com>
Cc: Rob Herring <robh@kernel.org>,
Vyacheslav Yurkov <V.Yurkov.EXT@bruker.com>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
devicetree@vger.kernel.org
Subject: Re: [PATCH 2/2] dt-bindings: Add clock guard DT description
Date: Mon, 23 Mar 2026 20:14:21 +0000 [thread overview]
Message-ID: <20260323-sanctuary-semantic-432089feb1c7@spud> (raw)
In-Reply-To: <b45d9845-2d56-4fdd-a3ac-b0e0e27ba573@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2282 bytes --]
On Mon, Mar 23, 2026 at 02:52:21PM +0100, Vyacheslav Yurkov wrote:
> On 19.03.2026 17:50, Conor Dooley wrote:
>
> > > I described a use case in my cover letter (PATCH 0). Perhaps our approach to
> > > tackle the issue is not correct in the first place. The term "virtual clock
> > > controller guard" is something we named it, but it's literally just a clock
> > > provider which combines several other clocks and input GPIO signals in order
> > > for the consumers to check whether they are allowed to probe already or have
> > > to wait until the input clocks are enabled.
> >
> > Can you explain how this is different to gpio-gate-clock? AFAICT, you're
> > trying to support clocks that are enabled by a gpio, and that's what it
> > is for.
> >
> It partially covers the similar use case, but differs in the sense that
> gpio-gate-clock controls the clock via GPIO (enable/disable), the
> clock-controller-guard gets the GPIO status signals whether the clock _was_
> enabled externally because a CPU has no direct access to the clock. So
> perhaps the terminology I came up with is not so self-explanatory, that's
> why I posted it for review and other opinions.
The binding you've got says "GPIOs used to control or guard the clocks",
which is not what you're saying that is going on in this mail. A more
suitable description would be "GPIOs used to check the status of the
clocks".
I want to see an example dts user for this please.
TBH, I don't understand your driver implementation either and why it has
+static const struct clk_ops clkctrl_guard_ops = {
+ .enable = clkctrl_guard_enable,
+ .disable = clkctrl_guard_disable,
+ .prepare = clkctrl_guard_prepare,
+ .unprepare = clkctrl_guard_unprepare,
+ .is_prepared = clkctrl_guard_is_prepared,
any of these 4 implemented when you have no control over the clock.
I didn't think it was required to call your parent clocks enables in
your own enable either, thought that was handled by the core recursively
calling clk_enable() on clk->parent. The one thing I would expect you to
have implemented ops wise is is_enabled, which you don't have.
Also no sign of any rate acquisition functions, which I thought were
mandatory.
+ .get_parent = clkctrl_guard_get_parent,
+};
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2026-03-23 20:14 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-18 17:43 [PATCH 0/2] A proposal to add a virtual clock controller guard Vyacheslav Yurkov via B4 Relay
2026-03-18 17:43 ` [PATCH 1/2] clk: Add " Vyacheslav Yurkov via B4 Relay
2026-03-19 8:15 ` kernel test robot
2026-03-18 17:43 ` [PATCH 2/2] dt-bindings: Add clock guard DT description Vyacheslav Yurkov via B4 Relay
2026-03-18 19:33 ` Rob Herring (Arm)
2026-03-18 22:55 ` Rob Herring
2026-03-19 5:50 ` Vyacheslav Yurkov
2026-03-19 16:50 ` Conor Dooley
2026-03-23 13:52 ` Vyacheslav Yurkov
2026-03-23 20:14 ` Conor Dooley [this message]
2026-03-26 9:54 ` Vyacheslav Yurkov
2026-03-26 10:08 ` Krzysztof Kozlowski
2026-03-26 13:39 ` Vyacheslav Yurkov
2026-03-26 13:49 ` Krzysztof Kozlowski
2026-03-26 18:32 ` Conor Dooley
2026-03-28 2:58 ` Vyacheslav Yurkov
2026-04-07 16:17 ` Conor Dooley
2026-03-26 10:44 ` Conor Dooley
2026-04-20 17:56 ` Vyacheslav Yurkov
2026-04-21 17:28 ` Conor Dooley
2026-04-28 10:13 ` Vyacheslav Yurkov
2026-05-09 18:22 ` Conor Dooley
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=20260323-sanctuary-semantic-432089feb1c7@spud \
--to=conor@kernel.org \
--cc=V.Yurkov.EXT@bruker.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=robh@kernel.org \
--cc=sboyd@kernel.org \
--cc=uvv.mail@gmail.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