diff options
author | Roger Quadros <rogerq@ti.com> | 2013-07-24 09:30:55 -0400 |
---|---|---|
committer | Mike Turquette <mturquette@linaro.org> | 2014-01-17 15:35:27 -0500 |
commit | 62125a46cd717ad8fa6a64d260d46a0a108e6222 (patch) | |
tree | d77f91368cf32c9b3c54c84e400284e546bb6b06 /drivers/clk | |
parent | 52b14728dd890f8a62bffce8dfece496434c2b41 (diff) |
CLK: TI: 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 <rogerq@ti.com>
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Tested-by: Nishanth Menon <nm@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
Diffstat (limited to 'drivers/clk')
-rw-r--r-- | drivers/clk/ti/clk-54xx.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/drivers/clk/ti/clk-54xx.c b/drivers/clk/ti/clk-54xx.c index c876e6ee57b3..0ef9f581286b 100644 --- a/drivers/clk/ti/clk-54xx.c +++ b/drivers/clk/ti/clk-54xx.c | |||
@@ -19,6 +19,12 @@ | |||
19 | 19 | ||
20 | #define OMAP5_DPLL_ABE_DEFFREQ 98304000 | 20 | #define OMAP5_DPLL_ABE_DEFFREQ 98304000 |
21 | 21 | ||
22 | /* | ||
23 | * OMAP543x TRM, section "3.6.3.9.5 DPLL_USB Preferred Settings" | ||
24 | * states it must be at 960MHz | ||
25 | */ | ||
26 | #define OMAP5_DPLL_USB_DEFFREQ 960000000 | ||
27 | |||
22 | static struct ti_dt_clk omap54xx_clks[] = { | 28 | static struct ti_dt_clk omap54xx_clks[] = { |
23 | DT_CLK(NULL, "pad_clks_src_ck", "pad_clks_src_ck"), | 29 | DT_CLK(NULL, "pad_clks_src_ck", "pad_clks_src_ck"), |
24 | DT_CLK(NULL, "pad_clks_ck", "pad_clks_ck"), | 30 | DT_CLK(NULL, "pad_clks_ck", "pad_clks_ck"), |
@@ -220,7 +226,7 @@ static struct ti_dt_clk omap54xx_clks[] = { | |||
220 | int __init omap5xxx_dt_clk_init(void) | 226 | int __init omap5xxx_dt_clk_init(void) |
221 | { | 227 | { |
222 | int rc; | 228 | int rc; |
223 | struct clk *abe_dpll_ref, *abe_dpll, *sys_32k_ck; | 229 | struct clk *abe_dpll_ref, *abe_dpll, *sys_32k_ck, *usb_dpll; |
224 | 230 | ||
225 | ti_dt_clocks_register(omap54xx_clks); | 231 | ti_dt_clocks_register(omap54xx_clks); |
226 | 232 | ||
@@ -235,5 +241,15 @@ int __init omap5xxx_dt_clk_init(void) | |||
235 | if (rc) | 241 | if (rc) |
236 | pr_err("%s: failed to configure ABE DPLL!\n", __func__); | 242 | pr_err("%s: failed to configure ABE DPLL!\n", __func__); |
237 | 243 | ||
244 | usb_dpll = clk_get_sys(NULL, "dpll_usb_ck"); | ||
245 | rc = clk_set_rate(usb_dpll, OMAP5_DPLL_USB_DEFFREQ); | ||
246 | if (rc) | ||
247 | pr_err("%s: failed to configure USB DPLL!\n", __func__); | ||
248 | |||
249 | usb_dpll = clk_get_sys(NULL, "dpll_usb_m2_ck"); | ||
250 | rc = clk_set_rate(usb_dpll, OMAP5_DPLL_USB_DEFFREQ/2); | ||
251 | if (rc) | ||
252 | pr_err("%s: failed to set USB_DPLL M2 OUT\n", __func__); | ||
253 | |||
238 | return 0; | 254 | return 0; |
239 | } | 255 | } |