Skip to contentSkip to conversation

mx6q: mx6qsabrelite: add GPIO_0__CCM_CLKO and GPIO_3__CCM_CLKO2 pin mux

PATCH New Dirk Behme 6 participants 11 messages Aug 1, 2012 – Aug 2, 2012 Arm i.MX and Layerscape

lore
Share & tools
lore

Dirk Behme

author
#0 lore raw

PATCH 1/1 mx6q: mx6qsabrelite: add GPIO_0__CCM_CLKO and GPIO_3__CCM_CLKO2 pin mux

A recent Linux kernel (>= 3.5) has support for the SGTL 5000 sound on the SabreLite board. To make this work, U-Boot has to configure the pin mux for PAD_GPIO_0__CCM_CLKO and PAD_GPIO_3__CCM_CLKO2 correctly.

Taken from Freescale's ER5 U-Boot for the SabreLite.

CC Troy Kisky <[email protected]>
CC Stefano Babic <[email protected]>
---
 board/freescale/mx6qsabrelite/imximage.cfg |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
board/freescale/mx6qsabrelite/imximage.cfg +3 -0
index 62498ab..2d7825a 100644
@@ -168,3 +168,6 @@ DATA 4 0x020e0010 0xF00000CF
 # set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7
 DATA 4 0x020e0018 0x007F007F
 DATA 4 0x020e001c 0x007F007F
+# set PAD_GPIO_0__CCM_CLKO and PAD_GPIO_3__CCM_CLKO2
+DATA 4 0x020e0220 0x00000000
+DATA 4 0x020e022c 0x00000004
\ No newline at end of file
Signature · 1 line
1.7.0.4
#1 lore raw

PATCH 1/1 mx6q: mx6qsabrelite: add GPIO_0__CCM_CLKO and GPIO_3__CCM_CLKO2 pin mux

Quoted 1 line

-----Original Message-----

From: [email protected] [mailto:u-boot-bounces at lists.denx.de]

Quoted 10 lines

On Behalf Of Dirk Behme
Sent: Wednesday, August 01, 2012 7:06 PM
To: u-boot at lists.denx.de
Cc: Dirk Behme
Subject: [U-Boot] [PATCH] mx6q: mx6qsabrelite: add GPIO_0__CCM_CLKO and GPIO_3__CCM_CLKO2 pin mux

A recent Linux kernel (>= 3.5) has support for the SGTL 5000 sound on the SabreLite board. To make this work, U-Boot has to configure the pin mux for PAD_GPIO_0__CCM_CLKO and PAD_GPIO_3__CCM_CLKO2 correctly.

Why this can't be set in the kernel but relies on u-boot to configure it?

Jason

Quoted 16 lines

Taken from Freescale's ER5 U-Boot for the SabreLite.

CC Troy Kisky <[email protected]>
CC Stefano Babic <[email protected]>

---
board/freescale/mx6qsabrelite/imximage.cfg | 3 +++

1 files changed, 3 insertions(+), 0 deletions(-)

1.7.0.4

_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

author
#2 lore raw

PATCH 1/1 mx6q: mx6qsabrelite: add GPIO_0__CCM_CLKO and GPIO_3__CCM_CLKO2 pin mux

Quoted 9 lines · On 01.08.2012 13:26, Liu Hui-R64343 wrote:
Quoted 9 lines

-----Original Message-----
From: u-boot-bounces at lists.denx.de [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Dirk Behme
Sent: Wednesday, August 01, 2012 7:06 PM
To: u-boot at lists.denx.de
Cc: Dirk Behme
Subject: [U-Boot] [PATCH] mx6q: mx6qsabrelite: add GPIO_0__CCM_CLKO and GPIO_3__CCM_CLKO2 pin mux

Quoted 5 lines
Quoted 3 lines

A recent Linux kernel (>= 3.5) has support for the SGTL 5000 sound on the SabreLite board. To make this work, U-Boot has to configure the pin mux for PAD_GPIO_0__CCM_CLKO and PAD_GPIO_3__CCM_CLKO2 correctly.

Why this can't be set in the kernel but relies on u-boot to configure it?

I don't know :(

It took me days to find this U-Boot dependency, thanks to Troy helping with this!

I enabled SGTL5000 sound in the kernel and it didn't work. Until I found that it works with the ER5 Freescale U-Boot, but not with the recent mainline one.

It seems to me that the SGTL5000 kernel feature for the SabreLite was developed with a Freescale U-Boot (patching the kernel with DT append) and not tested with the mainline U-Boot.

Best regards

Dirk

Quoted 19 lines

Jason

Quoted 15 lines

Taken from Freescale's ER5 U-Boot for the SabreLite.

CC Troy Kisky <[email protected]>
CC Stefano Babic <[email protected]>

---
board/freescale/mx6qsabrelite/imximage.cfg | 3 +++

1 files changed, 3 insertions(+), 0 deletions(-)

1.7.0.4

_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Signature · 17 lines
======================================================================
Dirk Behme                      Robert Bosch Car Multimedia GmbH
                                 CM-AI/PJ-CF32
Phone: +49 5121 49-3274         Dirk Behme
Fax:   +49 711 811 5053274      PO Box 77 77 77
mailto:dirk.behme at de.bosch.com  D-31132 Hildesheim - Germany

Bosch Group, Car Multimedia (CM)
              Automotive Navigation and Infotainment Systems (AI)
              ProJect - CoreFunctions (PJ-CF)

Robert Bosch Car Multimedia GmbH - Ein Unternehmen der Bosch Gruppe
Sitz: Hildesheim
Registergericht: Amtsgericht Hildesheim HRB 201334
Aufsichtsratsvorsitzender: Volkmar Denner
Gesch?ftsf?hrung: Uwe Thomas, Michael Bolle, Robby Drave, Egbert Hellwig
======================================================================
#3 lore raw

PATCH 1/1 mx6q: mx6qsabrelite: add GPIO_0__CCM_CLKO and GPIO_3__CCM_CLKO2 pin mux

Dear Dirk Behme,

Quoted 4 lines · In message <[email protected]> you wrote:

It seems to me that the SGTL5000 kernel feature for the SabreLite was developed with a Freescale U-Boot (patching the kernel with DT append) and not tested with the mainline U-Boot.

Probably. But the question is still why this should be changed in U-Boot. Why doesn't the Linux driver set the pin mux configuration it needs?

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
THIS IS A 100% MATTER  PRODUCT:  In  the  Unlikely  Event  That  This
Merchandise  Should  Contact  Antimatter  in Any Form, a Catastrophic
Explosion Will Result.
author
#4 lore raw

PATCH 1/1 mx6q: mx6qsabrelite: add GPIO_0__CCM_CLKO and GPIO_3__CCM_CLKO2 pin mux

Quoted 10 lines · Wolfgang Denk

Dear Dirk Behme,

Quoted 3 lines · In message <[email protected]> you wrote:

It seems to me that the SGTL5000 kernel feature for the SabreLite was developed with a Freescale U-Boot (patching the kernel with DT append) and not tested with the mainline U-Boot.

Probably. But the question is still why this should be changed in U-Boot. Why doesn't the Linux driver set the pin mux configuration it needs?

Sorry, I don't know. The Linux driver developers told me "there is no U-Boot dependency". Maybe they could answer this question? CCed.

Best regards

Dirk

#5 lore raw

PATCH 1/1 mx6q: mx6qsabrelite: add GPIO_0__CCM_CLKO and GPIO_3__CCM_CLKO2 pin mux

Le Wed, 1 Aug 2012 15:22:30 +0200,
Dirk Behme <[email protected]> a ?crit :

Quoted 6 lines
Quoted 3 lines

Probably. But the question is still why this should be changed in U-Boot. Why doesn't the Linux driver set the pin mux configuration it needs?

Sorry, I don't know. The Linux driver developers told me "there is no U-Boot dependency". Maybe they could answer this question? CCed.

The kernel has a pinctrl driver for i.MX 6, so I would rather suggest to fix your imx6q-sabrelite.dts Device Tree source file so that the audio device is properly associated with the correct pinmux configuration.

Each device can have a pinctrl-0 DT property, which points to one or more pinmux configurations that are defined in imx6q.dtsi file. You can add additional pinmux configurations here if needed.

But yeah, definitely, the kernel shouldn't rely too much on U-Boot having set the right pinmux configuration.

Best regards,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
author
#6 lore raw

PATCH 1/1 mx6q: mx6qsabrelite: add GPIO_0__CCM_CLKO and GPIO_3__CCM_CLKO2 pin mux

Quoted 6 lines · Thomas Petazzoni

Le Wed, 1 Aug 2012 15:22:30 +0200,
Dirk Behme <[email protected]> a ?crit :

Quoted 3 lines
Quoted 3 lines

Probably. But the question is still why this should be changed in U-Boot. Why doesn't the Linux driver set the pin mux configuration it needs?

Quoted 7 lines
Quoted 2 lines

Sorry, I don't know. The Linux driver developers told me "there is no U-Boot dependency". Maybe they could answer this question? CCed.

The kernel has a pinctrl driver for i.MX 6, so I would rather suggest to fix your imx6q-sabrelite.dts Device Tree source file so that the audio device is properly associated with the correct pinmux configuration.

I'm using

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=b7879fe6dad97ce08e8df0bf8d408942c436d358

Quoted 3 lines

Each device can have a pinctrl-0 DT property, which points to one or more pinmux configurations that are defined in imx6q.dtsi file. You can add additional pinmux configurations here if needed.

Sounds like the above is incomplete, then?

Quoted 2 lines

But yeah, definitely, the kernel shouldn't rely too much on U-Boot having set the right pinmux configuration.

Best regards

Dirk

#7 lore raw

PATCH 1/1 mx6q: mx6qsabrelite: add GPIO_0__CCM_CLKO and GPIO_3__CCM_CLKO2 pin mux

Le Wed, 1 Aug 2012 15:43:03 +0200,
Dirk Behme <[email protected]> a ?crit :

Quoted 7 lines
Quoted 4 lines

The kernel has a pinctrl driver for i.MX 6, so I would rather suggest to fix your imx6q-sabrelite.dts Device Tree source file so that the audio device is properly associated with the correct pinmux configuration.

I'm using

Quoted 7 lines

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=b7879fe6dad97ce08e8df0bf8d408942c436d358

Quoted 3 lines

Each device can have a pinctrl-0 DT property, which points to one or more pinmux configurations that are defined in imx6q.dtsi file. You can add additional pinmux configurations here if needed.

Sounds like the above is incomplete, then?

Yes. If this device needs certain pins to be muxed in a certain configuration, then it needs:

	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_some_config_name>;

And then in the imx6q.dtsi, the pinctrl_some_config_name pinctrl configuration needs to be defined.

But I guess this starts to be a bit off-topic for the U-Boot list. What about raising the issue with i.MX 6 kernel maintainers on LAKML instead?

Best regards,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
reviewer
#8 lore raw

PATCH 1/1 mx6q: mx6qsabrelite: add GPIO_0__CCM_CLKO and GPIO_3__CCM_CLKO2 pin mux

In reply to Dirk Behme

Hi Dirk,

Quoted 1 line · Dirk Behme

Sounds like the above is incomplete, then?

I will send a kernel patch to setup these two clocks for sabrelite. I don't have a sabrelite handy now, but if you have a chance to test it, please let me know.

Regards,

Fabio Estevam

author
#9 lore raw

PATCH 1/1 mx6q: mx6qsabrelite: add GPIO_0__CCM_CLKO and GPIO_3__CCM_CLKO2 pin mux

In reply to Dirk Behme
Quoted 18 lines · Dirk Behme

A recent Linux kernel (>= 3.5) has support for the SGTL 5000 sound on the SabreLite board. To make this work, U-Boot has to configure the pin mux for PAD_GPIO_0__CCM_CLKO and PAD_GPIO_3__CCM_CLKO2 correctly.

Taken from Freescale's ER5 U-Boot for the SabreLite.

CC Troy Kisky <[email protected]>
CC Stefano Babic <[email protected]>
---
 board/freescale/mx6qsabrelite/imximage.cfg |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
board/freescale/mx6qsabrelite/imximage.cfg +0 -0
index 62498ab..2d7825a 100644

board/freescale/mx6qsabrelite/imximage.cfg DATA 4 0x020e0010 0xF00000CF · line 173

Quoted 7 lines
board/freescale/mx6qsabrelite/imximage.cfg +3 -0
@@ -168,3 +168,6 @@ DATA 4 0x020e0010 0xF00000CF
 # set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7
 DATA 4 0x020e0018 0x007F007F
 DATA 4 0x020e001c 0x007F007F
+# set PAD_GPIO_0__CCM_CLKO and PAD_GPIO_3__CCM_CLKO2
+DATA 4 0x020e0220 0x00000000
+DATA 4 0x020e022c 0x00000004
\ No newline at end of file

This is replaced with a kernel patch

http://www.spinics.net/lists/arm-kernel/msg187222.html

and therefore this patch is obsolete now.

Thanks

Dirk

#10 lore raw

PATCH 1/1 mx6q: mx6qsabrelite: add GPIO_0__CCM_CLKO and GPIO_3__CCM_CLKO2 pin mux

Quoted 30 lines · Dirk Behme
Quoted 19 lines · Dirk Behme

A recent Linux kernel (>= 3.5) has support for the SGTL 5000 sound on the SabreLite board. To make this work, U-Boot has to configure the pin mux for PAD_GPIO_0__CCM_CLKO and PAD_GPIO_3__CCM_CLKO2 correctly.

Taken from Freescale's ER5 U-Boot for the SabreLite.

CC Troy Kisky <[email protected]>
CC Stefano Babic <[email protected]>
---
 board/freescale/mx6qsabrelite/imximage.cfg |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
board/freescale/mx6qsabrelite/imximage.cfg +0 -0
index 62498ab..2d7825a 100644

board/freescale/mx6qsabrelite/imximage.cfg DATA 4 0x020e0010 0xF00000CF · line 173

Quoted 7 lines
board/freescale/mx6qsabrelite/imximage.cfg +3 -0
@@ -168,3 +168,6 @@ DATA 4 0x020e0010 0xF00000CF
 # set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7
 DATA 4 0x020e0018 0x007F007F
 DATA 4 0x020e001c 0x007F007F
+# set PAD_GPIO_0__CCM_CLKO and PAD_GPIO_3__CCM_CLKO2
+DATA 4 0x020e0220 0x00000000
+DATA 4 0x020e022c 0x00000004
\ No newline at end of file

This is replaced with a kernel patch

Quoted 3 lines

http://www.spinics.net/lists/arm-kernel/msg187222.html

and therefore this patch is obsolete now.

Ok, thanks.

Regards,
Stefano

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================