omap: Enable interface clock for omap2 FS USB
authorTony Lindgren <tony@atomide.com>
Mon, 5 Jul 2010 13:31:29 +0000 (16:31 +0300)
committerTony Lindgren <tony@atomide.com>
Mon, 5 Jul 2010 13:31:29 +0000 (16:31 +0300)
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>
arch/arm/mach-omap2/usb-fs.c

index f63e5766b6bcdc79d5c84b52d5d522f95d6e8cd6..a4455190b21691d01ec5a306ec724b2aed5314e0 100644 (file)
@@ -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