[PATCH 0/2] ASoC: fsl: make snd-soc-imx-sgtl5000 driver useable on i.MX6UL

STALE3855d

10 messages, 4 authors, 2016-01-13 · open the first message on its own page

[PATCH 0/2] ASoC: fsl: make snd-soc-imx-sgtl5000 driver useable on i.MX6UL

From: Lothar Waßmann <hidden>
Date: 2016-01-12 18:13:52

This patchset adds support for the i.MX6UL SoC to the imx-sgtl5000
sound driver.
The first patch makes the audmux setup optional for the driver, since
i.MX6UL does not have this unit.
The second patch selects the SAI interface rather than the SSI
interface for the i.MX6UL SoC.

A patch to make the corresponding DTB changes has been sent
separately.

[PATCH 2/2] ASoC: fsl: select SND_SOC_FSL_SAI or SND_SOC_FSL_SSI depending on SoC type

From: Lothar Waßmann <hidden>
Date: 2016-01-12 18:13:51

i.MX6UL does not provide an SSI interface like the other i.MX6 SoCs,
but only an SAI interface.
Select the appropriate interface(s) depending on the enabled SoC types.

Signed-off-by: Lothar Waßmann <redacted>
---
 sound/soc/fsl/Kconfig | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig
index 14dfdee..c128823 100644
--- a/sound/soc/fsl/Kconfig
+++ b/sound/soc/fsl/Kconfig
@@ -258,7 +258,8 @@ config SND_SOC_IMX_SGTL5000
 	select SND_SOC_SGTL5000
 	select SND_SOC_IMX_PCM_DMA
 	select SND_SOC_IMX_AUDMUX
-	select SND_SOC_FSL_SSI
+	select SND_SOC_FSL_SAI if SOC_IMX6UL
+	select SND_SOC_FSL_SSI if SOC_IMX6Q || SOC_IMX6SL || SOC_IMX6SX
 	help
 	  Say Y if you want to add support for SoC audio on an i.MX board with
 	  a sgtl5000 codec.
-- 
2.1.4

[PATCH 1/2] ASoC: fsl: imx-sgtl5000: make audmux optional for imx sound driver

From: Lothar Waßmann <hidden>
Date: 2016-01-12 18:14:24

i.MX6UL does not have the audio multiplexer (AUDMUX) like e.g. i.MX6Q,
but apart from that can use the same audio driver. Make audmux
optional for the imx-sgtl5000 driver, so it can be used on i.MX6UL
too. Also i.MX6UL requires use of the SAI interface rather than SSI.

Signed-off-by: Lothar Waßmann <redacted>
---
 sound/soc/fsl/imx-sgtl5000.c | 70 +++++++++++++++++++++++---------------------
 1 file changed, 36 insertions(+), 34 deletions(-)
diff --git a/sound/soc/fsl/imx-sgtl5000.c b/sound/soc/fsl/imx-sgtl5000.c
index b99e0b5..7cefb40 100644
--- a/sound/soc/fsl/imx-sgtl5000.c
+++ b/sound/soc/fsl/imx-sgtl5000.c
@@ -65,40 +65,42 @@ static int imx_sgtl5000_probe(struct platform_device *pdev)
 	int int_port, ext_port;
 	int ret;
 
-	ret = of_property_read_u32(np, "mux-int-port", &int_port);
-	if (ret) {
-		dev_err(&pdev->dev, "mux-int-port missing or invalid\n");
-		return ret;
-	}
-	ret = of_property_read_u32(np, "mux-ext-port", &ext_port);
-	if (ret) {
-		dev_err(&pdev->dev, "mux-ext-port missing or invalid\n");
-		return ret;
-	}
-
-	/*
-	 * The port numbering in the hardware manual starts at 1, while
-	 * the audmux API expects it starts at 0.
-	 */
-	int_port--;
-	ext_port--;
-	ret = imx_audmux_v2_configure_port(int_port,
-			IMX_AUDMUX_V2_PTCR_SYN |
-			IMX_AUDMUX_V2_PTCR_TFSEL(ext_port) |
-			IMX_AUDMUX_V2_PTCR_TCSEL(ext_port) |
-			IMX_AUDMUX_V2_PTCR_TFSDIR |
-			IMX_AUDMUX_V2_PTCR_TCLKDIR,
-			IMX_AUDMUX_V2_PDCR_RXDSEL(ext_port));
-	if (ret) {
-		dev_err(&pdev->dev, "audmux internal port setup failed\n");
-		return ret;
-	}
-	ret = imx_audmux_v2_configure_port(ext_port,
-			IMX_AUDMUX_V2_PTCR_SYN,
-			IMX_AUDMUX_V2_PDCR_RXDSEL(int_port));
-	if (ret) {
-		dev_err(&pdev->dev, "audmux external port setup failed\n");
-		return ret;
+	if (!of_property_read_bool(np, "fsl,no-audmux")) {
+		ret = of_property_read_u32(np, "mux-int-port", &int_port);
+		if (ret) {
+			dev_err(&pdev->dev, "mux-int-port missing or invalid\n");
+			return ret;
+		}
+		ret = of_property_read_u32(np, "mux-ext-port", &ext_port);
+		if (ret) {
+			dev_err(&pdev->dev, "mux-ext-port missing or invalid\n");
+			return ret;
+		}
+
+		/*
+		 * The port numbering in the hardware manual starts at 1, while
+		 * the audmux API expects it starts at 0.
+		 */
+		int_port--;
+		ext_port--;
+		ret = imx_audmux_v2_configure_port(int_port,
+				IMX_AUDMUX_V2_PTCR_SYN |
+				IMX_AUDMUX_V2_PTCR_TFSEL(ext_port) |
+				IMX_AUDMUX_V2_PTCR_TCSEL(ext_port) |
+				IMX_AUDMUX_V2_PTCR_TFSDIR |
+				IMX_AUDMUX_V2_PTCR_TCLKDIR,
+				IMX_AUDMUX_V2_PDCR_RXDSEL(ext_port));
+		if (ret) {
+			dev_err(&pdev->dev, "audmux internal port setup failed\n");
+			return ret;
+		}
+		ret = imx_audmux_v2_configure_port(ext_port,
+				IMX_AUDMUX_V2_PTCR_SYN,
+				IMX_AUDMUX_V2_PDCR_RXDSEL(int_port));
+		if (ret) {
+			dev_err(&pdev->dev, "audmux external port setup failed\n");
+			return ret;
+		}
 	}
 
 	ssi_np = of_parse_phandle(pdev->dev.of_node, "ssi-controller", 0);
-- 
2.1.4

Re: [PATCH 1/2] ASoC: fsl: imx-sgtl5000: make audmux optional for imx sound driver

From: Mark Brown <broonie@kernel.org>
Date: 2016-01-12 18:23:23

On Tue, Jan 12, 2016 at 07:13:30PM +0100, Lothar Waßmann wrote:
i.MX6UL does not have the audio multiplexer (AUDMUX) like e.g. i.MX6Q,
but apart from that can use the same audio driver. Make audmux
optional for the imx-sgtl5000 driver, so it can be used on i.MX6UL
too. Also i.MX6UL requires use of the SAI interface rather than SSI.
If it doesn't have the audmux can you use simple-card?

Re: [PATCH 2/2] ASoC: fsl: select SND_SOC_FSL_SAI or SND_SOC_FSL_SSI depending on SoC type

From: Timur Tabi <hidden>
Date: 2016-01-12 18:28:58

Lothar Waßmann wrote:
-	select SND_SOC_FSL_SSI
+	select SND_SOC_FSL_SAI if SOC_IMX6UL
+	select SND_SOC_FSL_SSI if SOC_IMX6Q || SOC_IMX6SL || SOC_IMX6SX
I don't think this is compatible with a multiarch kernel.

Re: [PATCH 1/2] ASoC: fsl: imx-sgtl5000: make audmux optional for imx sound driver

From: Lothar Waßmann <hidden>
Date: 2016-01-13 11:11:56

Hi,
On Tue, Jan 12, 2016 at 07:13:30PM +0100, Lothar Wa=C3=9Fmann wrote:
=20
quoted
i.MX6UL does not have the audio multiplexer (AUDMUX) like e.g. i.MX6Q,
but apart from that can use the same audio driver. Make audmux
optional for the imx-sgtl5000 driver, so it can be used on i.MX6UL
too. Also i.MX6UL requires use of the SAI interface rather than SSI.
=20
If it doesn't have the audmux can you use simple-card?
I'll have a look at it. Thanks for the hint.


Lothar Wa=C3=9Fmann

Re: [PATCH 2/2] ASoC: fsl: select SND_SOC_FSL_SAI or SND_SOC_FSL_SSI depending on SoC type

From: Lothar Waßmann <hidden>
Date: 2016-01-13 12:38:30

Hi,
Lothar Wa=C3=9Fmann wrote:
quoted
-	select SND_SOC_FSL_SSI
+	select SND_SOC_FSL_SAI if SOC_IMX6UL
+	select SND_SOC_FSL_SSI if SOC_IMX6Q || SOC_IMX6SL || SOC_IMX6SX
=20
I don't think this is compatible with a multiarch kernel.
Why? If more than one of the IMX6 SoCs are selected, both interfaces
may be selected at the same time without any harm.


Lothar Wa=C3=9Fmann

Re: [alsa-devel] [PATCH 2/2] ASoC: fsl: select SND_SOC_FSL_SAI or SND_SOC_FSL_SSI depending on SoC type

From: Fabio Estevam <festevam@gmail.com>
Date: 2016-01-13 13:08:48

On Tue, Jan 12, 2016 at 4:13 PM, Lothar Wa=C3=9Fmann <LW@karo-electronics.d=
e> wrote:
quoted hunk
diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig
index 14dfdee..c128823 100644
--- a/sound/soc/fsl/Kconfig
+++ b/sound/soc/fsl/Kconfig
@@ -258,7 +258,8 @@ config SND_SOC_IMX_SGTL5000
        select SND_SOC_SGTL5000
        select SND_SOC_IMX_PCM_DMA
        select SND_SOC_IMX_AUDMUX
-       select SND_SOC_FSL_SSI
+       select SND_SOC_FSL_SAI if SOC_IMX6UL
+       select SND_SOC_FSL_SSI if SOC_IMX6Q || SOC_IMX6SL || SOC_IMX6SX
MX6SX has SSI and SAI interfaces.

Re: [alsa-devel] [PATCH 2/2] ASoC: fsl: select SND_SOC_FSL_SAI or SND_SOC_FSL_SSI depending on SoC type

From: Lothar Waßmann <hidden>
Date: 2016-01-13 14:02:28

Hi,
On Tue, Jan 12, 2016 at 4:13 PM, Lothar Wa=C3=9Fmann <LW@karo-electronics=
.de> wrote:
=20
quoted
diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig
index 14dfdee..c128823 100644
--- a/sound/soc/fsl/Kconfig
+++ b/sound/soc/fsl/Kconfig
@@ -258,7 +258,8 @@ config SND_SOC_IMX_SGTL5000
        select SND_SOC_SGTL5000
        select SND_SOC_IMX_PCM_DMA
        select SND_SOC_IMX_AUDMUX
-       select SND_SOC_FSL_SSI
+       select SND_SOC_FSL_SAI if SOC_IMX6UL
+       select SND_SOC_FSL_SSI if SOC_IMX6Q || SOC_IMX6SL || SOC_IMX6SX
=20
MX6SX has SSI and SAI interfaces.
I chose the settings, so that the default behaviour before this patch is
not changed. The other interface can still be enabled by the user.
[Yes, I know this is a case of the frowned-upon use of 'select' with
user-visible symbols, but this is as things currently are]


Lothar Wa=C3=9Fmann

Re: [PATCH 2/2] ASoC: fsl: select SND_SOC_FSL_SAI or SND_SOC_FSL_SSI depending on SoC type

From: Timur Tabi <hidden>
Date: 2016-01-13 14:10:37

Lothar Waßmann wrote:
Why? If more than one of the IMX6 SoCs are selected, both interfaces
may be selected at the same time without any harm.
Oh, ok.  I thought the point behind the patch was that you *souldn't* 
enable the the SSI driver on an i.MX6UL.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help