diff options
author | Tony Lindgren <tony@atomide.com> | 2010-07-05 17:31:29 +0400 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2010-07-05 17:31:29 +0400 |
commit | 98093839307cbf1a0d5cb50b495d14a78b755ed9 (patch) | |
tree | f2fb71de250e14b621535c0661d760eb340a8f4c /arch/arm/mach-omap2/usb-fs.c | |
parent | b5e8905bcd7a794b667f6d5eabcb036f25358fdb (diff) | |
download | linux-98093839307cbf1a0d5cb50b495d14a78b755ed9.tar.xz |
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>
Diffstat (limited to 'arch/arm/mach-omap2/usb-fs.c')
-rw-r--r-- | arch/arm/mach-omap2/usb-fs.c | 11 |
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 |