From: John Madieu <john.madieu.xa@bp.renesas.com>
To: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>,
Mark Brown <broonie@kernel.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>
Cc: 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,
John Madieu <john.madieu.xa@bp.renesas.com>
Subject: [PATCH v6 00/16] ASoC: rsnd: Add RZ/G3E audio driver support
Date: Tue, 12 May 2026 18:26:15 +0000 [thread overview]
Message-ID: <20260512182631.3842065-1-john.madieu.xa@bp.renesas.com> (raw)
Add audio support for the Renesas RZ/G3E SoC to the R-Car Sound
driver. The RZ/G3E audio subsystem is based on R-Car Sound IP but
has several differences requiring dedicated handling:
- SSI operates exclusively in BUSIF mode (no PIO)
- 2-4 BUSIF channels per SSI (layout differs from R-Car)
- Separate register regions for SCU, ADG, SSIU, SSI accessed by name
- Per-SSI ADG and SSIF supply clocks
- Dedicated audmacpp clock/reset for Audio DMAC peri-peri
- Per-SSI and per-module reset controllers via CPG
- Unprefixed DT sub-node names (ssi, ssiu, src, ...) instead of
rcar_sound,xxx
- Hyphenated indexed clock/reset names (ssi-0, src-0, adg-ssi-0,
audio-clka, ...) instead of the legacy dotted form
Link to v5 at [1].
Changes:
v6:
- Rename all indexed clock-names and reset-names from the dotted form
("ssi.0", "src.0", "adg.ssi.0", "clk_a", ...) to the hyphenated form
("ssi-0", "src-0", "adg-ssi-0", "audio-clka", ...).
- DT binding: tighten #sound-dai-cells to const: 1, drop the unused
clock-frequency and clkout-lr-asynchronous properties.
- Add a new preparatory patch to handle the hyphenated DT name first and
fall back to the legacy dotted form, so existing R-Car DTs keep
working unchanged while new bindings can use the hyphenated convention.
- Convert the SSI, SRC, CTU, DVC and MIX probes to the helpers and drop
the per-module name buffers and NAME_SIZE defines.
- Add a new patch adding a third clkin name table for RZ/G3E and
dispatching to it in the same style as the existing Gen4
branch. CLKA/B/C/I enum values, the clkin[] array and the
BRGA/BRGB derivation are unchanged; only the DT lookup names
differ and use the hyphenated form.
- audmacpp: enable the clock before deasserting the reset so the
block sees a stable clock on the way out of reset (and mirror
the ordering on suspend/resume).
- SRC: use devm_clk_get_optional_enabled() for scu_supply and drop
the manual prepare/enable in rsnd_src_init()/rsnd_src_quit(),
so scu_supply has the same lifetime as scu/scu_x2.
- adg: simplify the per-SSI ADG and SSIF supply clock
- Strip out the "rcar_sound," from binding, DT, and add corresponding
code support.
- suspend/resume: respect the probe ordering in
rsnd_dma_suspend()/_resume() (assert reset before disabling
clock on suspend; enable clock before deasserting reset on
resume)
- Guard rsnd_src_suspend()/_resume() so platforms without SRC are safe.
v5:
- Drop the rsnd.yaml binding split (patches 01/12 and 02/12 from v4).
- Extract RSND_SOC_MASK fix as a standalone bug-fix patch (was
previously embedded in patch 04) per Kuninori's request.
- Split the DMA refactor out of patch 06/12 into its own
preparatory patch, so the struct/lookup introduction and the
RZ/G3E address tables are in separate commits.
- Add new patch "Support unprefixed DT node names for RZ/G3E"
converting rsnd_parse_of_node() to a function that tries the
legacy rcar_sound, prefix first, then falls back to the bare
name.
- Simplify flags layout comment per Kuninori's feedback.
- Add comment clarifying that clock/reset acquisition is optional
and no-error when absent from DT, and drop spurious blank line
in rsnd.h.
- Move RZ/G3E DMA address comment to rsnd_rzg3e_dma_addr(), not
the shared header. Separate the line-wrap-only change in
rsnd_gen2_dma_addr() into the preparatory patch only.
v4:
- Add reset_control_assert() in rsnd_mod_quit() for symmetry with
deassert in rsnd_mod_init() (Mark Brown)
- Fix RSND_SOC_MASK to (0xF << 4) to avoid overlap with
RSND_RZ_MASK. Add nibble layout comment documenting the flag
bit allocation.
- Move audmapp_clk and audmapp_rstc from struct rsnd_priv into
struct rsnd_dma_ctrl.
- Replace raw [3][2][3] DMA address array with named structs
(rsnd_dma_addr_dir, rsnd_dma_addr_map) for self-documenting
table initializers.
- Move busif_status_count from file-static into new
struct rsnd_ssiu_ctrl, following the rsnd_dma_ctrl pattern.
Remove duplicate priv variable. Properly propagate reset errors
via dev_err_probe().
- Clarify commit message regarding PIO mode still being available
on R-Car.
- Collapse dev_err_probe() and rsnd_mod_init() calls to single
lines.
- Move per-SSI ADG and SSIF supply clock prepare/unprepare into
rsnd_adg_clk_control() instead of separate functions.
- Move shared SCU clocks from file-statics into new
struct rsnd_src_ctrl.
- Merge rsnd_adg_mod_get() helper directly into the suspend/resume
patch.
- Drop former patch 12/14 "Add rsnd_adg_mod_get() for PM support".
- Drop former patch 13/14 "Export rsnd_ssiu_mod_get() for PM
support".
v3:
- Split out from v2 series [2] to ASoC-specific patchset.
v2:
- Split of rsnd.yaml into common and R-Car-specific schemas.
- Introduce RZ/G3E sound binding as a standalone schema.
- Addressed Kuninori's comments (details in individual patches).
[1] https://lore.kernel.org/all/20260415124731.3684773-1-john.madieu.xa@bp.renesas.com/
[2] https://lore.kernel.org/all/20260402090524.9137-1-john.madieu.xa@bp.renesas.com/
John Madieu (16):
ASoC: dt-bindings: sound: Add DT binding for RZ/G3E sound
ASoC: rsnd: Fix RSND_SOC_MASK width to single nibble
ASoC: rsnd: Add reset controller support to rsnd_mod
ASoC: rsnd: Support hyphen or dot in indexed clock and reset names
ASoC: rsnd: Add RZ/G3E SoC probing and register map
ASoC: rsnd: Add audmacpp clock and reset support for RZ/G3E
ASoC: rsnd: Refactor DMA address tables with named structs
ASoC: rsnd: Add RZ/G3E DMA address calculation support
ASoC: rsnd: ssui: Add RZ/G3E SSIU BUSIF support
ASoC: rsnd: Add SSI reset support for RZ/G3E platform
ASoC: rsnd: Add ADG reset support for RZ/G3E
ASoC: rsnd: adg: Add per-SSI ADG and SSIF supply clock management
ASoC: rsnd: adg: Look up RZ/G3E clkin under audio-clk{a,b,c,i}
ASoC: rsnd: src: Add SRC reset and clock support for RZ/G3E
ASoC: rsnd: Support unprefixed DT node names for RZ/G3E
ASoC: rsnd: Add system suspend/resume support
.../sound/renesas,r9a09g047-sound.yaml | 743 ++++++++++++++++++
sound/soc/renesas/rcar/adg.c | 130 ++-
sound/soc/renesas/rcar/cmd.c | 2 +-
sound/soc/renesas/rcar/core.c | 162 +++-
sound/soc/renesas/rcar/ctu.c | 29 +-
sound/soc/renesas/rcar/dma.c | 280 +++++--
sound/soc/renesas/rcar/dvc.c | 29 +-
sound/soc/renesas/rcar/gen.c | 180 +++++
sound/soc/renesas/rcar/mix.c | 29 +-
sound/soc/renesas/rcar/rsnd.h | 73 +-
sound/soc/renesas/rcar/src.c | 91 ++-
sound/soc/renesas/rcar/ssi.c | 49 +-
sound/soc/renesas/rcar/ssiu.c | 91 ++-
13 files changed, 1763 insertions(+), 125 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/renesas,r9a09g047-sound.yaml
--
2.25.1
next reply other threads:[~2026-05-12 18:27 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-12 18:26 John Madieu [this message]
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-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-12 18:26 ` [PATCH v6 05/16] ASoC: rsnd: Add RZ/G3E SoC probing and register map John Madieu
2026-05-12 18:26 ` [PATCH v6 06/16] ASoC: rsnd: Add audmacpp clock and reset support for RZ/G3E John Madieu
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-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-12 18:26 ` [PATCH v6 10/16] ASoC: rsnd: Add SSI reset support for RZ/G3E platform John Madieu
2026-05-12 18:26 ` [PATCH v6 11/16] ASoC: rsnd: Add ADG reset support for RZ/G3E John Madieu
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-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-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
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=20260512182631.3842065-1-john.madieu.xa@bp.renesas.com \
--to=john.madieu.xa@bp.renesas.com \
--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@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=robh@kernel.org \
--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