On Wed, Apr 23, 2014 at 05:50:18PM +0200, David Jander wrote:
This enables effectively swapping RX/TX pins on the external audio port
Signed-off-by: David Jander david@protonic.nl
You should copy Mark Brown broonie@kernel.org and devicetree@vger.kernel.org on this patch.
Shawn
Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt | 4 ++++ sound/soc/fsl/imx-sgtl5000.c | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt b/Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt index e4acdd8..3afea85 100644 --- a/Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt +++ b/Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt @@ -29,6 +29,10 @@ Required properties:
- mux-int-port : The internal port of the i.MX audio muxer (AUDMUX)
- mux-ext-port : The external port of the i.MX audio muxer
+Optional properties: +- ext-port-txrxen : Flag. Set to swap RX/TX signals on external port (set the
- IMX_AUDMUX_V2_PDCR_TXRXEN bit in the PDC register of the external port)
Note: The AUDMUX port numbering should start at 1, which is consistent with hardware manual.
diff --git a/sound/soc/fsl/imx-sgtl5000.c b/sound/soc/fsl/imx-sgtl5000.c index 1cb22dd..b543fa6 100644 --- a/sound/soc/fsl/imx-sgtl5000.c +++ b/sound/soc/fsl/imx-sgtl5000.c @@ -63,6 +63,7 @@ static int imx_sgtl5000_probe(struct platform_device *pdev) struct i2c_client *codec_dev; struct imx_sgtl5000_data *data = NULL; int int_port, ext_port;
unsigned int ext_txrxen = 0; int ret;
ret = of_property_read_u32(np, "mux-int-port", &int_port);
@@ -75,6 +76,8 @@ static int imx_sgtl5000_probe(struct platform_device *pdev) dev_err(&pdev->dev, "mux-ext-port missing or invalid\n"); return ret; }
if (of_property_read_bool(np, "ext-port-txrxen"))
ext_txrxen = IMX_AUDMUX_V2_PDCR_TXRXEN;
/*
- The port numbering in the hardware manual starts at 1, while
@@ -95,7 +98,7 @@ static int imx_sgtl5000_probe(struct platform_device *pdev) } 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;IMX_AUDMUX_V2_PDCR_RXDSEL(int_port) | ext_txrxen);
-- 1.9.1