aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2010-07-05 16:31:29 +0300
committerTony Lindgren <tony@atomide.com>2010-07-05 16:31:29 +0300
commit98093839307cbf1a0d5cb50b495d14a78b755ed9 (patch)
treef2fb71de250e14b621535c0661d760eb340a8f4c
parentomap: Move omap2 FS USB platform init code into mach-omap2/usb-fs.c (diff)
downloadlinux-dev-98093839307cbf1a0d5cb50b495d14a78b755ed9.tar.xz
linux-dev-98093839307cbf1a0d5cb50b495d14a78b755ed9.zip
omap: Enable interface clock for omap2 FS USB
Looks like this code was only working on boards that had the usb_l4_ick enabled in the bootloader. Signed-off-by: Tony Lindgren <tony@atomide.com>
-rw-r--r--arch/arm/mach-omap2/usb-fs.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/usb-fs.c b/arch/arm/mach-omap2/usb-fs.c
index f63e5766b6bc..a4455190b216 100644
--- a/arch/arm/mach-omap2/usb-fs.c
+++ b/arch/arm/mach-omap2/usb-fs.c
@@ -24,6 +24,8 @@
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/platform_device.h>
+#include <linux/clk.h>
+#include <linux/err.h>
#include <asm/irq.h>
@@ -330,9 +332,16 @@ static u32 __init omap2_usb2_init(unsigned nwires, unsigned alt_pingroup)
void __init omap2_usbfs_init(struct omap_usb_config *pdata)
{
+ struct clk *ick;
+
if (!cpu_is_omap24xx())
return;
+ ick = clk_get(NULL, "usb_l4_ick");
+ if (IS_ERR(ick))
+ return;
+
+ clk_enable(ick);
pdata->usb0_init = omap2_usb0_init;
pdata->usb1_init = omap2_usb1_init;
pdata->usb2_init = omap2_usb2_init;
@@ -340,6 +349,8 @@ void __init omap2_usbfs_init(struct omap_usb_config *pdata)
ohci_device_init(pdata);
otg_device_init(pdata);
omap_otg_init(pdata);
+ clk_disable(ick);
+ clk_put(ick);
}
#endif