RE: [PATCH v6 09/16] ASoC: rsnd: ssui: Add RZ/G3E SSIU BUSIF support
From: John Madieu
Date: Wed May 13 2026 - 01:07:38 EST
Hi Kuninori,
Thanks for your review.
> -----Original Message-----
> From: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx>
> Sent: Mittwoch, 13. Mai 2026 02:35
> To: John Madieu <john.madieu.xa@xxxxxxxxxxxxxx>
> Subject: Re: [PATCH v6 09/16] ASoC: rsnd: ssui: Add RZ/G3E SSIU BUSIF
> support
>
>
> Hi John
>
> Thank you for the patch
>
> > Add support for the SSIU found on the Renesas RZ/G3E SoC, which
> > provides a different BUSIF layout compared to earlier generations:
> >
> > - SSI0-SSI4: 4 BUSIF instances each (BUSIF0-3)
> > - SSI5-SSI8: 1 BUSIF instance each (BUSIF0 only)
> > - SSI9: 4 BUSIF instances (BUSIF0-3)
> > - Total: 28 BUSIFs
> >
> > RZ/G3E also differs from Gen2/Gen3 implementations in that only two
> > pairs of BUSIF error-status registers are available instead of four,
> > and the SSI always operates in BUSIF mode with no PIO fallback.
> >
> > Rather than scattering SoC-specific checks across functional code,
> > introduce an extra capability flags in the match data:
> >
> > - RSND_SSIU_BUSIF_STATUS_COUNT_2: only two BUSIF error-status
> > register pairs are present. Used in rsnd_ssiu_busif_err_irq_ctrl()
> > and rsnd_ssiu_busif_err_status_clear() to limit register iteration.
> >
> > Future SoCs sharing these constraints can set the flags without
> > requiring code changes.
> >
> > Signed-off-by: John Madieu <john.madieu.xa@xxxxxxxxxxxxxx>
> > ---
>
> If my understanding was correct, this patch includes 3 features ?
>
> - adding busif_status_count
> - adding rag3e_id
> - adding rstc
>
> I guess these can be separated ?
You are right, three things are happening here. I will split them as:
09a/N: ASoC: rsnd: ssiu: Add shared SSI reset controller support
- just the devm_reset_control_get_optional_shared("ssi-all") in
rsnd_ssiu_probe() and passing it to rsnd_mod_init().
- No-op for non-RZ/G3E DTs.
09b/N: ASoC: rsnd: ssiu: Add RZ/G3E BUSIF support
- introduces struct rsnd_ssiu_ctrl with busif_status_count and
parametrises the loops in rsnd_ssiu_busif_err_irq_ctrl() and
rsnd_ssiu_busif_err_status_clear().
- adds the rzg3e_id[] BUSIF index table and the SSI_MODE0 guard.
- sets RSND_SSIU_BUSIF_STATUS_COUNT_2 in the r9a09g047 match data.
I am keeping busif_status_count and rzg3e_id together because they are
both keyed on RZ/G3E and form one feature ("RZ/G3E SSIU BUSIF layout").
Splitting them would leave an intermediate state where the BUSIF index
table and the error-status loop bound disagree on the SoC. Please let me
know if you would prefer them as two separate patches anyway, then I
will do a three-way split with the busif_status_count refactor placed
first as a no-behavior-change preparation.
Regards,
John