On Tue, Sep 20, 2022 at 03:26:44PM +0200, Pali Rohár wrote:
From: Marcin Wojtas mw@semihalf.com
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@semihalf.com Tested-by: Star_Automation star@marvell.com Reviewed-by: Nadav Haklai nadavh@marvell.com Reviewed-by: Lior Amsalem alior@marvell.com Tested-by: Lior Amsalem alior@marvell.com Signed-off-by: Hezi Shahmoon hezi@marvell.com Reviewed-by: Neta Zur Hershkovits neta@marvell.com [pali: Fix support for pre-38x SoCs] Signed-off-by: Pali Rohár pali@kernel.org
.../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