aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/board-omap4panda.c
diff options
context:
space:
mode:
authorAnand Gadiyar <gadiyar@ti.com>2011-01-10 09:42:15 -0500
committerTony Lindgren <tony@atomide.com>2011-01-10 14:13:46 -0500
commit1740d483ba4d79f9fa6984dccd7152b6b208f1bf (patch)
tree83fe9290a4f231971da768351cced67e34e3e93b /arch/arm/mach-omap2/board-omap4panda.c
parent56a6a19dffda6b75cef8d4183c7c6ff650025cbd (diff)
arm: omap4: pandaboard: turn on PHY reference clock at init
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> Reviewed-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2/board-omap4panda.c')
-rw-r--r--arch/arm/mach-omap2/board-omap4panda.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
index b43e3ff9adec..613bdd89bcfa 100644
--- a/arch/arm/mach-omap2/board-omap4panda.c
+++ b/arch/arm/mach-omap2/board-omap4panda.c
@@ -19,6 +19,7 @@
19#include <linux/kernel.h> 19#include <linux/kernel.h>
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/platform_device.h> 21#include <linux/platform_device.h>
22#include <linux/clk.h>
22#include <linux/io.h> 23#include <linux/io.h>
23#include <linux/leds.h> 24#include <linux/leds.h>
24#include <linux/gpio.h> 25#include <linux/gpio.h>
@@ -95,7 +96,16 @@ static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
95static void __init omap4_ehci_init(void) 96static void __init omap4_ehci_init(void)
96{ 97{
97 int ret; 98 int ret;
99 struct clk *phy_ref_clk;
98 100
101 /* FREF_CLK3 provides the 19.2 MHz reference clock to the PHY */
102 phy_ref_clk = clk_get(NULL, "auxclk3_ck");
103 if (IS_ERR(phy_ref_clk)) {
104 pr_err("Cannot request auxclk3\n");
105 goto error1;
106 }
107 clk_set_rate(phy_ref_clk, 19200000);
108 clk_enable(phy_ref_clk);
99 109
100 /* disable the power to the usb hub prior to init */ 110 /* disable the power to the usb hub prior to init */
101 ret = gpio_request(GPIO_HUB_POWER, "hub_power"); 111 ret = gpio_request(GPIO_HUB_POWER, "hub_power");