On Tue, Sep 20, 2022 at 03:26:44PM +0200, Pali Rohár wrote: > From: Marcin Wojtas <mw@xxxxxxxxxxxx> > > The audio unit of Marvell Armada38x SoC is similar to the ones comprised by > other Marvell SoCs (Kirkwood, Dove and Armada 370). Therefore KW audio > driver can be used to support it and this commit adds new compatible string > to identify Armada 38x variant. > > Two new memory regions are added: first one for PLL configuration and > the second one for choosing one of audio I/O modes (I2S or S/PDIF). > For the latter purpose a new optional DT property is added ('spdif-mode'). > > kirkwood-i2s driver is extended by adding a new init function for Armada > 38x flavor and also a routine that enables PLL output (i.e. MCLK) > configuration. > > Signed-off-by: Marcin Wojtas <mw@xxxxxxxxxxxx> > Tested-by: Star_Automation <star@xxxxxxxxxxx> > Reviewed-by: Nadav Haklai <nadavh@xxxxxxxxxxx> > Reviewed-by: Lior Amsalem <alior@xxxxxxxxxxx> > Tested-by: Lior Amsalem <alior@xxxxxxxxxxx> > Signed-off-by: Hezi Shahmoon <hezi@xxxxxxxxxxx> > Reviewed-by: Neta Zur Hershkovits <neta@xxxxxxxxxxx> > [pali: Fix support for pre-38x SoCs] > Signed-off-by: Pali Rohár <pali@xxxxxxxxxx> > --- > .../devicetree/bindings/sound/mvebu-audio.txt | 14 +- > sound/soc/kirkwood/kirkwood-i2s.c | 136 +++++++++++++++++- > sound/soc/kirkwood/kirkwood.h | 2 + > 3 files changed, 149 insertions(+), 3 deletions(-) > > diff --git a/Documentation/devicetree/bindings/sound/mvebu-audio.txt b/Documentation/devicetree/bindings/sound/mvebu-audio.txt > index cb8c07c81ce4..4f5dec5cb3c2 100644 > --- a/Documentation/devicetree/bindings/sound/mvebu-audio.txt > +++ b/Documentation/devicetree/bindings/sound/mvebu-audio.txt > @@ -6,9 +6,14 @@ Required properties: > "marvell,kirkwood-audio" for Kirkwood platforms > "marvell,dove-audio" for Dove platforms > "marvell,armada370-audio" for Armada 370 platforms > + "marvell,armada-380-audio" for Armada 38x platforms Perhaps be consistent with the 370 string above it. > > - reg: physical base address of the controller and length of memory mapped > - region. > + region (named "i2s_regs"). So you are adding 'reg-names'? The values belong under 'reg-names' then. '_regs' is also redundant. > + With "marvell,armada-380-audio" two other regions are required: > + first of those is dedicated for Audio PLL Configuration registers > + (named "pll_regs") and the second one ("soc_ctrl") - for register > + where one of exceptive I/O types (I2S or S/PDIF) is set. > > - interrupts: > with "marvell,kirkwood-audio", the audio interrupt > @@ -23,6 +28,13 @@ Required properties: > "internal" for the internal clock > "extclk" for the external clock > > +Optional properties: > + > +- spdif-mode: > + Enable S/PDIF mode on Armada 38x SoC. Using this property > + disables standard I2S I/O. Valid only with "marvell,armada-380-audio" > + compatible string. So boolean? > + > Example: > > i2s1: audio-controller@b4000 { DT changes should be separate patch. It would also be nice to see this converted to schema first. Rob