All of lore.kernel.org
 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: 16+ 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
2026-08-10 13:55   ` Geert Uytterhoeven

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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.