diff options
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index 9e0576569e07..eaba9dc91a0d 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c | |||
| @@ -2714,16 +2714,22 @@ static struct omap_ocp2scp_dev ocp2scp_dev_attr[] = { | |||
| 2714 | { } | 2714 | { } |
| 2715 | }; | 2715 | }; |
| 2716 | 2716 | ||
| 2717 | static struct omap_hwmod_opt_clk ocp2scp_usb_phy_opt_clks[] = { | ||
| 2718 | { .role = "48mhz", .clk = "ocp2scp_usb_phy_phy_48m" }, | ||
| 2719 | }; | ||
| 2720 | |||
| 2721 | /* ocp2scp_usb_phy */ | 2717 | /* ocp2scp_usb_phy */ |
| 2722 | static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = { | 2718 | static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = { |
| 2723 | .name = "ocp2scp_usb_phy", | 2719 | .name = "ocp2scp_usb_phy", |
| 2724 | .class = &omap44xx_ocp2scp_hwmod_class, | 2720 | .class = &omap44xx_ocp2scp_hwmod_class, |
| 2725 | .clkdm_name = "l3_init_clkdm", | 2721 | .clkdm_name = "l3_init_clkdm", |
| 2726 | .main_clk = "func_48m_fclk", | 2722 | /* |
| 2723 | * ocp2scp_usb_phy_phy_48m is provided by the OMAP4 PRCM IP | ||
| 2724 | * block as an "optional clock," and normally should never be | ||
| 2725 | * specified as the main_clk for an OMAP IP block. However it | ||
| 2726 | * turns out that this clock is actually the main clock for | ||
| 2727 | * the ocp2scp_usb_phy IP block: | ||
| 2728 | * http://lists.infradead.org/pipermail/linux-arm-kernel/2012-September/119943.html | ||
| 2729 | * So listing ocp2scp_usb_phy_phy_48m as a main_clk here seems | ||
| 2730 | * to be the best workaround. | ||
| 2731 | */ | ||
| 2732 | .main_clk = "ocp2scp_usb_phy_phy_48m", | ||
| 2727 | .prcm = { | 2733 | .prcm = { |
| 2728 | .omap4 = { | 2734 | .omap4 = { |
| 2729 | .clkctrl_offs = OMAP4_CM_L3INIT_USBPHYOCP2SCP_CLKCTRL_OFFSET, | 2735 | .clkctrl_offs = OMAP4_CM_L3INIT_USBPHYOCP2SCP_CLKCTRL_OFFSET, |
| @@ -2732,8 +2738,6 @@ static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = { | |||
| 2732 | }, | 2738 | }, |
| 2733 | }, | 2739 | }, |
| 2734 | .dev_attr = ocp2scp_dev_attr, | 2740 | .dev_attr = ocp2scp_dev_attr, |
| 2735 | .opt_clks = ocp2scp_usb_phy_opt_clks, | ||
| 2736 | .opt_clks_cnt = ARRAY_SIZE(ocp2scp_usb_phy_opt_clks), | ||
| 2737 | }; | 2741 | }; |
| 2738 | 2742 | ||
| 2739 | /* | 2743 | /* |
