aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThara Gopinath <thara@ti.com>2010-12-21 23:08:13 -0500
committerPaul Walmsley <paul@pwsan.com>2010-12-21 23:08:13 -0500
commit032b5a7e3aa7dca8a13a79ff6a59232d307552a3 (patch)
tree476eae99c60539910434db6c1b8815784541c448
parentae4b4fc1bb59ad8802800a8103a6519acadcc9cf (diff)
OMAP4: clock data: Add missing DPLL x2 clock nodes
This patch extends the OMAP4 clock data to include various x2 clock nodes between DPLL and HS dividers as the clock framework skips a x2 while calculating the dpll locked frequency. The clock database extensions are autogenerated using the scripts maintained by Benoit Cousson. Signed-off-by: Benoit Cousson <b-cousson@ti.com> Signed-off-by: Thara Gopinath <thara@ti.com> [paul@pwsan.com: fixed merge conflicts against v2.6.37-rc5; dropped dpll_mpu_x2_ck on advice from BenoƮt] Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: Rajendra Nayak <rnayak@ti.com>
-rw-r--r--arch/arm/mach-omap2/clock44xx_data.c415
1 files changed, 240 insertions, 175 deletions
diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-omap2/clock44xx_data.c
index 305019c44108..7c8d7f485603 100644
--- a/arch/arm/mach-omap2/clock44xx_data.c
+++ b/arch/arm/mach-omap2/clock44xx_data.c
@@ -275,11 +275,63 @@ static struct clk dpll_abe_ck = {
275 .set_rate = &omap3_noncore_dpll_set_rate, 275 .set_rate = &omap3_noncore_dpll_set_rate,
276}; 276};
277 277
278static struct clk dpll_abe_x2_ck = {
279 .name = "dpll_abe_x2_ck",
280 .parent = &dpll_abe_ck,
281 .ops = &clkops_null,
282 .recalc = &omap3_clkoutx2_recalc,
283};
284
285static const struct clksel_rate div31_1to31_rates[] = {
286 { .div = 1, .val = 1, .flags = RATE_IN_4430 },
287 { .div = 2, .val = 2, .flags = RATE_IN_4430 },
288 { .div = 3, .val = 3, .flags = RATE_IN_4430 },
289 { .div = 4, .val = 4, .flags = RATE_IN_4430 },
290 { .div = 5, .val = 5, .flags = RATE_IN_4430 },
291 { .div = 6, .val = 6, .flags = RATE_IN_4430 },
292 { .div = 7, .val = 7, .flags = RATE_IN_4430 },
293 { .div = 8, .val = 8, .flags = RATE_IN_4430 },
294 { .div = 9, .val = 9, .flags = RATE_IN_4430 },
295 { .div = 10, .val = 10, .flags = RATE_IN_4430 },
296 { .div = 11, .val = 11, .flags = RATE_IN_4430 },
297 { .div = 12, .val = 12, .flags = RATE_IN_4430 },
298 { .div = 13, .val = 13, .flags = RATE_IN_4430 },
299 { .div = 14, .val = 14, .flags = RATE_IN_4430 },
300 { .div = 15, .val = 15, .flags = RATE_IN_4430 },
301 { .div = 16, .val = 16, .flags = RATE_IN_4430 },
302 { .div = 17, .val = 17, .flags = RATE_IN_4430 },
303 { .div = 18, .val = 18, .flags = RATE_IN_4430 },
304 { .div = 19, .val = 19, .flags = RATE_IN_4430 },
305 { .div = 20, .val = 20, .flags = RATE_IN_4430 },
306 { .div = 21, .val = 21, .flags = RATE_IN_4430 },
307 { .div = 22, .val = 22, .flags = RATE_IN_4430 },
308 { .div = 23, .val = 23, .flags = RATE_IN_4430 },
309 { .div = 24, .val = 24, .flags = RATE_IN_4430 },
310 { .div = 25, .val = 25, .flags = RATE_IN_4430 },
311 { .div = 26, .val = 26, .flags = RATE_IN_4430 },
312 { .div = 27, .val = 27, .flags = RATE_IN_4430 },
313 { .div = 28, .val = 28, .flags = RATE_IN_4430 },
314 { .div = 29, .val = 29, .flags = RATE_IN_4430 },
315 { .div = 30, .val = 30, .flags = RATE_IN_4430 },
316 { .div = 31, .val = 31, .flags = RATE_IN_4430 },
317 { .div = 0 },
318};
319
320static const struct clksel dpll_abe_m2x2_div[] = {
321 { .parent = &dpll_abe_x2_ck, .rates = div31_1to31_rates },
322 { .parent = NULL },
323};
324
278static struct clk dpll_abe_m2x2_ck = { 325static struct clk dpll_abe_m2x2_ck = {
279 .name = "dpll_abe_m2x2_ck", 326 .name = "dpll_abe_m2x2_ck",
280 .parent = &dpll_abe_ck, 327 .parent = &dpll_abe_x2_ck,
328 .clksel = dpll_abe_m2x2_div,
329 .clksel_reg = OMAP4430_CM_DIV_M2_DPLL_ABE,
330 .clksel_mask = OMAP4430_DPLL_CLKOUT_DIV_MASK,
281 .ops = &clkops_null, 331 .ops = &clkops_null,
282 .recalc = &followparent_recalc, 332 .recalc = &omap2_clksel_recalc,
333 .round_rate = &omap2_clksel_round_rate,
334 .set_rate = &omap2_clksel_set_rate,
283}; 335};
284 336
285static struct clk abe_24m_fclk = { 337static struct clk abe_24m_fclk = {
@@ -336,50 +388,10 @@ static struct clk aess_fclk = {
336 .set_rate = &omap2_clksel_set_rate, 388 .set_rate = &omap2_clksel_set_rate,
337}; 389};
338 390
339static const struct clksel_rate div31_1to31_rates[] = { 391static struct clk dpll_abe_m3x2_ck = {
340 { .div = 1, .val = 1, .flags = RATE_IN_4430 }, 392 .name = "dpll_abe_m3x2_ck",
341 { .div = 2, .val = 2, .flags = RATE_IN_4430 }, 393 .parent = &dpll_abe_x2_ck,
342 { .div = 3, .val = 3, .flags = RATE_IN_4430 }, 394 .clksel = dpll_abe_m2x2_div,
343 { .div = 4, .val = 4, .flags = RATE_IN_4430 },
344 { .div = 5, .val = 5, .flags = RATE_IN_4430 },
345 { .div = 6, .val = 6, .flags = RATE_IN_4430 },
346 { .div = 7, .val = 7, .flags = RATE_IN_4430 },
347 { .div = 8, .val = 8, .flags = RATE_IN_4430 },
348 { .div = 9, .val = 9, .flags = RATE_IN_4430 },
349 { .div = 10, .val = 10, .flags = RATE_IN_4430 },
350 { .div = 11, .val = 11, .flags = RATE_IN_4430 },
351 { .div = 12, .val = 12, .flags = RATE_IN_4430 },
352 { .div = 13, .val = 13, .flags = RATE_IN_4430 },
353 { .div = 14, .val = 14, .flags = RATE_IN_4430 },
354 { .div = 15, .val = 15, .flags = RATE_IN_4430 },
355 { .div = 16, .val = 16, .flags = RATE_IN_4430 },
356 { .div = 17, .val = 17, .flags = RATE_IN_4430 },
357 { .div = 18, .val = 18, .flags = RATE_IN_4430 },
358 { .div = 19, .val = 19, .flags = RATE_IN_4430 },
359 { .div = 20, .val = 20, .flags = RATE_IN_4430 },
360 { .div = 21, .val = 21, .flags = RATE_IN_4430 },
361 { .div = 22, .val = 22, .flags = RATE_IN_4430 },
362 { .div = 23, .val = 23, .flags = RATE_IN_4430 },
363 { .div = 24, .val = 24, .flags = RATE_IN_4430 },
364 { .div = 25, .val = 25, .flags = RATE_IN_4430 },
365 { .div = 26, .val = 26, .flags = RATE_IN_4430 },
366 { .div = 27, .val = 27, .flags = RATE_IN_4430 },
367 { .div = 28, .val = 28, .flags = RATE_IN_4430 },
368 { .div = 29, .val = 29, .flags = RATE_IN_4430 },
369 { .div = 30, .val = 30, .flags = RATE_IN_4430 },
370 { .div = 31, .val = 31, .flags = RATE_IN_4430 },
371 { .div = 0 },
372};
373
374static const struct clksel dpll_abe_m3_div[] = {
375 { .parent = &dpll_abe_ck, .rates = div31_1to31_rates },
376 { .parent = NULL },
377};
378
379static struct clk dpll_abe_m3_ck = {
380 .name = "dpll_abe_m3_ck",
381 .parent = &dpll_abe_ck,
382 .clksel = dpll_abe_m3_div,
383 .clksel_reg = OMAP4430_CM_DIV_M3_DPLL_ABE, 395 .clksel_reg = OMAP4430_CM_DIV_M3_DPLL_ABE,
384 .clksel_mask = OMAP4430_DPLL_CLKOUTHIF_DIV_MASK, 396 .clksel_mask = OMAP4430_DPLL_CLKOUTHIF_DIV_MASK,
385 .ops = &clkops_null, 397 .ops = &clkops_null,
@@ -390,7 +402,7 @@ static struct clk dpll_abe_m3_ck = {
390 402
391static const struct clksel core_hsd_byp_clk_mux_sel[] = { 403static const struct clksel core_hsd_byp_clk_mux_sel[] = {
392 { .parent = &sys_clkin_ck, .rates = div_1_0_rates }, 404 { .parent = &sys_clkin_ck, .rates = div_1_0_rates },
393 { .parent = &dpll_abe_m3_ck, .rates = div_1_1_rates }, 405 { .parent = &dpll_abe_m3x2_ck, .rates = div_1_1_rates },
394 { .parent = NULL }, 406 { .parent = NULL },
395}; 407};
396 408
@@ -434,15 +446,22 @@ static struct clk dpll_core_ck = {
434 .recalc = &omap3_dpll_recalc, 446 .recalc = &omap3_dpll_recalc,
435}; 447};
436 448
437static const struct clksel dpll_core_m6_div[] = { 449static struct clk dpll_core_x2_ck = {
438 { .parent = &dpll_core_ck, .rates = div31_1to31_rates }, 450 .name = "dpll_core_x2_ck",
451 .parent = &dpll_core_ck,
452 .ops = &clkops_null,
453 .recalc = &omap3_clkoutx2_recalc,
454};
455
456static const struct clksel dpll_core_m6x2_div[] = {
457 { .parent = &dpll_core_x2_ck, .rates = div31_1to31_rates },
439 { .parent = NULL }, 458 { .parent = NULL },
440}; 459};
441 460
442static struct clk dpll_core_m6_ck = { 461static struct clk dpll_core_m6x2_ck = {
443 .name = "dpll_core_m6_ck", 462 .name = "dpll_core_m6x2_ck",
444 .parent = &dpll_core_ck, 463 .parent = &dpll_core_x2_ck,
445 .clksel = dpll_core_m6_div, 464 .clksel = dpll_core_m6x2_div,
446 .clksel_reg = OMAP4430_CM_DIV_M6_DPLL_CORE, 465 .clksel_reg = OMAP4430_CM_DIV_M6_DPLL_CORE,
447 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT3_DIV_MASK, 466 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT3_DIV_MASK,
448 .ops = &clkops_null, 467 .ops = &clkops_null,
@@ -453,7 +472,7 @@ static struct clk dpll_core_m6_ck = {
453 472
454static const struct clksel dbgclk_mux_sel[] = { 473static const struct clksel dbgclk_mux_sel[] = {
455 { .parent = &sys_clkin_ck, .rates = div_1_0_rates }, 474 { .parent = &sys_clkin_ck, .rates = div_1_0_rates },
456 { .parent = &dpll_core_m6_ck, .rates = div_1_1_rates }, 475 { .parent = &dpll_core_m6x2_ck, .rates = div_1_1_rates },
457 { .parent = NULL }, 476 { .parent = NULL },
458}; 477};
459 478
@@ -464,10 +483,15 @@ static struct clk dbgclk_mux_ck = {
464 .recalc = &followparent_recalc, 483 .recalc = &followparent_recalc,
465}; 484};
466 485
486static const struct clksel dpll_core_m2_div[] = {
487 { .parent = &dpll_core_ck, .rates = div31_1to31_rates },
488 { .parent = NULL },
489};
490
467static struct clk dpll_core_m2_ck = { 491static struct clk dpll_core_m2_ck = {
468 .name = "dpll_core_m2_ck", 492 .name = "dpll_core_m2_ck",
469 .parent = &dpll_core_ck, 493 .parent = &dpll_core_ck,
470 .clksel = dpll_core_m6_div, 494 .clksel = dpll_core_m2_div,
471 .clksel_reg = OMAP4430_CM_DIV_M2_DPLL_CORE, 495 .clksel_reg = OMAP4430_CM_DIV_M2_DPLL_CORE,
472 .clksel_mask = OMAP4430_DPLL_CLKOUT_DIV_MASK, 496 .clksel_mask = OMAP4430_DPLL_CLKOUT_DIV_MASK,
473 .ops = &clkops_null, 497 .ops = &clkops_null,
@@ -483,10 +507,10 @@ static struct clk ddrphy_ck = {
483 .recalc = &followparent_recalc, 507 .recalc = &followparent_recalc,
484}; 508};
485 509
486static struct clk dpll_core_m5_ck = { 510static struct clk dpll_core_m5x2_ck = {
487 .name = "dpll_core_m5_ck", 511 .name = "dpll_core_m5x2_ck",
488 .parent = &dpll_core_ck, 512 .parent = &dpll_core_x2_ck,
489 .clksel = dpll_core_m6_div, 513 .clksel = dpll_core_m6x2_div,
490 .clksel_reg = OMAP4430_CM_DIV_M5_DPLL_CORE, 514 .clksel_reg = OMAP4430_CM_DIV_M5_DPLL_CORE,
491 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT2_DIV_MASK, 515 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT2_DIV_MASK,
492 .ops = &clkops_null, 516 .ops = &clkops_null,
@@ -496,13 +520,13 @@ static struct clk dpll_core_m5_ck = {
496}; 520};
497 521
498static const struct clksel div_core_div[] = { 522static const struct clksel div_core_div[] = {
499 { .parent = &dpll_core_m5_ck, .rates = div2_1to2_rates }, 523 { .parent = &dpll_core_m5x2_ck, .rates = div2_1to2_rates },
500 { .parent = NULL }, 524 { .parent = NULL },
501}; 525};
502 526
503static struct clk div_core_ck = { 527static struct clk div_core_ck = {
504 .name = "div_core_ck", 528 .name = "div_core_ck",
505 .parent = &dpll_core_m5_ck, 529 .parent = &dpll_core_m5x2_ck,
506 .clksel = div_core_div, 530 .clksel = div_core_div,
507 .clksel_reg = OMAP4430_CM_CLKSEL_CORE, 531 .clksel_reg = OMAP4430_CM_CLKSEL_CORE,
508 .clksel_mask = OMAP4430_CLKSEL_CORE_MASK, 532 .clksel_mask = OMAP4430_CLKSEL_CORE_MASK,
@@ -521,13 +545,13 @@ static const struct clksel_rate div4_1to8_rates[] = {
521}; 545};
522 546
523static const struct clksel div_iva_hs_clk_div[] = { 547static const struct clksel div_iva_hs_clk_div[] = {
524 { .parent = &dpll_core_m5_ck, .rates = div4_1to8_rates }, 548 { .parent = &dpll_core_m5x2_ck, .rates = div4_1to8_rates },
525 { .parent = NULL }, 549 { .parent = NULL },
526}; 550};
527 551
528static struct clk div_iva_hs_clk = { 552static struct clk div_iva_hs_clk = {
529 .name = "div_iva_hs_clk", 553 .name = "div_iva_hs_clk",
530 .parent = &dpll_core_m5_ck, 554 .parent = &dpll_core_m5x2_ck,
531 .clksel = div_iva_hs_clk_div, 555 .clksel = div_iva_hs_clk_div,
532 .clksel_reg = OMAP4430_CM_BYPCLK_DPLL_IVA, 556 .clksel_reg = OMAP4430_CM_BYPCLK_DPLL_IVA,
533 .clksel_mask = OMAP4430_CLKSEL_0_1_MASK, 557 .clksel_mask = OMAP4430_CLKSEL_0_1_MASK,
@@ -539,7 +563,7 @@ static struct clk div_iva_hs_clk = {
539 563
540static struct clk div_mpu_hs_clk = { 564static struct clk div_mpu_hs_clk = {
541 .name = "div_mpu_hs_clk", 565 .name = "div_mpu_hs_clk",
542 .parent = &dpll_core_m5_ck, 566 .parent = &dpll_core_m5x2_ck,
543 .clksel = div_iva_hs_clk_div, 567 .clksel = div_iva_hs_clk_div,
544 .clksel_reg = OMAP4430_CM_BYPCLK_DPLL_MPU, 568 .clksel_reg = OMAP4430_CM_BYPCLK_DPLL_MPU,
545 .clksel_mask = OMAP4430_CLKSEL_0_1_MASK, 569 .clksel_mask = OMAP4430_CLKSEL_0_1_MASK,
@@ -549,10 +573,10 @@ static struct clk div_mpu_hs_clk = {
549 .set_rate = &omap2_clksel_set_rate, 573 .set_rate = &omap2_clksel_set_rate,
550}; 574};
551 575
552static struct clk dpll_core_m4_ck = { 576static struct clk dpll_core_m4x2_ck = {
553 .name = "dpll_core_m4_ck", 577 .name = "dpll_core_m4x2_ck",
554 .parent = &dpll_core_ck, 578 .parent = &dpll_core_x2_ck,
555 .clksel = dpll_core_m6_div, 579 .clksel = dpll_core_m6x2_div,
556 .clksel_reg = OMAP4430_CM_DIV_M4_DPLL_CORE, 580 .clksel_reg = OMAP4430_CM_DIV_M4_DPLL_CORE,
557 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT1_DIV_MASK, 581 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT1_DIV_MASK,
558 .ops = &clkops_null, 582 .ops = &clkops_null,
@@ -563,15 +587,20 @@ static struct clk dpll_core_m4_ck = {
563 587
564static struct clk dll_clk_div_ck = { 588static struct clk dll_clk_div_ck = {
565 .name = "dll_clk_div_ck", 589 .name = "dll_clk_div_ck",
566 .parent = &dpll_core_m4_ck, 590 .parent = &dpll_core_m4x2_ck,
567 .ops = &clkops_null, 591 .ops = &clkops_null,
568 .recalc = &followparent_recalc, 592 .recalc = &followparent_recalc,
569}; 593};
570 594
595static const struct clksel dpll_abe_m2_div[] = {
596 { .parent = &dpll_abe_ck, .rates = div31_1to31_rates },
597 { .parent = NULL },
598};
599
571static struct clk dpll_abe_m2_ck = { 600static struct clk dpll_abe_m2_ck = {
572 .name = "dpll_abe_m2_ck", 601 .name = "dpll_abe_m2_ck",
573 .parent = &dpll_abe_ck, 602 .parent = &dpll_abe_ck,
574 .clksel = dpll_abe_m3_div, 603 .clksel = dpll_abe_m2_div,
575 .clksel_reg = OMAP4430_CM_DIV_M2_DPLL_ABE, 604 .clksel_reg = OMAP4430_CM_DIV_M2_DPLL_ABE,
576 .clksel_mask = OMAP4430_DPLL_CLKOUT_DIV_MASK, 605 .clksel_mask = OMAP4430_DPLL_CLKOUT_DIV_MASK,
577 .ops = &clkops_null, 606 .ops = &clkops_null,
@@ -580,10 +609,10 @@ static struct clk dpll_abe_m2_ck = {
580 .set_rate = &omap2_clksel_set_rate, 609 .set_rate = &omap2_clksel_set_rate,
581}; 610};
582 611
583static struct clk dpll_core_m3_ck = { 612static struct clk dpll_core_m3x2_ck = {
584 .name = "dpll_core_m3_ck", 613 .name = "dpll_core_m3x2_ck",
585 .parent = &dpll_core_ck, 614 .parent = &dpll_core_x2_ck,
586 .clksel = dpll_core_m6_div, 615 .clksel = dpll_core_m6x2_div,
587 .clksel_reg = OMAP4430_CM_DIV_M3_DPLL_CORE, 616 .clksel_reg = OMAP4430_CM_DIV_M3_DPLL_CORE,
588 .clksel_mask = OMAP4430_DPLL_CLKOUTHIF_DIV_MASK, 617 .clksel_mask = OMAP4430_DPLL_CLKOUTHIF_DIV_MASK,
589 .ops = &clkops_null, 618 .ops = &clkops_null,
@@ -592,10 +621,10 @@ static struct clk dpll_core_m3_ck = {
592 .set_rate = &omap2_clksel_set_rate, 621 .set_rate = &omap2_clksel_set_rate,
593}; 622};
594 623
595static struct clk dpll_core_m7_ck = { 624static struct clk dpll_core_m7x2_ck = {
596 .name = "dpll_core_m7_ck", 625 .name = "dpll_core_m7x2_ck",
597 .parent = &dpll_core_ck, 626 .parent = &dpll_core_x2_ck,
598 .clksel = dpll_core_m6_div, 627 .clksel = dpll_core_m6x2_div,
599 .clksel_reg = OMAP4430_CM_DIV_M7_DPLL_CORE, 628 .clksel_reg = OMAP4430_CM_DIV_M7_DPLL_CORE,
600 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT4_DIV_MASK, 629 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT4_DIV_MASK,
601 .ops = &clkops_null, 630 .ops = &clkops_null,
@@ -648,15 +677,22 @@ static struct clk dpll_iva_ck = {
648 .set_rate = &omap3_noncore_dpll_set_rate, 677 .set_rate = &omap3_noncore_dpll_set_rate,
649}; 678};
650 679
651static const struct clksel dpll_iva_m4_div[] = { 680static struct clk dpll_iva_x2_ck = {
652 { .parent = &dpll_iva_ck, .rates = div31_1to31_rates }, 681 .name = "dpll_iva_x2_ck",
682 .parent = &dpll_iva_ck,
683 .ops = &clkops_null,
684 .recalc = &omap3_clkoutx2_recalc,
685};
686
687static const struct clksel dpll_iva_m4x2_div[] = {
688 { .parent = &dpll_iva_x2_ck, .rates = div31_1to31_rates },
653 { .parent = NULL }, 689 { .parent = NULL },
654}; 690};
655 691
656static struct clk dpll_iva_m4_ck = { 692static struct clk dpll_iva_m4x2_ck = {
657 .name = "dpll_iva_m4_ck", 693 .name = "dpll_iva_m4x2_ck",
658 .parent = &dpll_iva_ck, 694 .parent = &dpll_iva_x2_ck,
659 .clksel = dpll_iva_m4_div, 695 .clksel = dpll_iva_m4x2_div,
660 .clksel_reg = OMAP4430_CM_DIV_M4_DPLL_IVA, 696 .clksel_reg = OMAP4430_CM_DIV_M4_DPLL_IVA,
661 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT1_DIV_MASK, 697 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT1_DIV_MASK,
662 .ops = &clkops_null, 698 .ops = &clkops_null,
@@ -665,10 +701,10 @@ static struct clk dpll_iva_m4_ck = {
665 .set_rate = &omap2_clksel_set_rate, 701 .set_rate = &omap2_clksel_set_rate,
666}; 702};
667 703
668static struct clk dpll_iva_m5_ck = { 704static struct clk dpll_iva_m5x2_ck = {
669 .name = "dpll_iva_m5_ck", 705 .name = "dpll_iva_m5x2_ck",
670 .parent = &dpll_iva_ck, 706 .parent = &dpll_iva_x2_ck,
671 .clksel = dpll_iva_m4_div, 707 .clksel = dpll_iva_m4x2_div,
672 .clksel_reg = OMAP4430_CM_DIV_M5_DPLL_IVA, 708 .clksel_reg = OMAP4430_CM_DIV_M5_DPLL_IVA,
673 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT2_DIV_MASK, 709 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT2_DIV_MASK,
674 .ops = &clkops_null, 710 .ops = &clkops_null,
@@ -727,7 +763,7 @@ static struct clk dpll_mpu_m2_ck = {
727 763
728static struct clk per_hs_clk_div_ck = { 764static struct clk per_hs_clk_div_ck = {
729 .name = "per_hs_clk_div_ck", 765 .name = "per_hs_clk_div_ck",
730 .parent = &dpll_abe_m3_ck, 766 .parent = &dpll_abe_m3x2_ck,
731 .ops = &clkops_null, 767 .ops = &clkops_null,
732 .recalc = &followparent_recalc, 768 .recalc = &followparent_recalc,
733}; 769};
@@ -797,17 +833,34 @@ static struct clk dpll_per_m2_ck = {
797 .set_rate = &omap2_clksel_set_rate, 833 .set_rate = &omap2_clksel_set_rate,
798}; 834};
799 835
836static struct clk dpll_per_x2_ck = {
837 .name = "dpll_per_x2_ck",
838 .parent = &dpll_per_ck,
839 .ops = &clkops_null,
840 .recalc = &omap3_clkoutx2_recalc,
841};
842
843static const struct clksel dpll_per_m2x2_div[] = {
844 { .parent = &dpll_per_x2_ck, .rates = div31_1to31_rates },
845 { .parent = NULL },
846};
847
800static struct clk dpll_per_m2x2_ck = { 848static struct clk dpll_per_m2x2_ck = {
801 .name = "dpll_per_m2x2_ck", 849 .name = "dpll_per_m2x2_ck",
802 .parent = &dpll_per_ck, 850 .parent = &dpll_per_x2_ck,
851 .clksel = dpll_per_m2x2_div,
852 .clksel_reg = OMAP4430_CM_DIV_M2_DPLL_PER,
853 .clksel_mask = OMAP4430_DPLL_CLKOUT_DIV_MASK,
803 .ops = &clkops_null, 854 .ops = &clkops_null,
804 .recalc = &followparent_recalc, 855 .recalc = &omap2_clksel_recalc,
856 .round_rate = &omap2_clksel_round_rate,
857 .set_rate = &omap2_clksel_set_rate,
805}; 858};
806 859
807static struct clk dpll_per_m3_ck = { 860static struct clk dpll_per_m3x2_ck = {
808 .name = "dpll_per_m3_ck", 861 .name = "dpll_per_m3x2_ck",
809 .parent = &dpll_per_ck, 862 .parent = &dpll_per_x2_ck,
810 .clksel = dpll_per_m2_div, 863 .clksel = dpll_per_m2x2_div,
811 .clksel_reg = OMAP4430_CM_DIV_M3_DPLL_PER, 864 .clksel_reg = OMAP4430_CM_DIV_M3_DPLL_PER,
812 .clksel_mask = OMAP4430_DPLL_CLKOUTHIF_DIV_MASK, 865 .clksel_mask = OMAP4430_DPLL_CLKOUTHIF_DIV_MASK,
813 .ops = &clkops_null, 866 .ops = &clkops_null,
@@ -816,10 +869,10 @@ static struct clk dpll_per_m3_ck = {
816 .set_rate = &omap2_clksel_set_rate, 869 .set_rate = &omap2_clksel_set_rate,
817}; 870};
818 871
819static struct clk dpll_per_m4_ck = { 872static struct clk dpll_per_m4x2_ck = {
820 .name = "dpll_per_m4_ck", 873 .name = "dpll_per_m4x2_ck",
821 .parent = &dpll_per_ck, 874 .parent = &dpll_per_x2_ck,
822 .clksel = dpll_per_m2_div, 875 .clksel = dpll_per_m2x2_div,
823 .clksel_reg = OMAP4430_CM_DIV_M4_DPLL_PER, 876 .clksel_reg = OMAP4430_CM_DIV_M4_DPLL_PER,
824 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT1_DIV_MASK, 877 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT1_DIV_MASK,
825 .ops = &clkops_null, 878 .ops = &clkops_null,
@@ -828,10 +881,10 @@ static struct clk dpll_per_m4_ck = {
828 .set_rate = &omap2_clksel_set_rate, 881 .set_rate = &omap2_clksel_set_rate,
829}; 882};
830 883
831static struct clk dpll_per_m5_ck = { 884static struct clk dpll_per_m5x2_ck = {
832 .name = "dpll_per_m5_ck", 885 .name = "dpll_per_m5x2_ck",
833 .parent = &dpll_per_ck, 886 .parent = &dpll_per_x2_ck,
834 .clksel = dpll_per_m2_div, 887 .clksel = dpll_per_m2x2_div,
835 .clksel_reg = OMAP4430_CM_DIV_M5_DPLL_PER, 888 .clksel_reg = OMAP4430_CM_DIV_M5_DPLL_PER,
836 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT2_DIV_MASK, 889 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT2_DIV_MASK,
837 .ops = &clkops_null, 890 .ops = &clkops_null,
@@ -840,10 +893,10 @@ static struct clk dpll_per_m5_ck = {
840 .set_rate = &omap2_clksel_set_rate, 893 .set_rate = &omap2_clksel_set_rate,
841}; 894};
842 895
843static struct clk dpll_per_m6_ck = { 896static struct clk dpll_per_m6x2_ck = {
844 .name = "dpll_per_m6_ck", 897 .name = "dpll_per_m6x2_ck",
845 .parent = &dpll_per_ck, 898 .parent = &dpll_per_x2_ck,
846 .clksel = dpll_per_m2_div, 899 .clksel = dpll_per_m2x2_div,
847 .clksel_reg = OMAP4430_CM_DIV_M6_DPLL_PER, 900 .clksel_reg = OMAP4430_CM_DIV_M6_DPLL_PER,
848 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT3_DIV_MASK, 901 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT3_DIV_MASK,
849 .ops = &clkops_null, 902 .ops = &clkops_null,
@@ -852,10 +905,10 @@ static struct clk dpll_per_m6_ck = {
852 .set_rate = &omap2_clksel_set_rate, 905 .set_rate = &omap2_clksel_set_rate,
853}; 906};
854 907
855static struct clk dpll_per_m7_ck = { 908static struct clk dpll_per_m7x2_ck = {
856 .name = "dpll_per_m7_ck", 909 .name = "dpll_per_m7x2_ck",
857 .parent = &dpll_per_ck, 910 .parent = &dpll_per_x2_ck,
858 .clksel = dpll_per_m2_div, 911 .clksel = dpll_per_m2x2_div,
859 .clksel_reg = OMAP4430_CM_DIV_M7_DPLL_PER, 912 .clksel_reg = OMAP4430_CM_DIV_M7_DPLL_PER,
860 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT4_DIV_MASK, 913 .clksel_mask = OMAP4430_HSDIVIDER_CLKOUT4_DIV_MASK,
861 .ops = &clkops_null, 914 .ops = &clkops_null,
@@ -895,14 +948,21 @@ static struct clk dpll_unipro_ck = {
895 .set_rate = &omap3_noncore_dpll_set_rate, 948 .set_rate = &omap3_noncore_dpll_set_rate,
896}; 949};
897 950
951static struct clk dpll_unipro_x2_ck = {
952 .name = "dpll_unipro_x2_ck",
953 .parent = &dpll_unipro_ck,
954 .ops = &clkops_null,
955 .recalc = &omap3_clkoutx2_recalc,
956};
957
898static const struct clksel dpll_unipro_m2x2_div[] = { 958static const struct clksel dpll_unipro_m2x2_div[] = {
899 { .parent = &dpll_unipro_ck, .rates = div31_1to31_rates }, 959 { .parent = &dpll_unipro_x2_ck, .rates = div31_1to31_rates },
900 { .parent = NULL }, 960 { .parent = NULL },
901}; 961};
902 962
903static struct clk dpll_unipro_m2x2_ck = { 963static struct clk dpll_unipro_m2x2_ck = {
904 .name = "dpll_unipro_m2x2_ck", 964 .name = "dpll_unipro_m2x2_ck",
905 .parent = &dpll_unipro_ck, 965 .parent = &dpll_unipro_x2_ck,
906 .clksel = dpll_unipro_m2x2_div, 966 .clksel = dpll_unipro_m2x2_div,
907 .clksel_reg = OMAP4430_CM_DIV_M2_DPLL_UNIPRO, 967 .clksel_reg = OMAP4430_CM_DIV_M2_DPLL_UNIPRO,
908 .clksel_mask = OMAP4430_DPLL_CLKOUT_DIV_MASK, 968 .clksel_mask = OMAP4430_DPLL_CLKOUT_DIV_MASK,
@@ -914,7 +974,7 @@ static struct clk dpll_unipro_m2x2_ck = {
914 974
915static struct clk usb_hs_clk_div_ck = { 975static struct clk usb_hs_clk_div_ck = {
916 .name = "usb_hs_clk_div_ck", 976 .name = "usb_hs_clk_div_ck",
917 .parent = &dpll_abe_m3_ck, 977 .parent = &dpll_abe_m3x2_ck,
918 .ops = &clkops_null, 978 .ops = &clkops_null,
919 .recalc = &followparent_recalc, 979 .recalc = &followparent_recalc,
920}; 980};
@@ -977,7 +1037,7 @@ static struct clk dpll_usb_m2_ck = {
977 1037
978static const struct clksel ducati_clk_mux_sel[] = { 1038static const struct clksel ducati_clk_mux_sel[] = {
979 { .parent = &div_core_ck, .rates = div_1_0_rates }, 1039 { .parent = &div_core_ck, .rates = div_1_0_rates },
980 { .parent = &dpll_per_m6_ck, .rates = div_1_1_rates }, 1040 { .parent = &dpll_per_m6x2_ck, .rates = div_1_1_rates },
981 { .parent = NULL }, 1041 { .parent = NULL },
982}; 1042};
983 1043
@@ -1050,13 +1110,13 @@ static const struct clksel_rate div2_2to4_rates[] = {
1050}; 1110};
1051 1111
1052static const struct clksel func_64m_fclk_div[] = { 1112static const struct clksel func_64m_fclk_div[] = {
1053 { .parent = &dpll_per_m4_ck, .rates = div2_2to4_rates }, 1113 { .parent = &dpll_per_m4x2_ck, .rates = div2_2to4_rates },
1054 { .parent = NULL }, 1114 { .parent = NULL },
1055}; 1115};
1056 1116
1057static struct clk func_64m_fclk = { 1117static struct clk func_64m_fclk = {
1058 .name = "func_64m_fclk", 1118 .name = "func_64m_fclk",
1059 .parent = &dpll_per_m4_ck, 1119 .parent = &dpll_per_m4x2_ck,
1060 .clksel = func_64m_fclk_div, 1120 .clksel = func_64m_fclk_div,
1061 .clksel_reg = OMAP4430_CM_SCALE_FCLK, 1121 .clksel_reg = OMAP4430_CM_SCALE_FCLK,
1062 .clksel_mask = OMAP4430_SCALE_FCLK_MASK, 1122 .clksel_mask = OMAP4430_SCALE_FCLK_MASK,
@@ -1230,7 +1290,7 @@ static struct clk per_abe_24m_fclk = {
1230 1290
1231static const struct clksel pmd_stm_clock_mux_sel[] = { 1291static const struct clksel pmd_stm_clock_mux_sel[] = {
1232 { .parent = &sys_clkin_ck, .rates = div_1_0_rates }, 1292 { .parent = &sys_clkin_ck, .rates = div_1_0_rates },
1233 { .parent = &dpll_core_m6_ck, .rates = div_1_1_rates }, 1293 { .parent = &dpll_core_m6x2_ck, .rates = div_1_1_rates },
1234 { .parent = &tie_low_clock_ck, .rates = div_1_2_rates }, 1294 { .parent = &tie_low_clock_ck, .rates = div_1_2_rates },
1235 { .parent = NULL }, 1295 { .parent = NULL },
1236}; 1296};
@@ -1364,7 +1424,7 @@ static struct clk dsp_fck = {
1364 .enable_reg = OMAP4430_CM_TESLA_TESLA_CLKCTRL, 1424 .enable_reg = OMAP4430_CM_TESLA_TESLA_CLKCTRL,
1365 .enable_bit = OMAP4430_MODULEMODE_HWCTRL, 1425 .enable_bit = OMAP4430_MODULEMODE_HWCTRL,
1366 .clkdm_name = "tesla_clkdm", 1426 .clkdm_name = "tesla_clkdm",
1367 .parent = &dpll_iva_m4_ck, 1427 .parent = &dpll_iva_m4x2_ck,
1368 .recalc = &followparent_recalc, 1428 .recalc = &followparent_recalc,
1369}; 1429};
1370 1430
@@ -1394,7 +1454,7 @@ static struct clk dss_dss_clk = {
1394 .enable_reg = OMAP4430_CM_DSS_DSS_CLKCTRL, 1454 .enable_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
1395 .enable_bit = OMAP4430_OPTFCLKEN_DSSCLK_SHIFT, 1455 .enable_bit = OMAP4430_OPTFCLKEN_DSSCLK_SHIFT,
1396 .clkdm_name = "l3_dss_clkdm", 1456 .clkdm_name = "l3_dss_clkdm",
1397 .parent = &dpll_per_m5_ck, 1457 .parent = &dpll_per_m5x2_ck,
1398 .recalc = &followparent_recalc, 1458 .recalc = &followparent_recalc,
1399}; 1459};
1400 1460
@@ -1451,14 +1511,14 @@ static struct clk emif2_fck = {
1451}; 1511};
1452 1512
1453static const struct clksel fdif_fclk_div[] = { 1513static const struct clksel fdif_fclk_div[] = {
1454 { .parent = &dpll_per_m4_ck, .rates = div3_1to4_rates }, 1514 { .parent = &dpll_per_m4x2_ck, .rates = div3_1to4_rates },
1455 { .parent = NULL }, 1515 { .parent = NULL },
1456}; 1516};
1457 1517
1458/* Merged fdif_fclk into fdif */ 1518/* Merged fdif_fclk into fdif */
1459static struct clk fdif_fck = { 1519static struct clk fdif_fck = {
1460 .name = "fdif_fck", 1520 .name = "fdif_fck",
1461 .parent = &dpll_per_m4_ck, 1521 .parent = &dpll_per_m4x2_ck,
1462 .clksel = fdif_fclk_div, 1522 .clksel = fdif_fclk_div,
1463 .clksel_reg = OMAP4430_CM_CAM_FDIF_CLKCTRL, 1523 .clksel_reg = OMAP4430_CM_CAM_FDIF_CLKCTRL,
1464 .clksel_mask = OMAP4430_CLKSEL_FCLK_MASK, 1524 .clksel_mask = OMAP4430_CLKSEL_FCLK_MASK,
@@ -1612,15 +1672,15 @@ static struct clk gpmc_ick = {
1612}; 1672};
1613 1673
1614static const struct clksel sgx_clk_mux_sel[] = { 1674static const struct clksel sgx_clk_mux_sel[] = {
1615 { .parent = &dpll_core_m7_ck, .rates = div_1_0_rates }, 1675 { .parent = &dpll_core_m7x2_ck, .rates = div_1_0_rates },
1616 { .parent = &dpll_per_m7_ck, .rates = div_1_1_rates }, 1676 { .parent = &dpll_per_m7x2_ck, .rates = div_1_1_rates },
1617 { .parent = NULL }, 1677 { .parent = NULL },
1618}; 1678};
1619 1679
1620/* Merged sgx_clk_mux into gpu */ 1680/* Merged sgx_clk_mux into gpu */
1621static struct clk gpu_fck = { 1681static struct clk gpu_fck = {
1622 .name = "gpu_fck", 1682 .name = "gpu_fck",
1623 .parent = &dpll_core_m7_ck, 1683 .parent = &dpll_core_m7x2_ck,
1624 .clksel = sgx_clk_mux_sel, 1684 .clksel = sgx_clk_mux_sel,
1625 .init = &omap2_init_clksel_parent, 1685 .init = &omap2_init_clksel_parent,
1626 .clksel_reg = OMAP4430_CM_GFX_GFX_CLKCTRL, 1686 .clksel_reg = OMAP4430_CM_GFX_GFX_CLKCTRL,
@@ -1739,7 +1799,7 @@ static struct clk iva_fck = {
1739 .enable_reg = OMAP4430_CM_IVAHD_IVAHD_CLKCTRL, 1799 .enable_reg = OMAP4430_CM_IVAHD_IVAHD_CLKCTRL,
1740 .enable_bit = OMAP4430_MODULEMODE_HWCTRL, 1800 .enable_bit = OMAP4430_MODULEMODE_HWCTRL,
1741 .clkdm_name = "ivahd_clkdm", 1801 .clkdm_name = "ivahd_clkdm",
1742 .parent = &dpll_iva_m5_ck, 1802 .parent = &dpll_iva_m5x2_ck,
1743 .recalc = &followparent_recalc, 1803 .recalc = &followparent_recalc,
1744}; 1804};
1745 1805
@@ -2103,7 +2163,7 @@ static struct clk sl2if_ick = {
2103 .enable_reg = OMAP4430_CM_IVAHD_SL2_CLKCTRL, 2163 .enable_reg = OMAP4430_CM_IVAHD_SL2_CLKCTRL,
2104 .enable_bit = OMAP4430_MODULEMODE_HWCTRL, 2164 .enable_bit = OMAP4430_MODULEMODE_HWCTRL,
2105 .clkdm_name = "ivahd_clkdm", 2165 .clkdm_name = "ivahd_clkdm",
2106 .parent = &dpll_iva_m5_ck, 2166 .parent = &dpll_iva_m5x2_ck,
2107 .recalc = &followparent_recalc, 2167 .recalc = &followparent_recalc,
2108}; 2168};
2109 2169
@@ -2448,36 +2508,6 @@ static struct clk usb_host_fs_fck = {
2448 .recalc = &followparent_recalc, 2508 .recalc = &followparent_recalc,
2449}; 2509};
2450 2510
2451static struct clk usb_host_hs_utmi_p3_clk = {
2452 .name = "usb_host_hs_utmi_p3_clk",
2453 .ops = &clkops_omap2_dflt,
2454 .enable_reg = OMAP4430_CM_L3INIT_USB_HOST_CLKCTRL,
2455 .enable_bit = OMAP4430_OPTFCLKEN_UTMI_P3_CLK_SHIFT,
2456 .clkdm_name = "l3_init_clkdm",
2457 .parent = &init_60m_fclk,
2458 .recalc = &followparent_recalc,
2459};
2460
2461static struct clk usb_host_hs_hsic60m_p1_clk = {
2462 .name = "usb_host_hs_hsic60m_p1_clk",
2463 .ops = &clkops_omap2_dflt,
2464 .enable_reg = OMAP4430_CM_L3INIT_USB_HOST_CLKCTRL,
2465 .enable_bit = OMAP4430_OPTFCLKEN_HSIC60M_P1_CLK_SHIFT,
2466 .clkdm_name = "l3_init_clkdm",
2467 .parent = &init_60m_fclk,
2468 .recalc = &followparent_recalc,
2469};
2470
2471static struct clk usb_host_hs_hsic60m_p2_clk = {
2472 .name = "usb_host_hs_hsic60m_p2_clk",
2473 .ops = &clkops_omap2_dflt,
2474 .enable_reg = OMAP4430_CM_L3INIT_USB_HOST_CLKCTRL,
2475 .enable_bit = OMAP4430_OPTFCLKEN_HSIC60M_P2_CLK_SHIFT,
2476 .clkdm_name = "l3_init_clkdm",
2477 .parent = &init_60m_fclk,
2478 .recalc = &followparent_recalc,
2479};
2480
2481static const struct clksel utmi_p1_gfclk_sel[] = { 2511static const struct clksel utmi_p1_gfclk_sel[] = {
2482 { .parent = &init_60m_fclk, .rates = div_1_0_rates }, 2512 { .parent = &init_60m_fclk, .rates = div_1_0_rates },
2483 { .parent = &xclk60mhsp1_ck, .rates = div_1_1_rates }, 2513 { .parent = &xclk60mhsp1_ck, .rates = div_1_1_rates },
@@ -2532,6 +2562,16 @@ static struct clk usb_host_hs_utmi_p2_clk = {
2532 .recalc = &followparent_recalc, 2562 .recalc = &followparent_recalc,
2533}; 2563};
2534 2564
2565static struct clk usb_host_hs_utmi_p3_clk = {
2566 .name = "usb_host_hs_utmi_p3_clk",
2567 .ops = &clkops_omap2_dflt,
2568 .enable_reg = OMAP4430_CM_L3INIT_USB_HOST_CLKCTRL,
2569 .enable_bit = OMAP4430_OPTFCLKEN_UTMI_P3_CLK_SHIFT,
2570 .clkdm_name = "l3_init_clkdm",
2571 .parent = &init_60m_fclk,
2572 .recalc = &followparent_recalc,
2573};
2574
2535static struct clk usb_host_hs_hsic480m_p1_clk = { 2575static struct clk usb_host_hs_hsic480m_p1_clk = {
2536 .name = "usb_host_hs_hsic480m_p1_clk", 2576 .name = "usb_host_hs_hsic480m_p1_clk",
2537 .ops = &clkops_omap2_dflt, 2577 .ops = &clkops_omap2_dflt,
@@ -2542,6 +2582,26 @@ static struct clk usb_host_hs_hsic480m_p1_clk = {
2542 .recalc = &followparent_recalc, 2582 .recalc = &followparent_recalc,
2543}; 2583};
2544 2584
2585static struct clk usb_host_hs_hsic60m_p1_clk = {
2586 .name = "usb_host_hs_hsic60m_p1_clk",
2587 .ops = &clkops_omap2_dflt,
2588 .enable_reg = OMAP4430_CM_L3INIT_USB_HOST_CLKCTRL,
2589 .enable_bit = OMAP4430_OPTFCLKEN_HSIC60M_P1_CLK_SHIFT,
2590 .clkdm_name = "l3_init_clkdm",
2591 .parent = &init_60m_fclk,
2592 .recalc = &followparent_recalc,
2593};
2594
2595static struct clk usb_host_hs_hsic60m_p2_clk = {
2596 .name = "usb_host_hs_hsic60m_p2_clk",
2597 .ops = &clkops_omap2_dflt,
2598 .enable_reg = OMAP4430_CM_L3INIT_USB_HOST_CLKCTRL,
2599 .enable_bit = OMAP4430_OPTFCLKEN_HSIC60M_P2_CLK_SHIFT,
2600 .clkdm_name = "l3_init_clkdm",
2601 .parent = &init_60m_fclk,
2602 .recalc = &followparent_recalc,
2603};
2604
2545static struct clk usb_host_hs_hsic480m_p2_clk = { 2605static struct clk usb_host_hs_hsic480m_p2_clk = {
2546 .name = "usb_host_hs_hsic480m_p2_clk", 2606 .name = "usb_host_hs_hsic480m_p2_clk",
2547 .ops = &clkops_omap2_dflt, 2607 .ops = &clkops_omap2_dflt,
@@ -2666,13 +2726,13 @@ static const struct clksel_rate div2_14to18_rates[] = {
2666}; 2726};
2667 2727
2668static const struct clksel usim_fclk_div[] = { 2728static const struct clksel usim_fclk_div[] = {
2669 { .parent = &dpll_per_m4_ck, .rates = div2_14to18_rates }, 2729 { .parent = &dpll_per_m4x2_ck, .rates = div2_14to18_rates },
2670 { .parent = NULL }, 2730 { .parent = NULL },
2671}; 2731};
2672 2732
2673static struct clk usim_ck = { 2733static struct clk usim_ck = {
2674 .name = "usim_ck", 2734 .name = "usim_ck",
2675 .parent = &dpll_per_m4_ck, 2735 .parent = &dpll_per_m4x2_ck,
2676 .clksel = usim_fclk_div, 2736 .clksel = usim_fclk_div,
2677 .clksel_reg = OMAP4430_CM_WKUP_USIM_CLKCTRL, 2737 .clksel_reg = OMAP4430_CM_WKUP_USIM_CLKCTRL,
2678 .clksel_mask = OMAP4430_CLKSEL_DIV_MASK, 2738 .clksel_mask = OMAP4430_CLKSEL_DIV_MASK,
@@ -2784,43 +2844,48 @@ static struct omap_clk omap44xx_clks[] = {
2784 CLK(NULL, "abe_dpll_bypass_clk_mux_ck", &abe_dpll_bypass_clk_mux_ck, CK_443X), 2844 CLK(NULL, "abe_dpll_bypass_clk_mux_ck", &abe_dpll_bypass_clk_mux_ck, CK_443X),
2785 CLK(NULL, "abe_dpll_refclk_mux_ck", &abe_dpll_refclk_mux_ck, CK_443X), 2845 CLK(NULL, "abe_dpll_refclk_mux_ck", &abe_dpll_refclk_mux_ck, CK_443X),
2786 CLK(NULL, "dpll_abe_ck", &dpll_abe_ck, CK_443X), 2846 CLK(NULL, "dpll_abe_ck", &dpll_abe_ck, CK_443X),
2847 CLK(NULL, "dpll_abe_x2_ck", &dpll_abe_x2_ck, CK_443X),
2787 CLK(NULL, "dpll_abe_m2x2_ck", &dpll_abe_m2x2_ck, CK_443X), 2848 CLK(NULL, "dpll_abe_m2x2_ck", &dpll_abe_m2x2_ck, CK_443X),
2788 CLK(NULL, "abe_24m_fclk", &abe_24m_fclk, CK_443X), 2849 CLK(NULL, "abe_24m_fclk", &abe_24m_fclk, CK_443X),
2789 CLK(NULL, "abe_clk", &abe_clk, CK_443X), 2850 CLK(NULL, "abe_clk", &abe_clk, CK_443X),
2790 CLK(NULL, "aess_fclk", &aess_fclk, CK_443X), 2851 CLK(NULL, "aess_fclk", &aess_fclk, CK_443X),
2791 CLK(NULL, "dpll_abe_m3_ck", &dpll_abe_m3_ck, CK_443X), 2852 CLK(NULL, "dpll_abe_m3x2_ck", &dpll_abe_m3x2_ck, CK_443X),
2792 CLK(NULL, "core_hsd_byp_clk_mux_ck", &core_hsd_byp_clk_mux_ck, CK_443X), 2853 CLK(NULL, "core_hsd_byp_clk_mux_ck", &core_hsd_byp_clk_mux_ck, CK_443X),
2793 CLK(NULL, "dpll_core_ck", &dpll_core_ck, CK_443X), 2854 CLK(NULL, "dpll_core_ck", &dpll_core_ck, CK_443X),
2794 CLK(NULL, "dpll_core_m6_ck", &dpll_core_m6_ck, CK_443X), 2855 CLK(NULL, "dpll_core_x2_ck", &dpll_core_x2_ck, CK_443X),
2856 CLK(NULL, "dpll_core_m6x2_ck", &dpll_core_m6x2_ck, CK_443X),
2795 CLK(NULL, "dbgclk_mux_ck", &dbgclk_mux_ck, CK_443X), 2857 CLK(NULL, "dbgclk_mux_ck", &dbgclk_mux_ck, CK_443X),
2796 CLK(NULL, "dpll_core_m2_ck", &dpll_core_m2_ck, CK_443X), 2858 CLK(NULL, "dpll_core_m2_ck", &dpll_core_m2_ck, CK_443X),
2797 CLK(NULL, "ddrphy_ck", &ddrphy_ck, CK_443X), 2859 CLK(NULL, "ddrphy_ck", &ddrphy_ck, CK_443X),
2798 CLK(NULL, "dpll_core_m5_ck", &dpll_core_m5_ck, CK_443X), 2860 CLK(NULL, "dpll_core_m5x2_ck", &dpll_core_m5x2_ck, CK_443X),
2799 CLK(NULL, "div_core_ck", &div_core_ck, CK_443X), 2861 CLK(NULL, "div_core_ck", &div_core_ck, CK_443X),
2800 CLK(NULL, "div_iva_hs_clk", &div_iva_hs_clk, CK_443X), 2862 CLK(NULL, "div_iva_hs_clk", &div_iva_hs_clk, CK_443X),
2801 CLK(NULL, "div_mpu_hs_clk", &div_mpu_hs_clk, CK_443X), 2863 CLK(NULL, "div_mpu_hs_clk", &div_mpu_hs_clk, CK_443X),
2802 CLK(NULL, "dpll_core_m4_ck", &dpll_core_m4_ck, CK_443X), 2864 CLK(NULL, "dpll_core_m4x2_ck", &dpll_core_m4x2_ck, CK_443X),
2803 CLK(NULL, "dll_clk_div_ck", &dll_clk_div_ck, CK_443X), 2865 CLK(NULL, "dll_clk_div_ck", &dll_clk_div_ck, CK_443X),
2804 CLK(NULL, "dpll_abe_m2_ck", &dpll_abe_m2_ck, CK_443X), 2866 CLK(NULL, "dpll_abe_m2_ck", &dpll_abe_m2_ck, CK_443X),
2805 CLK(NULL, "dpll_core_m3_ck", &dpll_core_m3_ck, CK_443X), 2867 CLK(NULL, "dpll_core_m3x2_ck", &dpll_core_m3x2_ck, CK_443X),
2806 CLK(NULL, "dpll_core_m7_ck", &dpll_core_m7_ck, CK_443X), 2868 CLK(NULL, "dpll_core_m7x2_ck", &dpll_core_m7x2_ck, CK_443X),
2807 CLK(NULL, "iva_hsd_byp_clk_mux_ck", &iva_hsd_byp_clk_mux_ck, CK_443X), 2869 CLK(NULL, "iva_hsd_byp_clk_mux_ck", &iva_hsd_byp_clk_mux_ck, CK_443X),
2808 CLK(NULL, "dpll_iva_ck", &dpll_iva_ck, CK_443X), 2870 CLK(NULL, "dpll_iva_ck", &dpll_iva_ck, CK_443X),
2809 CLK(NULL, "dpll_iva_m4_ck", &dpll_iva_m4_ck, CK_443X), 2871 CLK(NULL, "dpll_iva_x2_ck", &dpll_iva_x2_ck, CK_443X),
2810 CLK(NULL, "dpll_iva_m5_ck", &dpll_iva_m5_ck, CK_443X), 2872 CLK(NULL, "dpll_iva_m4x2_ck", &dpll_iva_m4x2_ck, CK_443X),
2873 CLK(NULL, "dpll_iva_m5x2_ck", &dpll_iva_m5x2_ck, CK_443X),
2811 CLK(NULL, "dpll_mpu_ck", &dpll_mpu_ck, CK_443X), 2874 CLK(NULL, "dpll_mpu_ck", &dpll_mpu_ck, CK_443X),
2812 CLK(NULL, "dpll_mpu_m2_ck", &dpll_mpu_m2_ck, CK_443X), 2875 CLK(NULL, "dpll_mpu_m2_ck", &dpll_mpu_m2_ck, CK_443X),
2813 CLK(NULL, "per_hs_clk_div_ck", &per_hs_clk_div_ck, CK_443X), 2876 CLK(NULL, "per_hs_clk_div_ck", &per_hs_clk_div_ck, CK_443X),
2814 CLK(NULL, "per_hsd_byp_clk_mux_ck", &per_hsd_byp_clk_mux_ck, CK_443X), 2877 CLK(NULL, "per_hsd_byp_clk_mux_ck", &per_hsd_byp_clk_mux_ck, CK_443X),
2815 CLK(NULL, "dpll_per_ck", &dpll_per_ck, CK_443X), 2878 CLK(NULL, "dpll_per_ck", &dpll_per_ck, CK_443X),
2816 CLK(NULL, "dpll_per_m2_ck", &dpll_per_m2_ck, CK_443X), 2879 CLK(NULL, "dpll_per_m2_ck", &dpll_per_m2_ck, CK_443X),
2880 CLK(NULL, "dpll_per_x2_ck", &dpll_per_x2_ck, CK_443X),
2817 CLK(NULL, "dpll_per_m2x2_ck", &dpll_per_m2x2_ck, CK_443X), 2881 CLK(NULL, "dpll_per_m2x2_ck", &dpll_per_m2x2_ck, CK_443X),
2818 CLK(NULL, "dpll_per_m3_ck", &dpll_per_m3_ck, CK_443X), 2882 CLK(NULL, "dpll_per_m3x2_ck", &dpll_per_m3x2_ck, CK_443X),
2819 CLK(NULL, "dpll_per_m4_ck", &dpll_per_m4_ck, CK_443X), 2883 CLK(NULL, "dpll_per_m4x2_ck", &dpll_per_m4x2_ck, CK_443X),
2820 CLK(NULL, "dpll_per_m5_ck", &dpll_per_m5_ck, CK_443X), 2884 CLK(NULL, "dpll_per_m5x2_ck", &dpll_per_m5x2_ck, CK_443X),
2821 CLK(NULL, "dpll_per_m6_ck", &dpll_per_m6_ck, CK_443X), 2885 CLK(NULL, "dpll_per_m6x2_ck", &dpll_per_m6x2_ck, CK_443X),
2822 CLK(NULL, "dpll_per_m7_ck", &dpll_per_m7_ck, CK_443X), 2886 CLK(NULL, "dpll_per_m7x2_ck", &dpll_per_m7x2_ck, CK_443X),
2823 CLK(NULL, "dpll_unipro_ck", &dpll_unipro_ck, CK_443X), 2887 CLK(NULL, "dpll_unipro_ck", &dpll_unipro_ck, CK_443X),
2888 CLK(NULL, "dpll_unipro_x2_ck", &dpll_unipro_x2_ck, CK_443X),
2824 CLK(NULL, "dpll_unipro_m2x2_ck", &dpll_unipro_m2x2_ck, CK_443X), 2889 CLK(NULL, "dpll_unipro_m2x2_ck", &dpll_unipro_m2x2_ck, CK_443X),
2825 CLK(NULL, "usb_hs_clk_div_ck", &usb_hs_clk_div_ck, CK_443X), 2890 CLK(NULL, "usb_hs_clk_div_ck", &usb_hs_clk_div_ck, CK_443X),
2826 CLK(NULL, "dpll_usb_ck", &dpll_usb_ck, CK_443X), 2891 CLK(NULL, "dpll_usb_ck", &dpll_usb_ck, CK_443X),
@@ -2947,14 +3012,14 @@ static struct omap_clk omap44xx_clks[] = {
2947 CLK(NULL, "uart3_fck", &uart3_fck, CK_443X), 3012 CLK(NULL, "uart3_fck", &uart3_fck, CK_443X),
2948 CLK(NULL, "uart4_fck", &uart4_fck, CK_443X), 3013 CLK(NULL, "uart4_fck", &uart4_fck, CK_443X),
2949 CLK(NULL, "usb_host_fs_fck", &usb_host_fs_fck, CK_443X), 3014 CLK(NULL, "usb_host_fs_fck", &usb_host_fs_fck, CK_443X),
2950 CLK(NULL, "usb_host_hs_utmi_p3_clk", &usb_host_hs_utmi_p3_clk, CK_443X),
2951 CLK(NULL, "usb_host_hs_hsic60m_p1_clk", &usb_host_hs_hsic60m_p1_clk, CK_443X),
2952 CLK(NULL, "usb_host_hs_hsic60m_p2_clk", &usb_host_hs_hsic60m_p2_clk, CK_443X),
2953 CLK(NULL, "utmi_p1_gfclk", &utmi_p1_gfclk, CK_443X), 3015 CLK(NULL, "utmi_p1_gfclk", &utmi_p1_gfclk, CK_443X),
2954 CLK(NULL, "usb_host_hs_utmi_p1_clk", &usb_host_hs_utmi_p1_clk, CK_443X), 3016 CLK(NULL, "usb_host_hs_utmi_p1_clk", &usb_host_hs_utmi_p1_clk, CK_443X),
2955 CLK(NULL, "utmi_p2_gfclk", &utmi_p2_gfclk, CK_443X), 3017 CLK(NULL, "utmi_p2_gfclk", &utmi_p2_gfclk, CK_443X),
2956 CLK(NULL, "usb_host_hs_utmi_p2_clk", &usb_host_hs_utmi_p2_clk, CK_443X), 3018 CLK(NULL, "usb_host_hs_utmi_p2_clk", &usb_host_hs_utmi_p2_clk, CK_443X),
3019 CLK(NULL, "usb_host_hs_utmi_p3_clk", &usb_host_hs_utmi_p3_clk, CK_443X),
2957 CLK(NULL, "usb_host_hs_hsic480m_p1_clk", &usb_host_hs_hsic480m_p1_clk, CK_443X), 3020 CLK(NULL, "usb_host_hs_hsic480m_p1_clk", &usb_host_hs_hsic480m_p1_clk, CK_443X),
3021 CLK(NULL, "usb_host_hs_hsic60m_p1_clk", &usb_host_hs_hsic60m_p1_clk, CK_443X),
3022 CLK(NULL, "usb_host_hs_hsic60m_p2_clk", &usb_host_hs_hsic60m_p2_clk, CK_443X),
2958 CLK(NULL, "usb_host_hs_hsic480m_p2_clk", &usb_host_hs_hsic480m_p2_clk, CK_443X), 3023 CLK(NULL, "usb_host_hs_hsic480m_p2_clk", &usb_host_hs_hsic480m_p2_clk, CK_443X),
2959 CLK(NULL, "usb_host_hs_func48mclk", &usb_host_hs_func48mclk, CK_443X), 3024 CLK(NULL, "usb_host_hs_func48mclk", &usb_host_hs_func48mclk, CK_443X),
2960 CLK(NULL, "usb_host_hs_fck", &usb_host_hs_fck, CK_443X), 3025 CLK(NULL, "usb_host_hs_fck", &usb_host_hs_fck, CK_443X),