All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ASOC: imx: audmux: add a integrated configuration function
@ 2013-01-31  6:42 Gary Zhang
  2013-01-31 14:22 ` Shawn Guo
  0 siblings, 1 reply; 6+ messages in thread
From: Gary Zhang @ 2013-01-31  6:42 UTC (permalink / raw)
  To: broonie, lgirdwood, shawn.guo; +Cc: alsa-devel

based on imx_audmux_v2_configure_port(), add a integrated
interface to configure audmux port conveniently

Signed-off-by: Gary Zhang <b13634@freescale.com>
---
 sound/soc/fsl/imx-audmux.c |   43 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 42 insertions(+), 1 deletions(-)

diff --git a/sound/soc/fsl/imx-audmux.c b/sound/soc/fsl/imx-audmux.c
index 251f4d9..ebd38a0 100644
--- a/sound/soc/fsl/imx-audmux.c
+++ b/sound/soc/fsl/imx-audmux.c
@@ -1,5 +1,5 @@
 /*
- * Copyright 2012 Freescale Semiconductor, Inc.
+ * Copyright 2012-2013 Freescale Semiconductor, Inc.
  * Copyright 2012 Linaro Ltd.
  * Copyright 2009 Pengutronix, Sascha Hauer <s.hauer@pengutronix.de>
  *
@@ -244,6 +244,47 @@ int imx_audmux_v2_configure_port(unsigned int port, unsigned int ptcr,
 }
 EXPORT_SYMBOL_GPL(imx_audmux_v2_configure_port);
 
+int imx_audmux_configure_port(unsigned int int_port, unsigned int ext_port)
+{
+	int ret;
+
+	if ((int_port > 7) || (ext_port > 7))
+		return -EINVAL;
+
+	if (audmux_type != IMX31_AUDMUX)
+		return -EINVAL;
+
+	if (!audmux_base)
+		return -ENOSYS;
+
+	if (audmux_clk)
+		clk_prepare_enable(audmux_clk);
+
+	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) {
+		pr_err("audmux internal port setup failed\n");
+		return ret;
+	}
+	imx_audmux_v2_configure_port(ext_port,
+			IMX_AUDMUX_V2_PTCR_SYN,
+			IMX_AUDMUX_V2_PDCR_RXDSEL(int_port));
+	if (ret) {
+		pr_err("audmux external port setup failed\n");
+		return ret;
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(imx_audmux_configure_port);
+
 static int imx_audmux_probe(struct platform_device *pdev)
 {
 	struct resource *res;
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-02-04 13:39 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-31  6:42 [PATCH] ASOC: imx: audmux: add a integrated configuration function Gary Zhang
2013-01-31 14:22 ` Shawn Guo
2013-01-31 16:35   ` Mark Brown
2013-02-01 13:10     ` Shawn Guo
2013-02-04 10:01       ` Mark Brown
2013-02-04 13:39         ` Shawn Guo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.