[PATCH 1/5] ASoC: kirkwood: enable Kirkwood driver for Armada 38x platforms

Rob Herring robh at kernel.org
Mon Sep 26 12:48:32 PDT 2022


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

DT changes should be separate patch. It would also be nice to see this 
converted to schema first.

Rob



More information about the linux-arm-kernel mailing list