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

Markus Pargmann mpa at pengutronix.de
Thu Apr 24 10:46:30 CEST 2014


Hi,

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>
> ---
>  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.

You could also try to use the simple sound card and use DT properties to
setup audmux.

This is a configuration example for the audmux:
&audmux {
        status = "okay";

        aud4 {
                fsl,audmux-port = <MX31_AUDMUX_PORT4_SSI_PINS_4>;
                fsl,port-config = <
                        (IMX_AUDMUX_V2_PTCR_SYN |
                                IMX_AUDMUX_V2_PTCR_TFSDIR |
                                IMX_AUDMUX_V2_PTCR_TFSEL(MX31_AUDMUX_PORT1_SSI0) |
                                IMX_AUDMUX_V2_PTCR_TCLKDIR |
                                IMX_AUDMUX_V2_PTCR_TCSEL(MX31_AUDMUX_PORT1_SSI0))
                        IMX_AUDMUX_V2_PDCR_RXDSEL(MX31_AUDMUX_PORT1_SSI0)
                >;
        };
};

Regards,

Markus

>  
> 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
> 
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20140424/d16c00f4/attachment.sig>


More information about the Alsa-devel mailing list