public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] arm: omap4: pandaboard: turn on PHY reference clock at init
@ 2011-01-10 14:42 Anand Gadiyar
  2011-01-10 15:43 ` Ming Lei
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Anand Gadiyar @ 2011-01-10 14:42 UTC (permalink / raw)
  To: linux-omap, linux-next, linux-kernel
  Cc: Greg KH, Felipe Balbi, Stephen Rothwell, Anand Gadiyar,
	Benoit Cousson, Paul Walmsley, Tony Lindgren

The SMSC 3320 USB PHY on the OMAP4 Pandaboard needs a 19.2 MHz
reference clock. This clock is provided from the OMAP4's fref_clk3
pad.

Recent changes to clock44xx_data.c made the clock framework aware
of the existence of these fref_clk[i] lines. If the option
CONFIG_OMAP_RESET_CLOCKS is enabled in the kernel, then the
clock framework will turn these clocks off during bootup.

Explicitly request and keep this clock enabled at init for the
Pandaboard, so that the PHY receives this clock at all times.

Reported-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Cc: Benoit Cousson <b-cousson@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Tony Lindgren <tony@atomide.com>
---
Tony,

The clock database changes were merged just before Christmas, so
we did not detect this sooner. Would be nice to get this merged in
the -rc series, so that we get EHCI and ethernet functional on the Panda.

Ming Lei,

Could you please test this and confirm it fixes the issue for you?

- Anand

 arch/arm/mach-omap2/board-omap4panda.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

Index: linux-2.6/arch/arm/mach-omap2/board-omap4panda.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-omap2/board-omap4panda.c
+++ linux-2.6/arch/arm/mach-omap2/board-omap4panda.c
@@ -19,6 +19,7 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
+#include <linux/clk.h>
 #include <linux/io.h>
 #include <linux/leds.h>
 #include <linux/gpio.h>
@@ -95,7 +96,16 @@ static const struct ehci_hcd_omap_platfo
 static void __init omap4_ehci_init(void)
 {
 	int ret;
+	struct clk *phy_ref_clk;
 
+	/* FREF_CLK3 provides the 19.2 MHz reference clock to the PHY */
+	phy_ref_clk = clk_get(NULL, "auxclk3_ck");
+	if (IS_ERR(phy_ref_clk)) {
+		pr_err("Cannot request auxclk3\n");
+		goto error1;
+	}
+	clk_set_rate(phy_ref_clk, 19200000);
+	clk_enable(phy_ref_clk);
 
 	/* disable the power to the usb hub prior to init */
 	ret = gpio_request(GPIO_HUB_POWER, "hub_power");

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] arm: omap4: pandaboard: turn on PHY reference clock at init
  2011-01-10 14:42 [PATCH] arm: omap4: pandaboard: turn on PHY reference clock at init Anand Gadiyar
@ 2011-01-10 15:43 ` Ming Lei
  2011-01-10 15:54 ` Felipe Balbi
  2011-01-10 18:52 ` Paul Walmsley
  2 siblings, 0 replies; 6+ messages in thread
From: Ming Lei @ 2011-01-10 15:43 UTC (permalink / raw)
  To: Anand Gadiyar
  Cc: linux-omap, linux-next, linux-kernel, Greg KH, Felipe Balbi,
	Stephen Rothwell, Benoit Cousson, Paul Walmsley, Tony Lindgren

Hi,

2011/1/10 Anand Gadiyar <gadiyar@ti.com>:
> The SMSC 3320 USB PHY on the OMAP4 Pandaboard needs a 19.2 MHz
> reference clock. This clock is provided from the OMAP4's fref_clk3
> pad.
>
> Recent changes to clock44xx_data.c made the clock framework aware
> of the existence of these fref_clk[i] lines. If the option
> CONFIG_OMAP_RESET_CLOCKS is enabled in the kernel, then the
> clock framework will turn these clocks off during bootup.
>
> Explicitly request and keep this clock enabled at init for the
> Pandaboard, so that the PHY receives this clock at all times.
>
> Reported-by: Ming Lei <tom.leiming@gmail.com>
> Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
> Cc: Benoit Cousson <b-cousson@ti.com>
> Cc: Paul Walmsley <paul@pwsan.com>
> Cc: Tony Lindgren <tony@atomide.com>
> ---
> Tony,
>
> The clock database changes were merged just before Christmas, so
> we did not detect this sooner. Would be nice to get this merged in
> the -rc series, so that we get EHCI and ethernet functional on the Panda.
>
> Ming Lei,
>
> Could you please test this and confirm it fixes the issue for you?

Yes, the patch does fix the issue on my panda board even
CONFIG_OMAP_RESET_CLOCKS is enabled.

thanks,
-- 
Lei Ming

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] arm: omap4: pandaboard: turn on PHY reference clock at init
  2011-01-10 14:42 [PATCH] arm: omap4: pandaboard: turn on PHY reference clock at init Anand Gadiyar
  2011-01-10 15:43 ` Ming Lei
@ 2011-01-10 15:54 ` Felipe Balbi
  2011-01-10 16:17   ` Anand Gadiyar
  2011-01-10 18:52 ` Paul Walmsley
  2 siblings, 1 reply; 6+ messages in thread
From: Felipe Balbi @ 2011-01-10 15:54 UTC (permalink / raw)
  To: Anand Gadiyar
  Cc: linux-omap, linux-next, linux-kernel, Greg KH, Felipe Balbi,
	Stephen Rothwell, Benoit Cousson, Paul Walmsley, Tony Lindgren

Hi,

On Mon, Jan 10, 2011 at 08:12:15PM +0530, Anand Gadiyar wrote:
> The SMSC 3320 USB PHY on the OMAP4 Pandaboard needs a 19.2 MHz
> reference clock. This clock is provided from the OMAP4's fref_clk3
> pad.
> 
> Recent changes to clock44xx_data.c made the clock framework aware
> of the existence of these fref_clk[i] lines. If the option
> CONFIG_OMAP_RESET_CLOCKS is enabled in the kernel, then the
> clock framework will turn these clocks off during bootup.
> 
> Explicitly request and keep this clock enabled at init for the
> Pandaboard, so that the PHY receives this clock at all times.
> 
> Reported-by: Ming Lei <tom.leiming@gmail.com>
> Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
> Cc: Benoit Cousson <b-cousson@ti.com>
> Cc: Paul Walmsley <paul@pwsan.com>
> Cc: Tony Lindgren <tony@atomide.com>
> ---
> Tony,
> 
> The clock database changes were merged just before Christmas, so
> we did not detect this sooner. Would be nice to get this merged in
> the -rc series, so that we get EHCI and ethernet functional on the Panda.
> 
> Ming Lei,
> 
> Could you please test this and confirm it fixes the issue for you?
> 
> - Anand
> 
>  arch/arm/mach-omap2/board-omap4panda.c |   10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> Index: linux-2.6/arch/arm/mach-omap2/board-omap4panda.c
> ===================================================================
> --- linux-2.6.orig/arch/arm/mach-omap2/board-omap4panda.c
> +++ linux-2.6/arch/arm/mach-omap2/board-omap4panda.c
> @@ -19,6 +19,7 @@
>  #include <linux/kernel.h>
>  #include <linux/init.h>
>  #include <linux/platform_device.h>
> +#include <linux/clk.h>
>  #include <linux/io.h>
>  #include <linux/leds.h>
>  #include <linux/gpio.h>
> @@ -95,7 +96,16 @@ static const struct ehci_hcd_omap_platfo
>  static void __init omap4_ehci_init(void)
>  {
>  	int ret;
> +	struct clk *phy_ref_clk;
>  
> +	/* FREF_CLK3 provides the 19.2 MHz reference clock to the PHY */
> +	phy_ref_clk = clk_get(NULL, "auxclk3_ck");
> +	if (IS_ERR(phy_ref_clk)) {
> +		pr_err("Cannot request auxclk3\n");
> +		goto error1;
> +	}
> +	clk_set_rate(phy_ref_clk, 19200000);
> +	clk_enable(phy_ref_clk);

shouldn't you be enabling a child of this clock which would be the PHY's
reference clock ? What about PM, are you keeping this clock on forever ?
Wouldn't it be better to, at least, pass down a function pointer to
driver so it uses during probe() (to enable clocks) and suspend/resume
??

-- 
balbi

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] arm: omap4: pandaboard: turn on PHY reference clock at init
  2011-01-10 15:54 ` Felipe Balbi
@ 2011-01-10 16:17   ` Anand Gadiyar
  0 siblings, 0 replies; 6+ messages in thread
From: Anand Gadiyar @ 2011-01-10 16:17 UTC (permalink / raw)
  To: balbi
  Cc: linux-omap, linux-next, linux-kernel, Greg KH, Stephen Rothwell,
	Benoit Cousson, Paul Walmsley, Tony Lindgren

On 1/10/2011 9:24 PM, Felipe Balbi wrote:
> Hi,
> 
> On Mon, Jan 10, 2011 at 08:12:15PM +0530, Anand Gadiyar wrote:
>> The SMSC 3320 USB PHY on the OMAP4 Pandaboard needs a 19.2 MHz
>> reference clock. This clock is provided from the OMAP4's fref_clk3
>> pad.
>>
>> Recent changes to clock44xx_data.c made the clock framework aware
>> of the existence of these fref_clk[i] lines. If the option
>> CONFIG_OMAP_RESET_CLOCKS is enabled in the kernel, then the
>> clock framework will turn these clocks off during bootup.
>>
>> Explicitly request and keep this clock enabled at init for the
>> Pandaboard, so that the PHY receives this clock at all times.
>>
>> Reported-by: Ming Lei <tom.leiming@gmail.com>
>> Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
>> Cc: Benoit Cousson <b-cousson@ti.com>
>> Cc: Paul Walmsley <paul@pwsan.com>
>> Cc: Tony Lindgren <tony@atomide.com>
>> ---
>> Tony,
>>
>> The clock database changes were merged just before Christmas, so
>> we did not detect this sooner. Would be nice to get this merged in
>> the -rc series, so that we get EHCI and ethernet functional on the Panda.
>>
>> Ming Lei,
>>
>> Could you please test this and confirm it fixes the issue for you?
>>
>> - Anand
>>
>>  arch/arm/mach-omap2/board-omap4panda.c |   10 ++++++++++
>>  1 file changed, 10 insertions(+)
>>
>> Index: linux-2.6/arch/arm/mach-omap2/board-omap4panda.c
>> ===================================================================
>> --- linux-2.6.orig/arch/arm/mach-omap2/board-omap4panda.c
>> +++ linux-2.6/arch/arm/mach-omap2/board-omap4panda.c
>> @@ -19,6 +19,7 @@
>>  #include <linux/kernel.h>
>>  #include <linux/init.h>
>>  #include <linux/platform_device.h>
>> +#include <linux/clk.h>
>>  #include <linux/io.h>
>>  #include <linux/leds.h>
>>  #include <linux/gpio.h>
>> @@ -95,7 +96,16 @@ static const struct ehci_hcd_omap_platfo
>>  static void __init omap4_ehci_init(void)
>>  {
>>  	int ret;
>> +	struct clk *phy_ref_clk;
>>  
>> +	/* FREF_CLK3 provides the 19.2 MHz reference clock to the PHY */
>> +	phy_ref_clk = clk_get(NULL, "auxclk3_ck");
>> +	if (IS_ERR(phy_ref_clk)) {
>> +		pr_err("Cannot request auxclk3\n");
>> +		goto error1;
>> +	}
>> +	clk_set_rate(phy_ref_clk, 19200000);
>> +	clk_enable(phy_ref_clk);
> 
> shouldn't you be enabling a child of this clock which would be the PHY's
> reference clock ? What about PM, are you keeping this clock on forever ?

This is simply one of 5 reference clock-outs that the OMAP provides to
various components on the PCB. It's a simple divide-down from the OMAP's
own reference system clock, or DPLLs. There are no children for this
clock right now.

Keeping this on forever was intentional. There's no reason to control
this clock dynamically at this point, given the driver doesn't currently
gate other clocks.

We haven't yet come up with a policy for when this clock can be safely
turned off, and that's not what this patch is supposed to do right now.
In this patch, we're only restoring behavior that existed before the
clock data was updated to include this clock.

> Wouldn't it be better to, at least, pass down a function pointer to
> driver so it uses during probe() (to enable clocks) and suspend/resume
> ??

Yes, this would work, but it didn't seem to be useful, given that
only the Panda uses this right now. It's very much board specific.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] arm: omap4: pandaboard: turn on PHY reference clock at init
  2011-01-10 14:42 [PATCH] arm: omap4: pandaboard: turn on PHY reference clock at init Anand Gadiyar
  2011-01-10 15:43 ` Ming Lei
  2011-01-10 15:54 ` Felipe Balbi
@ 2011-01-10 18:52 ` Paul Walmsley
  2011-01-10 19:12   ` Tony Lindgren
  2 siblings, 1 reply; 6+ messages in thread
From: Paul Walmsley @ 2011-01-10 18:52 UTC (permalink / raw)
  To: Anand Gadiyar
  Cc: linux-omap, linux-next, linux-kernel, Greg KH, Felipe Balbi,
	Stephen Rothwell, Benoit Cousson, Tony Lindgren

On Mon, 10 Jan 2011, Anand Gadiyar wrote:

> The SMSC 3320 USB PHY on the OMAP4 Pandaboard needs a 19.2 MHz
> reference clock. This clock is provided from the OMAP4's fref_clk3
> pad.
> 
> Recent changes to clock44xx_data.c made the clock framework aware
> of the existence of these fref_clk[i] lines. If the option
> CONFIG_OMAP_RESET_CLOCKS is enabled in the kernel, then the
> clock framework will turn these clocks off during bootup.
> 
> Explicitly request and keep this clock enabled at init for the
> Pandaboard, so that the PHY receives this clock at all times.
> 
> Reported-by: Ming Lei <tom.leiming@gmail.com>
> Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
> Cc: Benoit Cousson <b-cousson@ti.com>
> Cc: Paul Walmsley <paul@pwsan.com>
> Cc: Tony Lindgren <tony@atomide.com>

Reviewed-by: Paul Walmsley <paul@pwsan.com>


- Paul

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] arm: omap4: pandaboard: turn on PHY reference clock at init
  2011-01-10 18:52 ` Paul Walmsley
@ 2011-01-10 19:12   ` Tony Lindgren
  0 siblings, 0 replies; 6+ messages in thread
From: Tony Lindgren @ 2011-01-10 19:12 UTC (permalink / raw)
  To: Paul Walmsley
  Cc: Anand Gadiyar, linux-omap, linux-next, linux-kernel, Greg KH,
	Felipe Balbi, Stephen Rothwell, Benoit Cousson

* Paul Walmsley <paul@pwsan.com> [110110 10:51]:
> On Mon, 10 Jan 2011, Anand Gadiyar wrote:
> 
> > The SMSC 3320 USB PHY on the OMAP4 Pandaboard needs a 19.2 MHz
> > reference clock. This clock is provided from the OMAP4's fref_clk3
> > pad.
> > 
> > Recent changes to clock44xx_data.c made the clock framework aware
> > of the existence of these fref_clk[i] lines. If the option
> > CONFIG_OMAP_RESET_CLOCKS is enabled in the kernel, then the
> > clock framework will turn these clocks off during bootup.
> > 
> > Explicitly request and keep this clock enabled at init for the
> > Pandaboard, so that the PHY receives this clock at all times.
> > 
> > Reported-by: Ming Lei <tom.leiming@gmail.com>
> > Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
> > Cc: Benoit Cousson <b-cousson@ti.com>
> > Cc: Paul Walmsley <paul@pwsan.com>
> > Cc: Tony Lindgren <tony@atomide.com>
> 
> Reviewed-by: Paul Walmsley <paul@pwsan.com>

Will queue as a fix.

Tony

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-01-10 19:12 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-10 14:42 [PATCH] arm: omap4: pandaboard: turn on PHY reference clock at init Anand Gadiyar
2011-01-10 15:43 ` Ming Lei
2011-01-10 15:54 ` Felipe Balbi
2011-01-10 16:17   ` Anand Gadiyar
2011-01-10 18:52 ` Paul Walmsley
2011-01-10 19:12   ` Tony Lindgren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox