[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20250528141901.GA3966725-robh@kernel.org>
Date: Wed, 28 May 2025 09:19:01 -0500
From: Rob Herring <robh@...nel.org>
To: "Edgar E. Iglesias" <edgar.iglesias@...il.com>
Cc: mturquette@...libre.com, sboyd@...nel.org, krzk+dt@...nel.org,
conor+dt@...nel.org, jank@...ence.com, edgar.iglesias@....com,
linux-clk@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 1/2] dt-bindings: clk: fixed-mmio-clock: Add optional
ready reg
On Wed, May 28, 2025 at 04:09:16PM +0200, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@....com>
>
> Add an optional ready register and properties describing bitfields
> that signal when the clock is ready. This can for example be useful
> to describe PLL lock bits.
>
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@....com>
> ---
> .../bindings/clock/fixed-mmio-clock.yaml | 37 ++++++++++++++++++-
> 1 file changed, 36 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/clock/fixed-mmio-clock.yaml b/Documentation/devicetree/bindings/clock/fixed-mmio-clock.yaml
> index e22fc272d023..57419b4de343 100644
> --- a/Documentation/devicetree/bindings/clock/fixed-mmio-clock.yaml
> +++ b/Documentation/devicetree/bindings/clock/fixed-mmio-clock.yaml
> @@ -10,6 +10,11 @@ description:
> This binding describes a fixed-rate clock for which the frequency can
> be read from a single 32-bit memory mapped I/O register.
>
> + An optional ready register can be specified in a second reg entry.
> + The ready register will be polled until it signals ready prior to reading
> + the fixed rate. This is useful for example to optionally wait for a PLL
> + to lock.
> +
> It was designed for test systems, like FPGA, not for complete,
> finished SoCs.
>
> @@ -21,7 +26,10 @@ properties:
> const: fixed-mmio-clock
>
> reg:
> - maxItems: 1
> + minItems: 1
> + items:
> + - description: Fixed rate register
> + - description: Optional clock ready register
>
> "#clock-cells":
> const: 0
> @@ -29,6 +37,24 @@ properties:
> clock-output-names:
> maxItems: 1
>
> + ready-timeout-us:
> + description:
> + Optional timeout in micro-seconds when polling for clock readiness.
> + 0 means no timeout.
> + default: 0
> +
> + ready-mask:
> + description:
> + Optional mask to apply when reading the ready register.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + default: 0xffffffff
> +
> + ready-value:
> + description:
> + When a ready register is specified in reg, poll the ready reg until
> + ready-reg & ready-mask == ready-value.
> + $ref: /schemas/types.yaml#/definitions/uint32
And next someone wants to add an enable bit, so there's another 2-3 new
properties. And it never ends...
So no, create a specific binding for your h/w.
Rob
Powered by blists - more mailing lists