>From 8836bc00aea3c97206244c3f8a66e2726c835854 Mon Sep 17 00:00:00 2001 From: Roger Quadros Date: Wed, 24 Jul 2013 16:30:55 +0300 Subject: [PATCH 3/3] CLK: omap5: Initialize USB_DPLL at boot USB_DPLL must be initialized and locked at boot so that USB modules can work. Signed-off-by: Roger Quadros --- drivers/clk/omap/clk-54xx.c | 13 ++++++++++++- 1 files changed, 12 insertions(+), 1 deletions(-) diff --git a/drivers/clk/omap/clk-54xx.c b/drivers/clk/omap/clk-54xx.c index ade0481..a0b3c14 100644 --- a/drivers/clk/omap/clk-54xx.c +++ b/drivers/clk/omap/clk-54xx.c @@ -19,6 +19,12 @@ #define OMAP5_DPLL_ABE_DEFFREQ 98304000 +/* + * OMAP543x TRM, section "3.6.3.9.5 DPLL_USB Preferred Settings" + * states it must be at 960MHz + */ +#define OMAP5_DPLL_USB_DEFFREQ 960000000 + static struct omap_dt_clk omap54xx_clks[] = { DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"), DT_CLK("omap_timer.1", "sys_ck", "sys_clkin"), @@ -37,7 +43,7 @@ static struct omap_dt_clk omap54xx_clks[] = { int __init omap5xxx_clk_init(void) { int rc; - struct clk *abe_dpll_ref, *abe_dpll, *sys_32k_ck; + struct clk *abe_dpll_ref, *abe_dpll, *sys_32k_ck, *usb_dpll; dt_omap_clk_init(); @@ -54,5 +60,10 @@ int __init omap5xxx_clk_init(void) if (rc) pr_err("%s: failed to configure ABE DPLL!\n", __func__); + usb_dpll = clk_get_sys(NULL, "dpll_usb_ck"); + rc = clk_set_rate(usb_dpll, OMAP5_DPLL_USB_DEFFREQ); + if (rc) + pr_err("%s: failed to configure USB DPLL!\n", __func__); + return 0; } -- 1.7.4.1