From: Rob Herring <robh@kernel.org>
To: John Madieu <john.madieu.xa@bp.renesas.com>
Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>,
Mark Brown <broonie@kernel.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Magnus Damm <magnus.damm@gmail.com>,
Philipp Zabel <p.zabel@pengutronix.de>,
Claudiu Beznea <claudiu.beznea@tuxon.dev>,
Biju Das <biju.das.jz@bp.renesas.com>,
john.madieu@gmail.com, linux-sound@vger.kernel.org,
linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v6 01/16] ASoC: dt-bindings: sound: Add DT binding for RZ/G3E sound
Date: Thu, 14 May 2026 09:27:54 -0500 [thread overview]
Message-ID: <20260514142754.GA378860-robh@kernel.org> (raw)
In-Reply-To: <20260512182631.3842065-2-john.madieu.xa@bp.renesas.com>
On Tue, May 12, 2026 at 06:26:16PM +0000, John Madieu wrote:
> Add a standalone device tree binding for the Renesas RZ/G3E (R9A09G047)
> sound controller.
>
> The RZ/G3E sound IP is based on R-Car Sound but differs in several ways:
> - Uses unprefixed sub-node names (ssi, ssiu, src, dvc, mix, ctu) instead
> of R-Car's rcar_sound,xxx prefixed names.
> - Supports up to 5 DMA controllers per direction, allowing multiple DMA
> entries with repeated channel names in SSIU, SRC and DVC sub-nodes.
> - Has 47 clocks including per-SSI ADG clocks (adg-ssi-[0-9]), SCU clocks
> (scu, scu_x2, scu_supply), SSIF supply clock, AUDMAC peri-peri clock,
> and ADG clock.
> - Has 14 reset lines including SCU, ADG and AUDMAC peri-peri resets.
> - SSI operates exclusively in BUSIF mode.
>
> These differences make the RZ/G3E binding incompatible with the existing
> renesas,rsnd.yaml, so it is added as a separate standalone binding with
> its own $ref to dai-common.yaml.
>
> Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
> ---
>
> Changes:
>
> v6:
> - Rename all indexed clock-names and reset-names from the dotted
> form (ssi.0, src.0, adg.ssi.0, clk_a, clk_b, clk_c, clk_i) to
> the hyphenated form (ssi-0, src-0, adg-ssi-0, audio-clka,
> audio-clkb, audio-clkc, audio-clki) so the new binding follows
> the standard DT naming convention.
> - Tighten #sound-dai-cells to const: 1.
> - Drop unused properties: clock-frequency, clkout-lr-asynchronous.
> - Simplify the ports/endpoint schema (single ports object with
> port@N children referencing audio-graph-port.yaml), drop the
> separate top-level dai patternProperties block.
> - Move additionalProperties: false to the top of each sub-object
> (dvc, mix, ctu, src, ssiu, ssi).
> - Reorder example clocks/resets to match the new ordinal-ascending
> name order.
>
> v5:
> - Drop the two-patch rsnd.yaml split approach from v4. Replace
> with a single self-contained standalone binding that does not
> touch renesas,rsnd.yaml at all.
> - Remove select: false, redundant blanket properties
> (compatible: true, reg: true, etc.) and pointless
> patternProperties per Krzysztof's review.
> - Add missing #clock-cells and #sound-dai-cells constraints.
> - Add hardware description text instead of "Binding for ..."
> phrasing.
> - Move G3E-specific DMA comment into the binding itself rather
> than relying on a shared schema.
> - Use unprefixed sub-node names (ssi, ssiu, src, dvc, mix, ctu)
> to reflect the actual RZ/G3E DT binding.
>
> v4: No changes
> v3: No changes
> v2:
> - Introduce RZ/G3E sound binding as a standalone schema.
>
> .../sound/renesas,r9a09g047-sound.yaml | 743 ++++++++++++++++++
> 1 file changed, 743 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/sound/renesas,r9a09g047-sound.yaml
>
> diff --git a/Documentation/devicetree/bindings/sound/renesas,r9a09g047-sound.yaml b/Documentation/devicetree/bindings/sound/renesas,r9a09g047-sound.yaml
> new file mode 100644
> index 000000000000..0b651214bd61
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/renesas,r9a09g047-sound.yaml
> @@ -0,0 +1,743 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/renesas,r9a09g047-sound.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Renesas RZ/G3E Sound Controller
> +
> +maintainers:
> + - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> + - John Madieu <john.madieu.xa@bp.renesas.com>
> +
> +description:
> + The RZ/G3E (R9A09G047) sound controller is based on R-Car Sound IP
> + with extended DMA channel support (up to 5 DMACs per direction),
> + additional clock domains (47 clocks including per-SSI ADG clocks),
> + and additional reset lines (14 including SCU, ADG and Audio DMAC
> + peri-peri resets). SSI operates exclusively in BUSIF mode with
> + 2-4 BUSIF channels per SSI.
> +
> +allOf:
> + - $ref: dai-common.yaml#
> +
> +properties:
> + compatible:
> + const: renesas,r9a09g047-sound
> +
> + reg:
> + maxItems: 5
> +
> + reg-names:
> + items:
> + - const: scu
> + - const: adg
> + - const: ssiu
> + - const: ssi
> + - const: audmapp
> +
> + "#sound-dai-cells":
> + const: 1
> +
> + "#clock-cells":
> + const: 0
> +
> + "#address-cells":
> + const: 1
> +
> + "#size-cells":
> + const: 0
> +
> + clocks:
> + maxItems: 47
> +
> + clock-names:
> + items:
> + - const: ssi-all
> + - const: ssi-0
> + - const: ssi-1
> + - const: ssi-2
> + - const: ssi-3
> + - const: ssi-4
> + - const: ssi-5
> + - const: ssi-6
> + - const: ssi-7
> + - const: ssi-8
> + - const: ssi-9
> + - const: src-0
> + - const: src-1
> + - const: src-2
> + - const: src-3
> + - const: src-4
> + - const: src-5
> + - const: src-6
> + - const: src-7
> + - const: src-8
> + - const: src-9
> + - const: mix-0
> + - const: mix-1
> + - const: ctu-0
> + - const: ctu-1
> + - const: dvc-0
> + - const: dvc-1
> + - const: audio-clka
> + - const: audio-clkb
> + - const: audio-clkc
> + - const: audio-clki
> + - const: ssif_supply
> + - const: scu
> + - const: scu_x2
> + - const: scu_supply
> + - const: adg-ssi-0
> + - const: adg-ssi-1
> + - const: adg-ssi-2
> + - const: adg-ssi-3
> + - const: adg-ssi-4
> + - const: adg-ssi-5
> + - const: adg-ssi-6
> + - const: adg-ssi-7
> + - const: adg-ssi-8
> + - const: adg-ssi-9
> + - const: audmapp
> + - const: adg
> +
> + power-domains:
> + maxItems: 1
> +
> + resets:
> + maxItems: 14
> +
> + reset-names:
> + items:
> + - const: ssi-all
> + - const: ssi-0
> + - const: ssi-1
> + - const: ssi-2
> + - const: ssi-3
> + - const: ssi-4
> + - const: ssi-5
> + - const: ssi-6
> + - const: ssi-7
> + - const: ssi-8
> + - const: ssi-9
> + - const: scu
> + - const: adg
> + - const: audmapp
> +
> + dvc:
> + type: object
> + additionalProperties: false
blank line
> + patternProperties:
> + "^dvc-[0-1]$":
> + type: object
> + additionalProperties: false
blank line
> + properties:
> + dmas:
> + maxItems: 5
blank line
> + dma-names:
> + maxItems: 5
> + allOf:
Don't need allOf.
> + - items:
> + enum:
> + - tx
Is 5 entries of 'tx' really what you want?
blank line
> + required:
> + - dmas
> + - dma-names
> +
> + mix:
> + type: object
> + additionalProperties: false
> + patternProperties:
> + "^mix-[0-1]$":
> + type: object
> + additionalProperties: false
There is little point in empty nodes.
> +
> + ctu:
> + type: object
> + additionalProperties: false
> + patternProperties:
> + "^ctu-[0-7]$":
> + type: object
> + additionalProperties: false
> +
> + src:
> + type: object
> + additionalProperties: false
> + patternProperties:
> + "^src-[0-9]$":
> + type: object
> + additionalProperties: false
> + properties:
> + interrupts:
> + maxItems: 1
> + dmas:
> + maxItems: 10
> + dma-names:
> + maxItems: 10
> + allOf:
Don't need allOf.
> + - items:
> + enum:
> + - tx
> + - rx
10 entries of any combination of tx and rx?
> +
> + ssiu:
> + type: object
> + additionalProperties: false
> + patternProperties:
> + "^ssiu-[0-9]+$":
> + type: object
> + additionalProperties: false
> + properties:
> + dmas:
> + maxItems: 10
> + dma-names:
> + maxItems: 10
> + allOf:
> + - items:
> + enum:
> + - tx
> + - rx
> + required:
> + - dmas
> + - dma-names
> +
> + ssi:
> + type: object
> + additionalProperties: false
> + patternProperties:
> + "^ssi-[0-9]$":
> + type: object
> + additionalProperties: false
> + properties:
> + interrupts:
> + maxItems: 1
> + dmas: true
> + dma-names: true
> + shared-pin:
> + description: Shared clock pin.
> + $ref: /schemas/types.yaml#/definitions/flag
> + required:
> + - interrupts
> +
> + ports:
> + $ref: audio-graph-port.yaml#/definitions/port-base
> + unevaluatedProperties: false
> + patternProperties:
> + '^port@[0-9a-f]+$':
> + $ref: audio-graph-port.yaml#/definitions/port-base
> + unevaluatedProperties: false
> + properties:
> + reg:
> + maxItems: 1
> + endpoint:
> + $ref: audio-graph-port.yaml#/definitions/endpoint-base
> + unevaluatedProperties: false
> + properties:
> + playback:
> + $ref: /schemas/types.yaml#/definitions/phandle-array
> + capture:
> + $ref: /schemas/types.yaml#/definitions/phandle-array
This is odd. The graph should really just point to another endpoint
along with any properties for the connection. These probably belong
elsewhere. What do these point to? Missing any sort of description or
constraints.
Rob
next prev parent reply other threads:[~2026-05-14 14:27 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-12 18:26 [PATCH v6 00/16] ASoC: rsnd: Add RZ/G3E audio driver support John Madieu
2026-05-12 18:26 ` [PATCH v6 01/16] ASoC: dt-bindings: sound: Add DT binding for RZ/G3E sound John Madieu
2026-05-13 23:45 ` sashiko-bot
2026-05-14 14:27 ` Rob Herring [this message]
2026-05-12 18:26 ` [PATCH v6 02/16] ASoC: rsnd: Fix RSND_SOC_MASK width to single nibble John Madieu
2026-05-12 18:26 ` [PATCH v6 03/16] ASoC: rsnd: Add reset controller support to rsnd_mod John Madieu
2026-05-14 0:07 ` sashiko-bot
2026-05-12 18:26 ` [PATCH v6 04/16] ASoC: rsnd: Support hyphen or dot in indexed clock and reset names John Madieu
2026-05-14 0:45 ` Mark Brown
2026-05-12 18:26 ` [PATCH v6 05/16] ASoC: rsnd: Add RZ/G3E SoC probing and register map John Madieu
2026-05-14 0:51 ` sashiko-bot
2026-05-12 18:26 ` [PATCH v6 06/16] ASoC: rsnd: Add audmacpp clock and reset support for RZ/G3E John Madieu
2026-05-14 1:11 ` sashiko-bot
2026-05-12 18:26 ` [PATCH v6 07/16] ASoC: rsnd: Refactor DMA address tables with named structs John Madieu
2026-05-12 18:26 ` [PATCH v6 08/16] ASoC: rsnd: Add RZ/G3E DMA address calculation support John Madieu
2026-05-14 2:13 ` sashiko-bot
2026-05-12 18:26 ` [PATCH v6 09/16] ASoC: rsnd: ssui: Add RZ/G3E SSIU BUSIF support John Madieu
2026-05-13 0:35 ` Kuninori Morimoto
2026-05-13 5:04 ` John Madieu
2026-05-13 23:02 ` Kuninori Morimoto
2026-05-13 9:41 ` Geert Uytterhoeven
2026-05-13 15:30 ` John Madieu
2026-05-14 2:58 ` sashiko-bot
2026-05-12 18:26 ` [PATCH v6 10/16] ASoC: rsnd: Add SSI reset support for RZ/G3E platform John Madieu
2026-05-14 3:22 ` sashiko-bot
2026-05-12 18:26 ` [PATCH v6 11/16] ASoC: rsnd: Add ADG reset support for RZ/G3E John Madieu
2026-05-14 3:46 ` sashiko-bot
2026-05-12 18:26 ` [PATCH v6 12/16] ASoC: rsnd: adg: Add per-SSI ADG and SSIF supply clock management John Madieu
2026-05-14 4:09 ` sashiko-bot
2026-05-12 18:26 ` [PATCH v6 13/16] ASoC: rsnd: adg: Look up RZ/G3E clkin under audio-clk{a,b,c,i} John Madieu
2026-05-12 18:26 ` [PATCH v6 14/16] ASoC: rsnd: src: Add SRC reset and clock support for RZ/G3E John Madieu
2026-05-13 0:44 ` Kuninori Morimoto
2026-05-13 5:17 ` John Madieu
2026-05-14 5:04 ` sashiko-bot
2026-05-12 18:26 ` [PATCH v6 15/16] ASoC: rsnd: Support unprefixed DT node names " John Madieu
2026-05-12 18:26 ` [PATCH v6 16/16] ASoC: rsnd: Add system suspend/resume support John Madieu
2026-05-14 0:46 ` Mark Brown
2026-05-14 6:09 ` sashiko-bot
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=20260514142754.GA378860-robh@kernel.org \
--to=robh@kernel.org \
--cc=biju.das.jz@bp.renesas.com \
--cc=broonie@kernel.org \
--cc=claudiu.beznea@tuxon.dev \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=geert+renesas@glider.be \
--cc=john.madieu.xa@bp.renesas.com \
--cc=john.madieu@gmail.com \
--cc=krzk+dt@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=p.zabel@pengutronix.de \
--cc=perex@perex.cz \
--cc=tiwai@suse.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