Skip to contentSkip to conversation

ARM: dts: boundary: fix sgtl5000 pinctrl init

PATCH New Gary Bisson 2 participants 8 messages Jan 3, 2017 – Jan 10, 2017

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

cover ARM: dts: boundary: fix sgtl5000 pinctrl init

Hi Shawn, all,

While testing other features, I realized that the sound card wouldn't probe on Nitrogen6_MAX. This is because the pinctrl node was under the sound driver node whereas it should be under the codec one.

This caused GPIO_0 not to be set as CLKO1 and therefore the codec probing was failing. The pinctrl node is just moved around to fix it.

Also making the same patch for our SOM2 although it was working, the reason is that U-Boot is setting GPIO_0 in U-Boot for SOM2 and not MAX.

Regards,
Gary

Gary Bisson (2):
ARM: dts: imx6qdl-nitrogen6_max: fix sgtl5000 pinctrl init
ARM: dts: imx6qdl-nitrogen6_som2: fix sgtl5000 pinctrl init

 arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi  | 4 ++--
 arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
Signature · 1 line
2.11.0
#1 lore raw

PATCH 1/2 ARM: dts: imx6qdl-nitrogen6_max: fix sgtl5000 pinctrl init

This patch fixes the following error:
sgtl5000 0-000a: Error reading chip id -6 imx-sgtl5000 sound: ASoC: CODEC DAI sgtl5000 not registered imx-sgtl5000 sound: snd_soc_register_card failed (-517)

The problem was that the pinctrl group was linked to the sound driver instead of the codec node. Since the codec is probed first, the sys_mclk was missing and it would therefore fail to initialize.

---
 arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi +2 -2
index 34887a10c5f1..47ba97229a48 100644
@@ -319,8 +319,6 @@
 		compatible = "fsl,imx6q-nitrogen6_max-sgtl5000",
 			     "fsl,imx-audio-sgtl5000";
 		model = "imx6q-nitrogen6_max-sgtl5000";
-		pinctrl-names = "default";
-		pinctrl-0 = <&pinctrl_sgtl5000>;
 		ssi-controller = <&ssi1>;
 		audio-codec = <&codec>;
 		audio-routing =
@@ -402,6 +400,8 @@
 
 	codec: sgtl5000 at 0a {
 		compatible = "fsl,sgtl5000";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_sgtl5000>;
 		reg = <0x0a>;
 		clocks = <&clks IMX6QDL_CLK_CKO>;
 		VDDA-supply = <&reg_2p5v>;
Signature · 1 line
2.11.0
#2 lore raw

PATCH 1/2 ARM: dts: imx6qdl-nitrogen6_max: fix sgtl5000 pinctrl init

Quoted 10 lines · Gary Bisson

This patch fixes the following error:
sgtl5000 0-000a: Error reading chip id -6 imx-sgtl5000 sound: ASoC: CODEC DAI sgtl5000 not registered imx-sgtl5000 sound: snd_soc_register_card failed (-517)

The problem was that the pinctrl group was linked to the sound driver instead of the codec node. Since the codec is probed first, the sys_mclk was missing and it would therefore fail to initialize.

Should we have it go as a fix for v4.10-rc cycles? In that case, please add a Fixes: tag. Also, do we need to apply it for stable kernel?

Shawn

Quoted 29 lines
---
 arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi +2 -2
index 34887a10c5f1..47ba97229a48 100644
@@ -319,8 +319,6 @@
 		compatible = "fsl,imx6q-nitrogen6_max-sgtl5000",
 			     "fsl,imx-audio-sgtl5000";
 		model = "imx6q-nitrogen6_max-sgtl5000";
-		pinctrl-names = "default";
-		pinctrl-0 = <&pinctrl_sgtl5000>;
 		ssi-controller = <&ssi1>;
 		audio-codec = <&codec>;
 		audio-routing =
@@ -402,6 +400,8 @@
 
 	codec: sgtl5000 at 0a {
 		compatible = "fsl,sgtl5000";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_sgtl5000>;
 		reg = <0x0a>;
 		clocks = <&clks IMX6QDL_CLK_CKO>;
 		VDDA-supply = <&reg_2p5v>;
Signature · 1 line
2.11.0
#3 lore raw

PATCH 1/2 ARM: dts: imx6qdl-nitrogen6_max: fix sgtl5000 pinctrl init

Hi Shawn,

Quoted 6 lines · Shawn Guo
Quoted 5 lines · Gary Bisson

This patch fixes the following error:
sgtl5000 0-000a: Error reading chip id -6 imx-sgtl5000 sound: ASoC: CODEC DAI sgtl5000 not registered imx-sgtl5000 sound: snd_soc_register_card failed (-517)

Quoted 8 lines
Quoted 5 lines

The problem was that the pinctrl group was linked to the sound driver instead of the codec node. Since the codec is probed first, the sys_mclk was missing and it would therefore fail to initialize.

Should we have it go as a fix for v4.10-rc cycles? In that case, please add a Fixes: tag. Also, do we need to apply it for stable kernel?

Sure it'd be great if it could be in v4.10.

Fixes b32e700256bc ("ARM: dts: imx: add Boundary Devices Nitrogen6_Max board")

As for stable kernel, I guess it wouldn't hurt but it's not mandatory in my opinion.

Do you want me to re-send with the Fixes line? What about the SOM2 patch, should it include a Fixes line although it works thanks to U-Boot?

Thanks,
Gary

#4 lore raw

PATCH 1/2 ARM: dts: imx6qdl-nitrogen6_max: fix sgtl5000 pinctrl init

Quoted 15 lines · Gary Bisson

Hi Shawn,

Quoted 12 lines · Shawn Guo
Quoted 10 lines · Gary Bisson

This patch fixes the following error:
sgtl5000 0-000a: Error reading chip id -6 imx-sgtl5000 sound: ASoC: CODEC DAI sgtl5000 not registered imx-sgtl5000 sound: snd_soc_register_card failed (-517)

The problem was that the pinctrl group was linked to the sound driver instead of the codec node. Since the codec is probed first, the sys_mclk was missing and it would therefore fail to initialize.

Quoted 8 lines
Quoted 2 lines

Should we have it go as a fix for v4.10-rc cycles? In that case, please add a Fixes: tag. Also, do we need to apply it for stable kernel?

Sure it'd be great if it could be in v4.10.

Fixes b32e700256bc ("ARM: dts: imx: add Boundary Devices Nitrogen6_Max board")

As for stable kernel, I guess it wouldn't hurt but it's not mandatory in my opinion.

I wouldn't bother stable kernel then.

Quoted 2 lines

Do you want me to re-send with the Fixes line?

No. I can add the Fixes tag.

Quoted 3 lines

What about the SOM2
patch, should it include a Fixes line although it works thanks to U-Boot?

Yes, please give me the Fixes tag, and I will send both patches for v4.10 inclusion.

Shawn

#5 lore raw

PATCH 2/2 ARM: dts: imx6qdl-nitrogen6_som2: fix sgtl5000 pinctrl init

In reply to Gary Bisson

Since the codec is probed first, the pinctrl node should be under the codec node.

The codec init was working for this board since U-Boot was already setting GPIO_0 as CLKO1 but better fix it anyway.

---
 arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi +2 -2
index d80f21abea62..31d4cc62dbc7 100644
@@ -250,8 +250,6 @@
 		compatible = "fsl,imx6q-nitrogen6_som2-sgtl5000",
 			     "fsl,imx-audio-sgtl5000";
 		model = "imx6q-nitrogen6_som2-sgtl5000";
-		pinctrl-names = "default";
-		pinctrl-0 = <&pinctrl_sgtl5000>;
 		ssi-controller = <&ssi1>;
 		audio-codec = <&codec>;
 		audio-routing =
@@ -320,6 +318,8 @@
 
 	codec: sgtl5000 at 0a {
 		compatible = "fsl,sgtl5000";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_sgtl5000>;
 		reg = <0x0a>;
 		clocks = <&clks IMX6QDL_CLK_CKO>;
 		VDDA-supply = <&reg_2p5v>;
Signature · 1 line
2.11.0
#6 lore raw

PATCH 2/2 ARM: dts: imx6qdl-nitrogen6_som2: fix sgtl5000 pinctrl init

Hi Shawn,

Quoted 7 lines · Gary Bisson

Since the codec is probed first, the pinctrl node should be under the codec node.

The codec init was working for this board since U-Boot was already setting GPIO_0 as CLKO1 but better fix it anyway.

Fixes 3faa1bb2e89c ("ARM: dts: imx: add Boundary Devices Nitrogen6_SOM2 support")

Thanks,
Gary

Applied
#7 lore raw

cover ARM: dts: boundary: fix sgtl5000 pinctrl init

In reply to Gary Bisson
Quoted 3 lines · Gary Bisson

Gary Bisson (2):
ARM: dts: imx6qdl-nitrogen6_max: fix sgtl5000 pinctrl init
ARM: dts: imx6qdl-nitrogen6_som2: fix sgtl5000 pinctrl init

Applied both, thanks.