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

Tim Harvey tharvey at gateworks.com
Mon Mar 28 12:01:53 PDT 2022


On Sat, Mar 26, 2022 at 8:16 AM Fabio Estevam <festevam at gmail.com> 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
> --
> 2.25.1

Fabio,

Intesting... was there a specific kernel version or set of conditions
such as what's configured as modules that made this issue show up? It
looks like there are a lot of IMX6 boards that define the MCLK in the
audmuxgrp.... some use simple-audio-card and some do not in case that
matters.

Best Regards,

Tim



More information about the linux-arm-kernel mailing list