Message ID | 5111615B.50708@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Jon, sorry for the delay, On Tue, 5 Feb 2013, Jon Hunter wrote: > I noticed on my OMAP4430 SDP that in suspend L3INIT was failing to enter > retention state. I am not sure if this is the same problem that you are > seeing or not. However, I found that the reason the L3INIT was not entering > retention on this board was because the USB DPLL was not locked by the > bootloader on this board. On my panda the USB DPLL is locked the L3INIT > is entering suspend. > > I crafted the following which is working on my omap4430 panda, sdp and > omap4460 panda. Let me know what you think ... Looks fine to me. It doesn't fix the problem I'm seeing with OMAP4 L3INIT, unfortunately. But it sounds like it fixes a problem for you -- which means it probably fixes something for other people too. Queued for v3.9-rc. - Paul -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/arm/mach-omap2/cclock44xx_data.c b/arch/arm/mach-omap2/cclock44xx_data.c index e71a19c..2c811d9 100644 --- a/arch/arm/mach-omap2/cclock44xx_data.c +++ b/arch/arm/mach-omap2/cclock44xx_data.c @@ -48,6 +48,13 @@ */ #define OMAP4_DPLL_ABE_DEFFREQ 98304000 +/* + * OMAP4 USB DPLL default frequency. In OMAP4430 TRM version V, section + * "3.6.3.9.5 DPLL_USB Preferred Settings" shows that the preferred + * locked frequency for the USB DPLL is 960MHz. + */ +#define OMAP4_DPLL_USB_DEFFREQ 960000000 + /* Root clocks */ DEFINE_CLK_FIXED_RATE(extalt_clkin_ck, CLK_IS_ROOT, 59000000, 0x0); @@ -2045,5 +2052,13 @@ int __init omap4xxx_clk_init(void) if (rc) pr_err("%s: failed to configure ABE DPLL!\n", __func__); + /* + * Lock USB DPLL on OMAP4 devices so that the L3INIT power + * domain can transition to retention state when not in use. + */ + rc = clk_set_rate(&dpll_usb_ck, OMAP4_DPLL_USB_DEFFREQ); + if (rc) + pr_err("%s: failed to configure USB DPLL!\n", __func__); + return 0; }