Devicetree
 help / color / mirror / Atom feed
From: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>,
	tomm.merciai@gmail.com, linux-renesas-soc@vger.kernel.org,
	biju.das.jz@bp.renesas.com, Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Magnus Damm <magnus.damm@gmail.com>,
	Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>,
	John Madieu <john.madieu.xa@bp.renesas.com>,
	linux-sound@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/3] ASoC: dt-bindings: renesas,r9a09g047-sound: Document audio_clkout clock-frequency
Date: Wed, 5 Aug 2026 15:05:45 +0200	[thread overview]
Message-ID: <anM1KUoFC1ltRsje@tom-desktop> (raw)
In-Reply-To: <CAMuHMdVzvnz-XrgJ2+UrAA-Gj6XjAnz9Q0HqrNCuVQF3+v9X-g@mail.gmail.com>

Hi Geert,

On Wed, Aug 05, 2026 at 02:02:42PM +0200, Geert Uytterhoeven wrote:
> Hi Tommaso,
> 
> On Wed, 5 Aug 2026 at 13:56, Tommaso Merciai
> <tommaso.merciai.xr@bp.renesas.com> wrote:
> > On Tue, Aug 04, 2026 at 08:20:29AM +0200, Krzysztof Kozlowski wrote:
> > > On 03/08/2026 19:19, Tommaso Merciai wrote:
> > > > Hi Krzysztof,
> > > > Thanks for your review.
> > > >
> > > > On Mon, Aug 03, 2026 at 03:32:48PM +0200, Krzysztof Kozlowski wrote:
> > > >> On 03/08/2026 15:28, Tommaso Merciai wrote:
> > > >>> r9a09g047e57-smarc.dts set clock-frequency for the audio_clkout output,
> > > >>> but the binding never declared it, so dtbs_check fails:
> > > >>>
> > > >>>   sound@13c00000 (renesas,r9a09g047-sound): Unevaluated properties
> > > >>>   are not allowed ('clock-frequency' was unexpected)
> > > >>
> > > >> Maybe the DTS is wrong, because property was rejected? Did you check
> > > >> this? You cannot document ABI post-factum if it was rejected.
> > > >>
> > > >>
> > > >>>
> > > >>> clock-cells is fixed to 0, so only a single audio_clkout applies.
> > > >>>
> > > >>> Fixes: a86fd3c20218 ("ASoC: dt-bindings: sound: Add DT binding for RZ/G3E sound")
> > > >>> Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
> > > >>> ---
> > > >>>  .../devicetree/bindings/sound/renesas,r9a09g047-sound.yaml     | 3 +++
> > > >>>  1 file changed, 3 insertions(+)
> > > >>>
> > > >>> diff --git a/Documentation/devicetree/bindings/sound/renesas,r9a09g047-sound.yaml b/Documentation/devicetree/bindings/sound/renesas,r9a09g047-sound.yaml
> > > >>> index d7fa16554698..6e2b2c93b4b7 100644
> > > >>> --- a/Documentation/devicetree/bindings/sound/renesas,r9a09g047-sound.yaml
> > > >>> +++ b/Documentation/devicetree/bindings/sound/renesas,r9a09g047-sound.yaml
> > > >>> @@ -42,6 +42,9 @@ properties:
> > > >>>    "#clock-cells":
> > > >>>      const: 0
> > > >>>
> > > >>> +  clock-frequency:
> > > >>> +    description: for audio_clkout
> > > >>
> > > >> Incomplete, missing type/ref, constraints.
> > > >
> > > > renesas,r9a09g047-sound is handled by sound/soc/renesas/rcar/core.c [1],
> > > > and "clock-frequency" is read by rsnd_adg_get_clkout() [2]. The same
> > > > property is already documented for R-Car in
> > > > Documentation/devicetree/bindings/sound/renesas,rsnd.yaml [3].
> > >
> > > But was the property rejected? I am repeating myself...
> >
> > Looking into this further, I found that you already asked to drop this
> > property during the v5 review [1].
> >
> > Thanks for pointing it out.
> >
> > For context: the sound module contains an audio clock generator (ADG) which
> > generates an output clock from the external audio clocks and outputs it in
> > to the AUDIO_CLKOUT pin, that mostly supply master clock to codec.
> >
> > "clock-frequency" is array of the possible rates provided by
> > AUDIO_CLKOUT to the codec master clock.
> > Based on the playback rate it will request either 44.1kHz or 48kHz.
> >
> > I will drop "clock-frequency" property from r9a09g047e57-smarc.dts, where
> > AUDIO_CLKOUT output pin is not wired.
> >
> > But for boards that populates AUDIO_CLKOUT we need this property,
> > Could you suggest how to model this properly?
> 
> Isn't this output the single clock output of the sound module's clock
> provider (#clocks-cells = <0>)? Hence can't the consumer driver set
> the clock rate?

Yes you are correct.

> 
> If the consumer driver cannot set the clock rate, but depends on a
> fixed clock rate, it can configure this in DT using assigned-clocks
> and assigned-clock-rates, right?

The clock driven on the AUDIO_CLKOUT pin does not have a fixed rate.
Depending on the playback rate it is a multiple of either 44.1 kHz or
48 kHz.

Below is an example from arch/arm64/boot/dts/renesas/ulcb.dtsi. There
audio_clk_a is 22579200, a multiple of 44.1 kHz, and the audio_clk_b input
comes from the cs2000, which is set to 24576000, a multiple of 48 kHz.

The codec consuming AUDIO_CLKOUT needs 11289600 for the 44.1 kHz family
and 12288000 for the 48 kHz one, which is what clock-frequency describes.

Hence it is not a fixed rate clock.


From arch/arm64/boot/dts/renesas/ulcb.dtsi:
---
&audio_clk_a {
	clock-frequency = <22579200>;
};

cs2000: clock-controller@4f {
	clocks = <&audio_clkout>, <&x12_clk>;
	clock-names = "clk_in", "ref_clk";

	assigned-clocks = <&cs2000>;
	assigned-clock-rates = <24576000>;
};

ak4613: codec@10 {
	clocks = <&rcar_sound 3>;
};

&rcar_sound {
	pinctrl-0 = <&sound_pins>, <&sound_clk_pins>;
	pinctrl-names = "default";

	/* audio_clkout0/1/2/3 */
	#clock-cells = <1>;
	clock-frequency = <12288000 11289600>;

	status = "okay";

	/* update <audio_clk_b> to <cs2000> */
	clocks = <&cpg CPG_MOD 1005>,
		 <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>,
		 <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>,
		 <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>,
		 <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>,
		 <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>,
		 <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>,
		 <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>,
		 <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>,
		 <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>,
		 <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>,
		 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>,
		 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>,
		 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>,
		 <&audio_clk_a>, <&cs2000>,
		 <&audio_clk_c>,
		 <&cpg CPG_MOD 922>;
};


Kind regards,
Tommaso

> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 
> -- 
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
> 
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds
> 

  reply	other threads:[~2026-08-05 13:07 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-03 13:28 [PATCH 0/3] RZ/G3E: Fix dtbs_check failures Tommaso Merciai
2026-08-03 13:28 ` [PATCH 1/3] ASoC: dt-bindings: renesas,r9a09g047-sound: Document audio_clkout clock-frequency Tommaso Merciai
2026-08-03 13:32   ` Krzysztof Kozlowski
2026-08-03 17:19     ` Tommaso Merciai
2026-08-04  6:20       ` Krzysztof Kozlowski
2026-08-05 11:55         ` Tommaso Merciai
2026-08-05 12:02           ` Geert Uytterhoeven
2026-08-05 13:05             ` Tommaso Merciai [this message]
2026-08-05 13:19               ` Krzysztof Kozlowski
2026-08-05 13:34                 ` Tommaso Merciai
2026-08-05 13:44                   ` Krzysztof Kozlowski
2026-08-03 13:28 ` [PATCH 2/3] arm64: dts: renesas: r9a09g047: Add missing I2C clock-frequency Tommaso Merciai
2026-08-03 13:33   ` Krzysztof Kozlowski
2026-08-03 16:18     ` Tommaso Merciai
2026-08-03 13:28 ` [PATCH 3/3] arm64: dts: renesas: r9a09g047e57-smarc: Set I2C1 clock frequency to 1 MHz Tommaso Merciai

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=anM1KUoFC1ltRsje@tom-desktop \
    --to=tommaso.merciai.xr@bp.renesas.com \
    --cc=biju.das.jz@bp.renesas.com \
    --cc=broonie@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=geert@linux-m68k.org \
    --cc=john.madieu.xa@bp.renesas.com \
    --cc=krzk+dt@kernel.org \
    --cc=krzk@kernel.org \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=robh@kernel.org \
    --cc=tomm.merciai@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