Messages in this thread |  | | From | John Madieu <> | | Subject | [PATCH v5 00/14] ASoC: rsnd: Add RZ/G3E audio driver support | | Date | Wed, 15 Apr 2026 12:47:17 +0000 |
| |
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
Link to v4 at [1].
Changes:
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 (01/12 was previously embedded in patch 04) per Kuninori's request. - Split the DMA refactor out of patch 06/12 into its own preparatory patch, as requested by Kuninori, 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 this 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/20260409090302.2243305-1-john.madieu.xa@bp.renesas.com/ [2] https://lore.kernel.org/all/20260402090524.9137-1-john.madieu.xa@bp.renesas.com/
John Madieu (14): 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: 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 platforms ASoC: rsnd: Add ADG reset support for RZ/G3E ASoC: rsnd: adg: Add per-SSI ADG and SSIF supply clock management 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 | 770 ++++++++++++++++++ sound/soc/renesas/rcar/adg.c | 125 ++- sound/soc/renesas/rcar/cmd.c | 2 +- sound/soc/renesas/rcar/core.c | 88 +- sound/soc/renesas/rcar/ctu.c | 22 +- sound/soc/renesas/rcar/dma.c | 277 +++++-- sound/soc/renesas/rcar/dvc.c | 22 +- sound/soc/renesas/rcar/gen.c | 180 ++++ sound/soc/renesas/rcar/mix.c | 22 +- sound/soc/renesas/rcar/rsnd.h | 54 +- sound/soc/renesas/rcar/src.c | 85 +- sound/soc/renesas/rcar/ssi.c | 41 +- sound/soc/renesas/rcar/ssiu.c | 91 ++- 13 files changed, 1681 insertions(+), 98 deletions(-) create mode 100644 Documentation/devicetree/bindings/sound/renesas,r9a09g047-sound.yaml
-- 2.25.1
|  |