Re: [PATCH v4 4/8] arm64: dts: renesas: r9a09g047: Add RZ/G3E Sound support

From: Geert Uytterhoeven

Date: Wed May 27 2026 - 10:26:48 EST


Hi John,

On Mon, 25 May 2026 at 13:07, John Madieu <john.madieu.xa@xxxxxxxxxxxxxx> wrote:
> Add the snd_rzg3e node for the RZ/G3E SoC with all sub-components:
>
> - SSI (Serial Sound Interface) units 0-9
> - SSIU (Serial Sound Interface Unit) units 0-27
> - SRC (Sample Rate Converter) units 0-9
> - CTU (Channel Transfer Unit) units 0-7
> - DVC (Digital Volume Control) units 0-1
> - MIX (Mixer) units 0-1
>
> Sub-node names follow the new RZ/G3E sound binding: unprefixed
> 'ssi', 'ssiu', 'src', 'dvc', 'mix', 'ctu' wrapper nodes instead of
> the legacy 'rcar_sound,xxx' R-Car prefix.
>
> Wire up all 5 DMA controllers (dmac0-dmac4) for each audio sub-node
> with repeated channel names, so that the DMA core can pick the first
> available controller.
>
> Signed-off-by: John Madieu <john.madieu.xa@xxxxxxxxxxxxxx>
> ---
>
> Changes:
>
> v4:
> - Rename the indexed clock-names and reset-names from the dotted
> form (ssi.N, src.N, adg.ssi.N, clk_a, clk_b, clk_c, clk_i) to the
> hyphenated form (ssi-N, src-N, adg-ssi-N, audio-clka, audio-clkb,
> audio-clkc, audio-clki), matching the new RZ/G3E sound binding.
> - Rename the sub-nodes from the legacy rcar_sound,{ctu,dvc,mix,src,
> ssi,ssiu} prefix to the unprefixed ctu/dvc/mix/src/ssi/ssiu names
> used by the new RZ/G3E sound binding.
> - Reorder the clocks and resets phandle lists into ascending index
> order and annotate each entry with a per-line comment naming the
> clock / reset.
> - Drop the #sound-dai-cells and #clock-cells explanatory comment
> blocks from the node.
> - Align the continuation lines of the dmas property.
> - Fix the commit message: the node label is snd_rzg3e (v3 referred
> to it as rzg3e_sound), and add a paragraph noting the unprefixed
> sub-node names.

Thanks for the update!

> --- a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
> +++ b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
> @@ -912,6 +912,482 @@ rsci9: serial@12803000 {
> status = "disabled";
> };
>
> + snd_rzg3e: sound@13c00000 {
> + compatible = "renesas,r9a09g047-sound";
> + reg = <0 0x13c00000 0 0x10000>, /* SCU */
> + <0 0x13c20000 0 0x10000>, /* ADG */
> + <0 0x13c30000 0 0x1000>, /* SSIU */
> + <0 0x13c31000 0 0x1F000>, /* SSI */
> + <0 0x13c50000 0 0x10000>; /* Audio DMAC peri peri */
> + reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
> + clocks = <&cpg CPG_MOD 245>, /* ssi-all */
> + <&cpg CPG_MOD 385>, /* ssi-0 */
> + <&cpg CPG_MOD 386>, /* ssi-1 */
> + <&cpg CPG_MOD 387>, /* ssi-2 */
> + <&cpg CPG_MOD 388>, /* ssi-3 */
> + <&cpg CPG_MOD 389>, /* ssi-4 */
> + <&cpg CPG_MOD 390>, /* ssi-5 */
> + <&cpg CPG_MOD 391>, /* ssi-6 */
> + <&cpg CPG_MOD 392>, /* ssi-7 */
> + <&cpg CPG_MOD 393>, /* ssi-8 */
> + <&cpg CPG_MOD 394>, /* ssi-9 */
> + <&cpg CPG_MOD 372>, /* src-0 */
> + <&cpg CPG_MOD 373>, /* src-1 */
> + <&cpg CPG_MOD 374>, /* src-2 */
> + <&cpg CPG_MOD 375>, /* src-3 */
> + <&cpg CPG_MOD 376>, /* src-4 */
> + <&cpg CPG_MOD 377>, /* src-5 */
> + <&cpg CPG_MOD 378>, /* src-6 */
> + <&cpg CPG_MOD 379>, /* src-7 */
> + <&cpg CPG_MOD 380>, /* src-8 */
> + <&cpg CPG_MOD 381>, /* src-9 */
> + <&cpg CPG_MOD 370>, /* mix-0 */
> + <&cpg CPG_MOD 371>, /* mix-1 */
> + <&cpg CPG_MOD 370>, /* ctu-0 */
> + <&cpg CPG_MOD 371>, /* ctu-1 */
> + <&cpg CPG_MOD 368>, /* dvc-0 */
> + <&cpg CPG_MOD 369>, /* dvc-1 */
> + <&cpg CPG_MOD 251>, /* audio-clka */
> + <&cpg CPG_MOD 252>, /* audio-clkb */
> + <&cpg CPG_MOD 253>, /* audio-clkc */
> + <&cpg CPG_MOD 250>, /* audio-clki */
> + <&cpg CPG_MOD 384>, /* ssif_supply */
> + <&cpg CPG_MOD 246>, /* scu */
> + <&cpg CPG_MOD 247>, /* scu_x2 */
> + <&cpg CPG_MOD 382>, /* scu_supply */
> + <&cpg CPG_MOD 352>, /* adg-ssi-0 */
> + <&cpg CPG_MOD 353>, /* adg-ssi-1 */
> + <&cpg CPG_MOD 354>, /* adg-ssi-2 */
> + <&cpg CPG_MOD 355>, /* adg-ssi-3 */
> + <&cpg CPG_MOD 356>, /* adg-ssi-4 */
> + <&cpg CPG_MOD 357>, /* adg-ssi-5 */
> + <&cpg CPG_MOD 358>, /* adg-ssi-6 */
> + <&cpg CPG_MOD 359>, /* adg-ssi-7 */
> + <&cpg CPG_MOD 360>, /* adg-ssi-8 */
> + <&cpg CPG_MOD 361>, /* adg-ssi-9 */
> + <&cpg CPG_MOD 248>, /* audmapp */
> + <&cpg CPG_MOD 249>; /* adg */

Please drop these comments...

> + clock-names = "ssi-all",
> + "ssi-0", "ssi-1", "ssi-2",
> + "ssi-3", "ssi-4", "ssi-5",
> + "ssi-6", "ssi-7", "ssi-8", "ssi-9",
> + "src-0", "src-1", "src-2",
> + "src-3", "src-4", "src-5",
> + "src-6", "src-7", "src-8", "src-9",
> + "mix-0", "mix-1",
> + "ctu-0", "ctu-1",
> + "dvc-0", "dvc-1",
> + "audio-clka", "audio-clkb",
> + "audio-clkc", "audio-clki",
> + "ssif_supply",
> + "scu", "scu_x2", "scu_supply",
> + "adg-ssi-0", "adg-ssi-1",
> + "adg-ssi-2", "adg-ssi-3",
> + "adg-ssi-4", "adg-ssi-5",
> + "adg-ssi-6", "adg-ssi-7",
> + "adg-ssi-8", "adg-ssi-9",
> + "audmapp", "adg";

... as clock-names already serves this purpose.


> + power-domains = <&cpg>;
> + resets = <&cpg 225>, /* ssi-all */
> + <&cpg 226>, <&cpg 227>, <&cpg 228>,
> + <&cpg 229>, <&cpg 230>, <&cpg 231>,
> + <&cpg 232>, <&cpg 233>, <&cpg 234>,
> + <&cpg 235>,
> + <&cpg 236>, /* scu */
> + <&cpg 238>, /* adg */
> + <&cpg 237>; /* audmapp */
> + reset-names = "ssi-all",
> + "ssi-0", "ssi-1", "ssi-2",
> + "ssi-3", "ssi-4", "ssi-5",
> + "ssi-6", "ssi-7", "ssi-8", "ssi-9",
> + "scu", "adg", "audmapp";

Same for resets and reset-names.

> + status = "disabled";

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

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