diff options
Diffstat (limited to 'arch/arm/mach-omap2/clock44xx_data.c')
-rw-r--r-- | arch/arm/mach-omap2/clock44xx_data.c | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-omap2/clock44xx_data.c index 946bf04a956d..cbf9b68d4b94 100644 --- a/arch/arm/mach-omap2/clock44xx_data.c +++ b/arch/arm/mach-omap2/clock44xx_data.c | |||
@@ -270,8 +270,8 @@ static struct clk dpll_abe_ck = { | |||
270 | .dpll_data = &dpll_abe_dd, | 270 | .dpll_data = &dpll_abe_dd, |
271 | .init = &omap2_init_dpll_parent, | 271 | .init = &omap2_init_dpll_parent, |
272 | .ops = &clkops_omap3_noncore_dpll_ops, | 272 | .ops = &clkops_omap3_noncore_dpll_ops, |
273 | .recalc = &omap3_dpll_recalc, | 273 | .recalc = &omap4_dpll_regm4xen_recalc, |
274 | .round_rate = &omap2_dpll_round_rate, | 274 | .round_rate = &omap4_dpll_regm4xen_round_rate, |
275 | .set_rate = &omap3_noncore_dpll_set_rate, | 275 | .set_rate = &omap3_noncore_dpll_set_rate, |
276 | }; | 276 | }; |
277 | 277 | ||
@@ -1195,11 +1195,25 @@ static struct clk l4_wkup_clk_mux_ck = { | |||
1195 | .recalc = &omap2_clksel_recalc, | 1195 | .recalc = &omap2_clksel_recalc, |
1196 | }; | 1196 | }; |
1197 | 1197 | ||
1198 | static const struct clksel_rate div2_2to1_rates[] = { | ||
1199 | { .div = 1, .val = 1, .flags = RATE_IN_4430 }, | ||
1200 | { .div = 2, .val = 0, .flags = RATE_IN_4430 }, | ||
1201 | { .div = 0 }, | ||
1202 | }; | ||
1203 | |||
1204 | static const struct clksel ocp_abe_iclk_div[] = { | ||
1205 | { .parent = &aess_fclk, .rates = div2_2to1_rates }, | ||
1206 | { .parent = NULL }, | ||
1207 | }; | ||
1208 | |||
1198 | static struct clk ocp_abe_iclk = { | 1209 | static struct clk ocp_abe_iclk = { |
1199 | .name = "ocp_abe_iclk", | 1210 | .name = "ocp_abe_iclk", |
1200 | .parent = &aess_fclk, | 1211 | .parent = &aess_fclk, |
1212 | .clksel = ocp_abe_iclk_div, | ||
1213 | .clksel_reg = OMAP4430_CM1_ABE_AESS_CLKCTRL, | ||
1214 | .clksel_mask = OMAP4430_CLKSEL_AESS_FCLK_MASK, | ||
1201 | .ops = &clkops_null, | 1215 | .ops = &clkops_null, |
1202 | .recalc = &followparent_recalc, | 1216 | .recalc = &omap2_clksel_recalc, |
1203 | }; | 1217 | }; |
1204 | 1218 | ||
1205 | static struct clk per_abe_24m_fclk = { | 1219 | static struct clk per_abe_24m_fclk = { |
@@ -1398,9 +1412,9 @@ static struct clk dss_dss_clk = { | |||
1398 | }; | 1412 | }; |
1399 | 1413 | ||
1400 | static const struct clksel_rate div3_8to32_rates[] = { | 1414 | static const struct clksel_rate div3_8to32_rates[] = { |
1401 | { .div = 8, .val = 0, .flags = RATE_IN_44XX }, | 1415 | { .div = 8, .val = 0, .flags = RATE_IN_4460 }, |
1402 | { .div = 16, .val = 1, .flags = RATE_IN_44XX }, | 1416 | { .div = 16, .val = 1, .flags = RATE_IN_4460 }, |
1403 | { .div = 32, .val = 2, .flags = RATE_IN_44XX }, | 1417 | { .div = 32, .val = 2, .flags = RATE_IN_4460 }, |
1404 | { .div = 0 }, | 1418 | { .div = 0 }, |
1405 | }; | 1419 | }; |
1406 | 1420 | ||
@@ -3403,12 +3417,12 @@ int __init omap4xxx_clk_init(void) | |||
3403 | struct omap_clk *c; | 3417 | struct omap_clk *c; |
3404 | u32 cpu_clkflg; | 3418 | u32 cpu_clkflg; |
3405 | 3419 | ||
3406 | if (cpu_is_omap44xx()) { | 3420 | if (cpu_is_omap443x()) { |
3407 | cpu_mask = RATE_IN_4430; | 3421 | cpu_mask = RATE_IN_4430; |
3408 | cpu_clkflg = CK_443X; | 3422 | cpu_clkflg = CK_443X; |
3409 | } else if (cpu_is_omap446x()) { | 3423 | } else if (cpu_is_omap446x()) { |
3410 | cpu_mask = RATE_IN_4460; | 3424 | cpu_mask = RATE_IN_4460 | RATE_IN_4430; |
3411 | cpu_clkflg = CK_446X; | 3425 | cpu_clkflg = CK_446X | CK_443X; |
3412 | } else { | 3426 | } else { |
3413 | return 0; | 3427 | return 0; |
3414 | } | 3428 | } |