diff mbox

[U-Boot] mx6q: mx6qsabrelite: add GPIO_0__CCM_CLKO and GPIO_3__CCM_CLKO2 pin mux

Message ID 1343819151-29871-1-git-send-email-dirk.behme@de.bosch.com
State Rejected
Headers show

Commit Message

Behme Dirk (CM/ESO2) Aug. 1, 2012, 11:05 a.m. UTC
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.

Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
CC: Troy Kisky <troy.kisky@boundarydevices.com>
CC: Stefano Babic <sbabic@denx.de>
---
 board/freescale/mx6qsabrelite/imximage.cfg |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

\ No newline at end of file

Comments

Liu Hui-R64343 Aug. 1, 2012, 11:26 a.m. UTC | #1
>-----Original Message-----
>From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@lists.denx.de]
>On Behalf Of Dirk Behme
>Sent: Wednesday, August 01, 2012 7:06 PM
>To: u-boot@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
>
>Taken from Freescale's ER5 U-Boot for the SabreLite.
>
>Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
>CC: Troy Kisky <troy.kisky@boundarydevices.com>
>CC: Stefano Babic <sbabic@denx.de>
>---
> board/freescale/mx6qsabrelite/imximage.cfg |    3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
>1.7.0.4
>
>_______________________________________________
>U-Boot mailing list
>U-Boot@lists.denx.de
>http://lists.denx.de/mailman/listinfo/u-boot
Behme Dirk (CM/ESO2) Aug. 1, 2012, 11:50 a.m. UTC | #2
On 01.08.2012 13:26, Liu Hui-R64343 wrote:
>> -----Original Message-----
>> From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@lists.denx.de]
>> On Behalf Of Dirk Behme
>> Sent: Wednesday, August 01, 2012 7:06 PM
>> To: u-boot@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?

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

> Jason
>> Taken from Freescale's ER5 U-Boot for the SabreLite.
>>
>> Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
>> CC: Troy Kisky <troy.kisky@boundarydevices.com>
>> CC: Stefano Babic <sbabic@denx.de>
>> ---
>> board/freescale/mx6qsabrelite/imximage.cfg |    3 +++
>> 1 files changed, 3 insertions(+), 0 deletions(-)
>>
>> 1.7.0.4
>>
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot@lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot
> 
> 
>
Wolfgang Denk Aug. 1, 2012, 12:55 p.m. UTC | #3
Dear Dirk Behme,

In message <5019180C.4060109@de.bosch.com> 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
Behme Dirk (CM/ESO2) Aug. 1, 2012, 1:22 p.m. UTC | #4
On 01.08.2012 14:55, Wolfgang Denk wrote:
> Dear Dirk Behme,
> 
> In message <5019180C.4060109@de.bosch.com> 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
Thomas Petazzoni Aug. 1, 2012, 1:33 p.m. UTC | #5
Le Wed, 1 Aug 2012 15:22:30 +0200,
Dirk Behme <dirk.behme@de.bosch.com> a écrit :

> > 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
Behme Dirk (CM/ESO2) Aug. 1, 2012, 1:43 p.m. UTC | #6
On 01.08.2012 15:33, Thomas Petazzoni wrote:
> Le Wed, 1 Aug 2012 15:22:30 +0200,
> Dirk Behme <dirk.behme@de.bosch.com> a écrit :
> 
>>> 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.

I'm using

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

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

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

Best regards

Dirk
Thomas Petazzoni Aug. 1, 2012, 1:49 p.m. UTC | #7
Le Wed, 1 Aug 2012 15:43:03 +0200,
Dirk Behme <dirk.behme@de.bosch.com> a écrit :

> > 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
> 
> > 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
Fabio Estevam Aug. 1, 2012, 3:05 p.m. UTC | #8
Hi Dirk,

On Wed, Aug 1, 2012 at 10:43 AM, Dirk Behme <dirk.behme@de.bosch.com> wrote:

> 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
Behme Dirk (CM/ESO2) Aug. 2, 2012, 7:36 a.m. UTC | #9
On 01.08.2012 13:05, Dirk Behme wrote:
> 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.
> 
> Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
> CC: Troy Kisky <troy.kisky@boundarydevices.com>
> CC: Stefano Babic <sbabic@denx.de>
> ---
>  board/freescale/mx6qsabrelite/imximage.cfg |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/board/freescale/mx6qsabrelite/imximage.cfg b/board/freescale/mx6qsabrelite/imximage.cfg
> index 62498ab..2d7825a 100644
> --- a/board/freescale/mx6qsabrelite/imximage.cfg
> +++ b/board/freescale/mx6qsabrelite/imximage.cfg
> @@ -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
Stefano Babic Aug. 2, 2012, 7:48 a.m. UTC | #10
On 02/08/2012 09:36, Dirk Behme wrote:
> On 01.08.2012 13:05, Dirk Behme wrote:
>> 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.
>>
>> Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
>> CC: Troy Kisky <troy.kisky@boundarydevices.com>
>> CC: Stefano Babic <sbabic@denx.de>
>> ---
>>  board/freescale/mx6qsabrelite/imximage.cfg |    3 +++
>>  1 files changed, 3 insertions(+), 0 deletions(-)
>>
>> diff --git a/board/freescale/mx6qsabrelite/imximage.cfg
>> b/board/freescale/mx6qsabrelite/imximage.cfg
>> index 62498ab..2d7825a 100644
>> --- a/board/freescale/mx6qsabrelite/imximage.cfg
>> +++ b/board/freescale/mx6qsabrelite/imximage.cfg
>> @@ -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.

Ok, thanks.

Regards,
Stefano
diff mbox

Patch

diff --git a/board/freescale/mx6qsabrelite/imximage.cfg b/board/freescale/mx6qsabrelite/imximage.cfg
index 62498ab..2d7825a 100644
--- a/board/freescale/mx6qsabrelite/imximage.cfg
+++ b/board/freescale/mx6qsabrelite/imximage.cfg
@@ -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