Re: [PATCH v5 1/4] arm64: dts: renesas: r9a09g047: Add RZ/G3E Sound support
From: Geert Uytterhoeven
Date: Mon Jun 22 2026 - 06:20:37 EST
Hi John,
On Wed, 10 Jun 2026 at 09:47, 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:
>
> v5:
> - Use hexadecimal CPG module clock numbers, for easier matching with the
> documentation.
> - Use hexadecimal CPG module reset numbers.
> - Lowercase the SSI reg size: 0x1F000 -> 0x1f000.
> - Extend the SCU reg region from 0x10000 to 0x20000 to cover the SCU DMAC.
> - Drop the per-line clock/reset comments now that the numbers are hex and
> the names are self-documenting, and pack clocks/resets two entries per
> line so each line lines up with its clock-names/reset-names counterpart.
Thanks for the update!
> --- a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
> +++ b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
> @@ -912,6 +912,468 @@ 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 0xf5>,
> + <&cpg CPG_MOD 0x181>, <&cpg CPG_MOD 0x182>,
Please align the opening braces with the previous line...
> + <&cpg CPG_MOD 0x183>, <&cpg CPG_MOD 0x184>,
> + <&cpg CPG_MOD 0x185>, <&cpg CPG_MOD 0x186>,
> + <&cpg CPG_MOD 0x187>, <&cpg CPG_MOD 0x188>,
> + <&cpg CPG_MOD 0x189>, <&cpg CPG_MOD 0x18a>,
> + <&cpg CPG_MOD 0x174>, <&cpg CPG_MOD 0x175>,
> + <&cpg CPG_MOD 0x176>, <&cpg CPG_MOD 0x177>,
> + <&cpg CPG_MOD 0x178>, <&cpg CPG_MOD 0x179>,
> + <&cpg CPG_MOD 0x17a>, <&cpg CPG_MOD 0x17b>,
> + <&cpg CPG_MOD 0x17c>, <&cpg CPG_MOD 0x17d>,
> + <&cpg CPG_MOD 0x172>, <&cpg CPG_MOD 0x173>,
> + <&cpg CPG_MOD 0x172>, <&cpg CPG_MOD 0x173>,
> + <&cpg CPG_MOD 0x170>, <&cpg CPG_MOD 0x171>,
> + <&cpg CPG_MOD 0xfb>, <&cpg CPG_MOD 0xfc>,
> + <&cpg CPG_MOD 0xfd>, <&cpg CPG_MOD 0xfa>,
> + <&cpg CPG_MOD 0x180>,
> + <&cpg CPG_MOD 0xf6>, <&cpg CPG_MOD 0xf7>,
> + <&cpg CPG_MOD 0x17e>,
> + <&cpg CPG_MOD 0x160>, <&cpg CPG_MOD 0x161>,
> + <&cpg CPG_MOD 0x162>, <&cpg CPG_MOD 0x163>,
> + <&cpg CPG_MOD 0x164>, <&cpg CPG_MOD 0x165>,
> + <&cpg CPG_MOD 0x166>, <&cpg CPG_MOD 0x167>,
> + <&cpg CPG_MOD 0x168>, <&cpg CPG_MOD 0x169>,
> + <&cpg CPG_MOD 0xf8>, <&cpg CPG_MOD 0xf9>;
> + clock-names = "ssi-all",
> + "ssi-0", "ssi-1",
... and the double quotes...
> + "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";
> + power-domains = <&cpg>;
> + resets = <&cpg 0xe1>,
> + <&cpg 0xe2>, <&cpg 0xe3>,
> + <&cpg 0xe4>, <&cpg 0xe5>,
> + <&cpg 0xe6>, <&cpg 0xe7>,
> + <&cpg 0xe8>, <&cpg 0xe9>,
> + <&cpg 0xea>, <&cpg 0xeb>,
> + <&cpg 0xec>, <&cpg 0xee>,
> + <&cpg 0xed>;
> + reset-names = "ssi-all",
> + "ssi-0", "ssi-1",
... here too.
> + "ssi-2", "ssi-3",
> + "ssi-4", "ssi-5",
> + "ssi-6", "ssi-7",
> + "ssi-8", "ssi-9",
> + "scu", "adg",
> + "audmapp";
> + status = "disabled";
> +
> + ctu {
> + ctu00: ctu-0 { };
> + ctu01: ctu-1 { };
> + ctu02: ctu-2 { };
> + ctu03: ctu-3 { };
> + ctu10: ctu-4 { };
> + ctu11: ctu-5 { };
> + ctu12: ctu-6 { };
> + ctu13: ctu-7 { };
> + };
> +
> + dvc {
> + dvc0: dvc-0 {
> + dmas = <&dmac0 0x1db3>, <&dmac1 0x1db3>,
> + <&dmac2 0x1db3>, <&dmac3 0x1db3>,
> + <&dmac4 0x1db3>;
> + dma-names = "tx", "tx", "tx", "tx", "tx";
> + };
> + dvc1: dvc-1 {
> + dmas = <&dmac0 0x1db4>, <&dmac1 0x1db4>,
> + <&dmac2 0x1db4>, <&dmac3 0x1db4>,
> + <&dmac4 0x1db4>;
> + dma-names = "tx", "tx", "tx", "tx", "tx";
> + };
> + };
> +
> + mix {
> + mix0: mix-0 { };
> + mix1: mix-1 { };
> + };
> +
> + src {
> + src0: src-0 {
> + interrupts = <GIC_SPI 902 IRQ_TYPE_LEVEL_HIGH>;
> + dmas = <&dmac0 0x1d9f>, <&dmac0 0x1da9>,
> + <&dmac1 0x1d9f>, <&dmac1 0x1da9>,
> + <&dmac2 0x1d9f>, <&dmac2 0x1da9>,
> + <&dmac3 0x1d9f>, <&dmac3 0x1da9>,
> + <&dmac4 0x1d9f>, <&dmac4 0x1da9>;
> + dma-names = "rx", "tx", "rx", "tx", "rx", "tx", "rx", "tx", "rx", "tx";
These lines are way too long (checkpatch?).
[...]
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