[alsa-devel] [PATCH] ASoC: imx-sgtl5000.c: Add support for specifying PDCR_TXRXEN

Shawn Guo shawn.guo at linaro.org
Thu Apr 24 07:56:55 CEST 2014


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 at protonic.nl>

You should copy Mark Brown <broonie at kernel.org> and
devicetree at 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));
> +			IMX_AUDMUX_V2_PDCR_RXDSEL(int_port) | ext_txrxen);
>  	if (ret) {
>  		dev_err(&pdev->dev, "audmux external port setup failed\n");
>  		return ret;
> -- 
> 1.9.1
> 


More information about the Alsa-devel mailing list