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 <l...@karo-electronics.de>
---
 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

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to