[PATCH] ARM: dts: imx6qdl-apalis: Fix sgtl5000 detection issue

Max Krummenacher max.krummenacher at toradex.com
Wed Mar 30 08:41:25 PDT 2022


On Sat, 2022-03-26 at 12:14 -0300, Fabio Estevam wrote:
> On a custom carrier board with a i.MX6Q Apalis SoM, the sgtl5000 codec
> on the SoM is often not detected and the following error message is
> seen when the sgtl5000 driver tries to read the ID register:
> 
> sgtl5000 1-000a: Error reading chip id -6
> 
> The reason for the error is that the MCLK clock is not provided
> early enough.
> 
> Fix the problem by describing the MCLK pinctrl inside the codec
> node instead of placing it inside the audmux pinctrl group.
> 
> With this change applied the sgtl5000 is always detected on every boot.
> 
> Fixes: 693e3ffaae5a ("ARM: dts: imx6: Add support for Toradex Apalis iMX6Q/D SoM")
> Signed-off-by: Fabio Estevam <festevam at gmail.com>
> ---
>  arch/arm/boot/dts/imx6qdl-apalis.dtsi | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
> index ed2739e39085..bd763bae596b 100644
> --- a/arch/arm/boot/dts/imx6qdl-apalis.dtsi
> +++ b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
> @@ -286,6 +286,8 @@ vgen6_reg: vgen6 {
>  	codec: sgtl5000 at a {
>  		compatible = "fsl,sgtl5000";
>  		reg = <0x0a>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pinctrl_sgtl5000>;
>  		clocks = <&clks IMX6QDL_CLK_CKO>;
>  		VDDA-supply = <&reg_module_3v3_audio>;
>  		VDDIO-supply = <&reg_module_3v3>;
> @@ -517,8 +519,6 @@ MX6QDL_PAD_DISP0_DAT20__AUD4_TXC	0x130b0
>  			MX6QDL_PAD_DISP0_DAT21__AUD4_TXD	0x130b0
>  			MX6QDL_PAD_DISP0_DAT22__AUD4_TXFS	0x130b0
>  			MX6QDL_PAD_DISP0_DAT23__AUD4_RXD	0x130b0
> -			/* SGTL5000 sys_mclk */
> -			MX6QDL_PAD_GPIO_5__CCM_CLKO1		0x130b0
>  		>;
>  	};
>  
> @@ -811,6 +811,12 @@ MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x000b0
>  		>;
>  	};
>  
> +	pinctrl_sgtl5000: sgtl5000grp {
> +		fsl,pins = <
> +			MX6QDL_PAD_GPIO_5__CCM_CLKO1	0x130b0
> +		>;
> +	};
> +
>  	pinctrl_spdif: spdifgrp {
>  		fsl,pins = <
>  			MX6QDL_PAD_GPIO_16__SPDIF_IN  0x1b0b0

Thanks Fabio

Acked-by: Max Krummenacher <max.krummenacher at toradex.com>


More information about the linux-arm-kernel mailing list