diff options
author | James Hogan <james.hogan@imgtec.com> | 2013-07-29 07:25:01 -0400 |
---|---|---|
committer | Mike Turquette <mturquette@linaro.org> | 2013-08-19 15:27:17 -0400 |
commit | 819c1de344c5b8350bffd35be9a0fa74541292d3 (patch) | |
tree | a7829ac81de6d968cc24516f17c87da98c528d06 /drivers/clk/spear/spear1310_clock.c | |
parent | 71472c0c06cf9a3d1540762ea205654c584e3bc4 (diff) |
clk: add CLK_SET_RATE_NO_REPARENT flag
Add a CLK_SET_RATE_NO_REPARENT clock flag, which will prevent muxes
being reparented during clk_set_rate.
To avoid breaking existing platforms, all callers of clk_register_mux()
are adjusted to pass the new flag. Platform maintainers are encouraged
to remove the flag if they wish to allow mux reparenting on set_rate.
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Cc: Mike Turquette <mturquette@linaro.org>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Cc: Viresh Kumar <viresh.linux@gmail.com>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Cc: Haojian Zhuang <haojian.zhuang@linaro.org>
Cc: Chao Xie <xiechao.mail@gmail.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: "Emilio López" <emilio@elopez.com.ar>
Cc: Gregory CLEMENT <gregory.clement@free-electrons.com>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: Prashant Gaikwad <pgaikwad@nvidia.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Peter De Schrijver <pdeschrijver@nvidia.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Andrew Chew <achew@nvidia.com>
Cc: Doug Anderson <dianders@chromium.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Paul Walmsley <pwalmsley@nvidia.com>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Thomas Abraham <thomas.abraham@linaro.org>
Cc: Tomasz Figa <t.figa@samsung.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: spear-devel@list.st.com
Cc: linux-tegra@vger.kernel.org
Tested-by: Haojian Zhuang <haojian.zhuang@gmail.com>
Acked-by: Stephen Warren <swarren@nvidia.com> [tegra]
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> [sunxi]
Acked-by: Sören Brinkmann <soren.brinkmann@xilinx.com> [Zynq]
Signed-off-by: Mike Turquette <mturquette@linaro.org>
Diffstat (limited to 'drivers/clk/spear/spear1310_clock.c')
-rw-r--r-- | drivers/clk/spear/spear1310_clock.c | 179 |
1 files changed, 93 insertions, 86 deletions
diff --git a/drivers/clk/spear/spear1310_clock.c b/drivers/clk/spear/spear1310_clock.c index aedbbe12f321..65894f7687ed 100644 --- a/drivers/clk/spear/spear1310_clock.c +++ b/drivers/clk/spear/spear1310_clock.c | |||
@@ -416,9 +416,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
416 | /* clock derived from 24 or 25 MHz osc clk */ | 416 | /* clock derived from 24 or 25 MHz osc clk */ |
417 | /* vco-pll */ | 417 | /* vco-pll */ |
418 | clk = clk_register_mux(NULL, "vco1_mclk", vco_parents, | 418 | clk = clk_register_mux(NULL, "vco1_mclk", vco_parents, |
419 | ARRAY_SIZE(vco_parents), 0, SPEAR1310_PLL_CFG, | 419 | ARRAY_SIZE(vco_parents), CLK_SET_RATE_NO_REPARENT, |
420 | SPEAR1310_PLL1_CLK_SHIFT, SPEAR1310_PLL_CLK_MASK, 0, | 420 | SPEAR1310_PLL_CFG, SPEAR1310_PLL1_CLK_SHIFT, |
421 | &_lock); | 421 | SPEAR1310_PLL_CLK_MASK, 0, &_lock); |
422 | clk_register_clkdev(clk, "vco1_mclk", NULL); | 422 | clk_register_clkdev(clk, "vco1_mclk", NULL); |
423 | clk = clk_register_vco_pll("vco1_clk", "pll1_clk", NULL, "vco1_mclk", | 423 | clk = clk_register_vco_pll("vco1_clk", "pll1_clk", NULL, "vco1_mclk", |
424 | 0, SPEAR1310_PLL1_CTR, SPEAR1310_PLL1_FRQ, pll_rtbl, | 424 | 0, SPEAR1310_PLL1_CTR, SPEAR1310_PLL1_FRQ, pll_rtbl, |
@@ -427,9 +427,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
427 | clk_register_clkdev(clk1, "pll1_clk", NULL); | 427 | clk_register_clkdev(clk1, "pll1_clk", NULL); |
428 | 428 | ||
429 | clk = clk_register_mux(NULL, "vco2_mclk", vco_parents, | 429 | clk = clk_register_mux(NULL, "vco2_mclk", vco_parents, |
430 | ARRAY_SIZE(vco_parents), 0, SPEAR1310_PLL_CFG, | 430 | ARRAY_SIZE(vco_parents), CLK_SET_RATE_NO_REPARENT, |
431 | SPEAR1310_PLL2_CLK_SHIFT, SPEAR1310_PLL_CLK_MASK, 0, | 431 | SPEAR1310_PLL_CFG, SPEAR1310_PLL2_CLK_SHIFT, |
432 | &_lock); | 432 | SPEAR1310_PLL_CLK_MASK, 0, &_lock); |
433 | clk_register_clkdev(clk, "vco2_mclk", NULL); | 433 | clk_register_clkdev(clk, "vco2_mclk", NULL); |
434 | clk = clk_register_vco_pll("vco2_clk", "pll2_clk", NULL, "vco2_mclk", | 434 | clk = clk_register_vco_pll("vco2_clk", "pll2_clk", NULL, "vco2_mclk", |
435 | 0, SPEAR1310_PLL2_CTR, SPEAR1310_PLL2_FRQ, pll_rtbl, | 435 | 0, SPEAR1310_PLL2_CTR, SPEAR1310_PLL2_FRQ, pll_rtbl, |
@@ -438,9 +438,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
438 | clk_register_clkdev(clk1, "pll2_clk", NULL); | 438 | clk_register_clkdev(clk1, "pll2_clk", NULL); |
439 | 439 | ||
440 | clk = clk_register_mux(NULL, "vco3_mclk", vco_parents, | 440 | clk = clk_register_mux(NULL, "vco3_mclk", vco_parents, |
441 | ARRAY_SIZE(vco_parents), 0, SPEAR1310_PLL_CFG, | 441 | ARRAY_SIZE(vco_parents), CLK_SET_RATE_NO_REPARENT, |
442 | SPEAR1310_PLL3_CLK_SHIFT, SPEAR1310_PLL_CLK_MASK, 0, | 442 | SPEAR1310_PLL_CFG, SPEAR1310_PLL3_CLK_SHIFT, |
443 | &_lock); | 443 | SPEAR1310_PLL_CLK_MASK, 0, &_lock); |
444 | clk_register_clkdev(clk, "vco3_mclk", NULL); | 444 | clk_register_clkdev(clk, "vco3_mclk", NULL); |
445 | clk = clk_register_vco_pll("vco3_clk", "pll3_clk", NULL, "vco3_mclk", | 445 | clk = clk_register_vco_pll("vco3_clk", "pll3_clk", NULL, "vco3_mclk", |
446 | 0, SPEAR1310_PLL3_CTR, SPEAR1310_PLL3_FRQ, pll_rtbl, | 446 | 0, SPEAR1310_PLL3_CTR, SPEAR1310_PLL3_FRQ, pll_rtbl, |
@@ -515,9 +515,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
515 | 515 | ||
516 | /* gpt clocks */ | 516 | /* gpt clocks */ |
517 | clk = clk_register_mux(NULL, "gpt0_mclk", gpt_parents, | 517 | clk = clk_register_mux(NULL, "gpt0_mclk", gpt_parents, |
518 | ARRAY_SIZE(gpt_parents), 0, SPEAR1310_PERIP_CLK_CFG, | 518 | ARRAY_SIZE(gpt_parents), CLK_SET_RATE_NO_REPARENT, |
519 | SPEAR1310_GPT0_CLK_SHIFT, SPEAR1310_GPT_CLK_MASK, 0, | 519 | SPEAR1310_PERIP_CLK_CFG, SPEAR1310_GPT0_CLK_SHIFT, |
520 | &_lock); | 520 | SPEAR1310_GPT_CLK_MASK, 0, &_lock); |
521 | clk_register_clkdev(clk, "gpt0_mclk", NULL); | 521 | clk_register_clkdev(clk, "gpt0_mclk", NULL); |
522 | clk = clk_register_gate(NULL, "gpt0_clk", "gpt0_mclk", 0, | 522 | clk = clk_register_gate(NULL, "gpt0_clk", "gpt0_mclk", 0, |
523 | SPEAR1310_PERIP1_CLK_ENB, SPEAR1310_GPT0_CLK_ENB, 0, | 523 | SPEAR1310_PERIP1_CLK_ENB, SPEAR1310_GPT0_CLK_ENB, 0, |
@@ -525,9 +525,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
525 | clk_register_clkdev(clk, NULL, "gpt0"); | 525 | clk_register_clkdev(clk, NULL, "gpt0"); |
526 | 526 | ||
527 | clk = clk_register_mux(NULL, "gpt1_mclk", gpt_parents, | 527 | clk = clk_register_mux(NULL, "gpt1_mclk", gpt_parents, |
528 | ARRAY_SIZE(gpt_parents), 0, SPEAR1310_PERIP_CLK_CFG, | 528 | ARRAY_SIZE(gpt_parents), CLK_SET_RATE_NO_REPARENT, |
529 | SPEAR1310_GPT1_CLK_SHIFT, SPEAR1310_GPT_CLK_MASK, 0, | 529 | SPEAR1310_PERIP_CLK_CFG, SPEAR1310_GPT1_CLK_SHIFT, |
530 | &_lock); | 530 | SPEAR1310_GPT_CLK_MASK, 0, &_lock); |
531 | clk_register_clkdev(clk, "gpt1_mclk", NULL); | 531 | clk_register_clkdev(clk, "gpt1_mclk", NULL); |
532 | clk = clk_register_gate(NULL, "gpt1_clk", "gpt1_mclk", 0, | 532 | clk = clk_register_gate(NULL, "gpt1_clk", "gpt1_mclk", 0, |
533 | SPEAR1310_PERIP1_CLK_ENB, SPEAR1310_GPT1_CLK_ENB, 0, | 533 | SPEAR1310_PERIP1_CLK_ENB, SPEAR1310_GPT1_CLK_ENB, 0, |
@@ -535,9 +535,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
535 | clk_register_clkdev(clk, NULL, "gpt1"); | 535 | clk_register_clkdev(clk, NULL, "gpt1"); |
536 | 536 | ||
537 | clk = clk_register_mux(NULL, "gpt2_mclk", gpt_parents, | 537 | clk = clk_register_mux(NULL, "gpt2_mclk", gpt_parents, |
538 | ARRAY_SIZE(gpt_parents), 0, SPEAR1310_PERIP_CLK_CFG, | 538 | ARRAY_SIZE(gpt_parents), CLK_SET_RATE_NO_REPARENT, |
539 | SPEAR1310_GPT2_CLK_SHIFT, SPEAR1310_GPT_CLK_MASK, 0, | 539 | SPEAR1310_PERIP_CLK_CFG, SPEAR1310_GPT2_CLK_SHIFT, |
540 | &_lock); | 540 | SPEAR1310_GPT_CLK_MASK, 0, &_lock); |
541 | clk_register_clkdev(clk, "gpt2_mclk", NULL); | 541 | clk_register_clkdev(clk, "gpt2_mclk", NULL); |
542 | clk = clk_register_gate(NULL, "gpt2_clk", "gpt2_mclk", 0, | 542 | clk = clk_register_gate(NULL, "gpt2_clk", "gpt2_mclk", 0, |
543 | SPEAR1310_PERIP2_CLK_ENB, SPEAR1310_GPT2_CLK_ENB, 0, | 543 | SPEAR1310_PERIP2_CLK_ENB, SPEAR1310_GPT2_CLK_ENB, 0, |
@@ -545,9 +545,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
545 | clk_register_clkdev(clk, NULL, "gpt2"); | 545 | clk_register_clkdev(clk, NULL, "gpt2"); |
546 | 546 | ||
547 | clk = clk_register_mux(NULL, "gpt3_mclk", gpt_parents, | 547 | clk = clk_register_mux(NULL, "gpt3_mclk", gpt_parents, |
548 | ARRAY_SIZE(gpt_parents), 0, SPEAR1310_PERIP_CLK_CFG, | 548 | ARRAY_SIZE(gpt_parents), CLK_SET_RATE_NO_REPARENT, |
549 | SPEAR1310_GPT3_CLK_SHIFT, SPEAR1310_GPT_CLK_MASK, 0, | 549 | SPEAR1310_PERIP_CLK_CFG, SPEAR1310_GPT3_CLK_SHIFT, |
550 | &_lock); | 550 | SPEAR1310_GPT_CLK_MASK, 0, &_lock); |
551 | clk_register_clkdev(clk, "gpt3_mclk", NULL); | 551 | clk_register_clkdev(clk, "gpt3_mclk", NULL); |
552 | clk = clk_register_gate(NULL, "gpt3_clk", "gpt3_mclk", 0, | 552 | clk = clk_register_gate(NULL, "gpt3_clk", "gpt3_mclk", 0, |
553 | SPEAR1310_PERIP2_CLK_ENB, SPEAR1310_GPT3_CLK_ENB, 0, | 553 | SPEAR1310_PERIP2_CLK_ENB, SPEAR1310_GPT3_CLK_ENB, 0, |
@@ -562,7 +562,8 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
562 | clk_register_clkdev(clk1, "uart_syn_gclk", NULL); | 562 | clk_register_clkdev(clk1, "uart_syn_gclk", NULL); |
563 | 563 | ||
564 | clk = clk_register_mux(NULL, "uart0_mclk", uart0_parents, | 564 | clk = clk_register_mux(NULL, "uart0_mclk", uart0_parents, |
565 | ARRAY_SIZE(uart0_parents), CLK_SET_RATE_PARENT, | 565 | ARRAY_SIZE(uart0_parents), |
566 | CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT, | ||
566 | SPEAR1310_PERIP_CLK_CFG, SPEAR1310_UART_CLK_SHIFT, | 567 | SPEAR1310_PERIP_CLK_CFG, SPEAR1310_UART_CLK_SHIFT, |
567 | SPEAR1310_UART_CLK_MASK, 0, &_lock); | 568 | SPEAR1310_UART_CLK_MASK, 0, &_lock); |
568 | clk_register_clkdev(clk, "uart0_mclk", NULL); | 569 | clk_register_clkdev(clk, "uart0_mclk", NULL); |
@@ -602,7 +603,8 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
602 | clk_register_clkdev(clk1, "c3_syn_gclk", NULL); | 603 | clk_register_clkdev(clk1, "c3_syn_gclk", NULL); |
603 | 604 | ||
604 | clk = clk_register_mux(NULL, "c3_mclk", c3_parents, | 605 | clk = clk_register_mux(NULL, "c3_mclk", c3_parents, |
605 | ARRAY_SIZE(c3_parents), CLK_SET_RATE_PARENT, | 606 | ARRAY_SIZE(c3_parents), |
607 | CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT, | ||
606 | SPEAR1310_PERIP_CLK_CFG, SPEAR1310_C3_CLK_SHIFT, | 608 | SPEAR1310_PERIP_CLK_CFG, SPEAR1310_C3_CLK_SHIFT, |
607 | SPEAR1310_C3_CLK_MASK, 0, &_lock); | 609 | SPEAR1310_C3_CLK_MASK, 0, &_lock); |
608 | clk_register_clkdev(clk, "c3_mclk", NULL); | 610 | clk_register_clkdev(clk, "c3_mclk", NULL); |
@@ -614,8 +616,8 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
614 | 616 | ||
615 | /* gmac */ | 617 | /* gmac */ |
616 | clk = clk_register_mux(NULL, "phy_input_mclk", gmac_phy_input_parents, | 618 | clk = clk_register_mux(NULL, "phy_input_mclk", gmac_phy_input_parents, |
617 | ARRAY_SIZE(gmac_phy_input_parents), 0, | 619 | ARRAY_SIZE(gmac_phy_input_parents), |
618 | SPEAR1310_GMAC_CLK_CFG, | 620 | CLK_SET_RATE_NO_REPARENT, SPEAR1310_GMAC_CLK_CFG, |
619 | SPEAR1310_GMAC_PHY_INPUT_CLK_SHIFT, | 621 | SPEAR1310_GMAC_PHY_INPUT_CLK_SHIFT, |
620 | SPEAR1310_GMAC_PHY_INPUT_CLK_MASK, 0, &_lock); | 622 | SPEAR1310_GMAC_PHY_INPUT_CLK_MASK, 0, &_lock); |
621 | clk_register_clkdev(clk, "phy_input_mclk", NULL); | 623 | clk_register_clkdev(clk, "phy_input_mclk", NULL); |
@@ -627,15 +629,16 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
627 | clk_register_clkdev(clk1, "phy_syn_gclk", NULL); | 629 | clk_register_clkdev(clk1, "phy_syn_gclk", NULL); |
628 | 630 | ||
629 | clk = clk_register_mux(NULL, "phy_mclk", gmac_phy_parents, | 631 | clk = clk_register_mux(NULL, "phy_mclk", gmac_phy_parents, |
630 | ARRAY_SIZE(gmac_phy_parents), 0, | 632 | ARRAY_SIZE(gmac_phy_parents), CLK_SET_RATE_NO_REPARENT, |
631 | SPEAR1310_PERIP_CLK_CFG, SPEAR1310_GMAC_PHY_CLK_SHIFT, | 633 | SPEAR1310_PERIP_CLK_CFG, SPEAR1310_GMAC_PHY_CLK_SHIFT, |
632 | SPEAR1310_GMAC_PHY_CLK_MASK, 0, &_lock); | 634 | SPEAR1310_GMAC_PHY_CLK_MASK, 0, &_lock); |
633 | clk_register_clkdev(clk, "stmmacphy.0", NULL); | 635 | clk_register_clkdev(clk, "stmmacphy.0", NULL); |
634 | 636 | ||
635 | /* clcd */ | 637 | /* clcd */ |
636 | clk = clk_register_mux(NULL, "clcd_syn_mclk", clcd_synth_parents, | 638 | clk = clk_register_mux(NULL, "clcd_syn_mclk", clcd_synth_parents, |
637 | ARRAY_SIZE(clcd_synth_parents), 0, | 639 | ARRAY_SIZE(clcd_synth_parents), |
638 | SPEAR1310_CLCD_CLK_SYNT, SPEAR1310_CLCD_SYNT_CLK_SHIFT, | 640 | CLK_SET_RATE_NO_REPARENT, SPEAR1310_CLCD_CLK_SYNT, |
641 | SPEAR1310_CLCD_SYNT_CLK_SHIFT, | ||
639 | SPEAR1310_CLCD_SYNT_CLK_MASK, 0, &_lock); | 642 | SPEAR1310_CLCD_SYNT_CLK_MASK, 0, &_lock); |
640 | clk_register_clkdev(clk, "clcd_syn_mclk", NULL); | 643 | clk_register_clkdev(clk, "clcd_syn_mclk", NULL); |
641 | 644 | ||
@@ -645,7 +648,8 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
645 | clk_register_clkdev(clk, "clcd_syn_clk", NULL); | 648 | clk_register_clkdev(clk, "clcd_syn_clk", NULL); |
646 | 649 | ||
647 | clk = clk_register_mux(NULL, "clcd_pixel_mclk", clcd_pixel_parents, | 650 | clk = clk_register_mux(NULL, "clcd_pixel_mclk", clcd_pixel_parents, |
648 | ARRAY_SIZE(clcd_pixel_parents), CLK_SET_RATE_PARENT, | 651 | ARRAY_SIZE(clcd_pixel_parents), |
652 | CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT, | ||
649 | SPEAR1310_PERIP_CLK_CFG, SPEAR1310_CLCD_CLK_SHIFT, | 653 | SPEAR1310_PERIP_CLK_CFG, SPEAR1310_CLCD_CLK_SHIFT, |
650 | SPEAR1310_CLCD_CLK_MASK, 0, &_lock); | 654 | SPEAR1310_CLCD_CLK_MASK, 0, &_lock); |
651 | clk_register_clkdev(clk, "clcd_pixel_mclk", NULL); | 655 | clk_register_clkdev(clk, "clcd_pixel_mclk", NULL); |
@@ -657,9 +661,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
657 | 661 | ||
658 | /* i2s */ | 662 | /* i2s */ |
659 | clk = clk_register_mux(NULL, "i2s_src_mclk", i2s_src_parents, | 663 | clk = clk_register_mux(NULL, "i2s_src_mclk", i2s_src_parents, |
660 | ARRAY_SIZE(i2s_src_parents), 0, SPEAR1310_I2S_CLK_CFG, | 664 | ARRAY_SIZE(i2s_src_parents), CLK_SET_RATE_NO_REPARENT, |
661 | SPEAR1310_I2S_SRC_CLK_SHIFT, SPEAR1310_I2S_SRC_CLK_MASK, | 665 | SPEAR1310_I2S_CLK_CFG, SPEAR1310_I2S_SRC_CLK_SHIFT, |
662 | 0, &_lock); | 666 | SPEAR1310_I2S_SRC_CLK_MASK, 0, &_lock); |
663 | clk_register_clkdev(clk, "i2s_src_mclk", NULL); | 667 | clk_register_clkdev(clk, "i2s_src_mclk", NULL); |
664 | 668 | ||
665 | clk = clk_register_aux("i2s_prs1_clk", NULL, "i2s_src_mclk", 0, | 669 | clk = clk_register_aux("i2s_prs1_clk", NULL, "i2s_src_mclk", 0, |
@@ -668,7 +672,8 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
668 | clk_register_clkdev(clk, "i2s_prs1_clk", NULL); | 672 | clk_register_clkdev(clk, "i2s_prs1_clk", NULL); |
669 | 673 | ||
670 | clk = clk_register_mux(NULL, "i2s_ref_mclk", i2s_ref_parents, | 674 | clk = clk_register_mux(NULL, "i2s_ref_mclk", i2s_ref_parents, |
671 | ARRAY_SIZE(i2s_ref_parents), CLK_SET_RATE_PARENT, | 675 | ARRAY_SIZE(i2s_ref_parents), |
676 | CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT, | ||
672 | SPEAR1310_I2S_CLK_CFG, SPEAR1310_I2S_REF_SHIFT, | 677 | SPEAR1310_I2S_CLK_CFG, SPEAR1310_I2S_REF_SHIFT, |
673 | SPEAR1310_I2S_REF_SEL_MASK, 0, &_lock); | 678 | SPEAR1310_I2S_REF_SEL_MASK, 0, &_lock); |
674 | clk_register_clkdev(clk, "i2s_ref_mclk", NULL); | 679 | clk_register_clkdev(clk, "i2s_ref_mclk", NULL); |
@@ -806,13 +811,15 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
806 | 811 | ||
807 | /* RAS clks */ | 812 | /* RAS clks */ |
808 | clk = clk_register_mux(NULL, "gen_syn0_1_mclk", gen_synth0_1_parents, | 813 | clk = clk_register_mux(NULL, "gen_syn0_1_mclk", gen_synth0_1_parents, |
809 | ARRAY_SIZE(gen_synth0_1_parents), 0, SPEAR1310_PLL_CFG, | 814 | ARRAY_SIZE(gen_synth0_1_parents), |
815 | CLK_SET_RATE_NO_REPARENT, SPEAR1310_PLL_CFG, | ||
810 | SPEAR1310_RAS_SYNT0_1_CLK_SHIFT, | 816 | SPEAR1310_RAS_SYNT0_1_CLK_SHIFT, |
811 | SPEAR1310_RAS_SYNT_CLK_MASK, 0, &_lock); | 817 | SPEAR1310_RAS_SYNT_CLK_MASK, 0, &_lock); |
812 | clk_register_clkdev(clk, "gen_syn0_1_clk", NULL); | 818 | clk_register_clkdev(clk, "gen_syn0_1_clk", NULL); |
813 | 819 | ||
814 | clk = clk_register_mux(NULL, "gen_syn2_3_mclk", gen_synth2_3_parents, | 820 | clk = clk_register_mux(NULL, "gen_syn2_3_mclk", gen_synth2_3_parents, |
815 | ARRAY_SIZE(gen_synth2_3_parents), 0, SPEAR1310_PLL_CFG, | 821 | ARRAY_SIZE(gen_synth2_3_parents), |
822 | CLK_SET_RATE_NO_REPARENT, SPEAR1310_PLL_CFG, | ||
816 | SPEAR1310_RAS_SYNT2_3_CLK_SHIFT, | 823 | SPEAR1310_RAS_SYNT2_3_CLK_SHIFT, |
817 | SPEAR1310_RAS_SYNT_CLK_MASK, 0, &_lock); | 824 | SPEAR1310_RAS_SYNT_CLK_MASK, 0, &_lock); |
818 | clk_register_clkdev(clk, "gen_syn2_3_clk", NULL); | 825 | clk_register_clkdev(clk, "gen_syn2_3_clk", NULL); |
@@ -929,8 +936,8 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
929 | 936 | ||
930 | clk = clk_register_mux(NULL, "smii_rgmii_phy_mclk", | 937 | clk = clk_register_mux(NULL, "smii_rgmii_phy_mclk", |
931 | smii_rgmii_phy_parents, | 938 | smii_rgmii_phy_parents, |
932 | ARRAY_SIZE(smii_rgmii_phy_parents), 0, | 939 | ARRAY_SIZE(smii_rgmii_phy_parents), |
933 | SPEAR1310_RAS_CTRL_REG1, | 940 | CLK_SET_RATE_NO_REPARENT, SPEAR1310_RAS_CTRL_REG1, |
934 | SPEAR1310_SMII_RGMII_PHY_CLK_SHIFT, | 941 | SPEAR1310_SMII_RGMII_PHY_CLK_SHIFT, |
935 | SPEAR1310_PHY_CLK_MASK, 0, &_lock); | 942 | SPEAR1310_PHY_CLK_MASK, 0, &_lock); |
936 | clk_register_clkdev(clk, "stmmacphy.1", NULL); | 943 | clk_register_clkdev(clk, "stmmacphy.1", NULL); |
@@ -938,15 +945,15 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
938 | clk_register_clkdev(clk, "stmmacphy.4", NULL); | 945 | clk_register_clkdev(clk, "stmmacphy.4", NULL); |
939 | 946 | ||
940 | clk = clk_register_mux(NULL, "rmii_phy_mclk", rmii_phy_parents, | 947 | clk = clk_register_mux(NULL, "rmii_phy_mclk", rmii_phy_parents, |
941 | ARRAY_SIZE(rmii_phy_parents), 0, | 948 | ARRAY_SIZE(rmii_phy_parents), CLK_SET_RATE_NO_REPARENT, |
942 | SPEAR1310_RAS_CTRL_REG1, SPEAR1310_RMII_PHY_CLK_SHIFT, | 949 | SPEAR1310_RAS_CTRL_REG1, SPEAR1310_RMII_PHY_CLK_SHIFT, |
943 | SPEAR1310_PHY_CLK_MASK, 0, &_lock); | 950 | SPEAR1310_PHY_CLK_MASK, 0, &_lock); |
944 | clk_register_clkdev(clk, "stmmacphy.3", NULL); | 951 | clk_register_clkdev(clk, "stmmacphy.3", NULL); |
945 | 952 | ||
946 | clk = clk_register_mux(NULL, "uart1_mclk", uart_parents, | 953 | clk = clk_register_mux(NULL, "uart1_mclk", uart_parents, |
947 | ARRAY_SIZE(uart_parents), 0, SPEAR1310_RAS_CTRL_REG0, | 954 | ARRAY_SIZE(uart_parents), CLK_SET_RATE_NO_REPARENT, |
948 | SPEAR1310_UART1_CLK_SHIFT, SPEAR1310_RAS_UART_CLK_MASK, | 955 | SPEAR1310_RAS_CTRL_REG0, SPEAR1310_UART1_CLK_SHIFT, |
949 | 0, &_lock); | 956 | SPEAR1310_RAS_UART_CLK_MASK, 0, &_lock); |
950 | clk_register_clkdev(clk, "uart1_mclk", NULL); | 957 | clk_register_clkdev(clk, "uart1_mclk", NULL); |
951 | 958 | ||
952 | clk = clk_register_gate(NULL, "uart1_clk", "uart1_mclk", 0, | 959 | clk = clk_register_gate(NULL, "uart1_clk", "uart1_mclk", 0, |
@@ -955,9 +962,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
955 | clk_register_clkdev(clk, NULL, "5c800000.serial"); | 962 | clk_register_clkdev(clk, NULL, "5c800000.serial"); |
956 | 963 | ||
957 | clk = clk_register_mux(NULL, "uart2_mclk", uart_parents, | 964 | clk = clk_register_mux(NULL, "uart2_mclk", uart_parents, |
958 | ARRAY_SIZE(uart_parents), 0, SPEAR1310_RAS_CTRL_REG0, | 965 | ARRAY_SIZE(uart_parents), CLK_SET_RATE_NO_REPARENT, |
959 | SPEAR1310_UART2_CLK_SHIFT, SPEAR1310_RAS_UART_CLK_MASK, | 966 | SPEAR1310_RAS_CTRL_REG0, SPEAR1310_UART2_CLK_SHIFT, |
960 | 0, &_lock); | 967 | SPEAR1310_RAS_UART_CLK_MASK, 0, &_lock); |
961 | clk_register_clkdev(clk, "uart2_mclk", NULL); | 968 | clk_register_clkdev(clk, "uart2_mclk", NULL); |
962 | 969 | ||
963 | clk = clk_register_gate(NULL, "uart2_clk", "uart2_mclk", 0, | 970 | clk = clk_register_gate(NULL, "uart2_clk", "uart2_mclk", 0, |
@@ -966,9 +973,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
966 | clk_register_clkdev(clk, NULL, "5c900000.serial"); | 973 | clk_register_clkdev(clk, NULL, "5c900000.serial"); |
967 | 974 | ||
968 | clk = clk_register_mux(NULL, "uart3_mclk", uart_parents, | 975 | clk = clk_register_mux(NULL, "uart3_mclk", uart_parents, |
969 | ARRAY_SIZE(uart_parents), 0, SPEAR1310_RAS_CTRL_REG0, | 976 | ARRAY_SIZE(uart_parents), CLK_SET_RATE_NO_REPARENT, |
970 | SPEAR1310_UART3_CLK_SHIFT, SPEAR1310_RAS_UART_CLK_MASK, | 977 | SPEAR1310_RAS_CTRL_REG0, SPEAR1310_UART3_CLK_SHIFT, |
971 | 0, &_lock); | 978 | SPEAR1310_RAS_UART_CLK_MASK, 0, &_lock); |
972 | clk_register_clkdev(clk, "uart3_mclk", NULL); | 979 | clk_register_clkdev(clk, "uart3_mclk", NULL); |
973 | 980 | ||
974 | clk = clk_register_gate(NULL, "uart3_clk", "uart3_mclk", 0, | 981 | clk = clk_register_gate(NULL, "uart3_clk", "uart3_mclk", 0, |
@@ -977,9 +984,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
977 | clk_register_clkdev(clk, NULL, "5ca00000.serial"); | 984 | clk_register_clkdev(clk, NULL, "5ca00000.serial"); |
978 | 985 | ||
979 | clk = clk_register_mux(NULL, "uart4_mclk", uart_parents, | 986 | clk = clk_register_mux(NULL, "uart4_mclk", uart_parents, |
980 | ARRAY_SIZE(uart_parents), 0, SPEAR1310_RAS_CTRL_REG0, | 987 | ARRAY_SIZE(uart_parents), CLK_SET_RATE_NO_REPARENT, |
981 | SPEAR1310_UART4_CLK_SHIFT, SPEAR1310_RAS_UART_CLK_MASK, | 988 | SPEAR1310_RAS_CTRL_REG0, SPEAR1310_UART4_CLK_SHIFT, |
982 | 0, &_lock); | 989 | SPEAR1310_RAS_UART_CLK_MASK, 0, &_lock); |
983 | clk_register_clkdev(clk, "uart4_mclk", NULL); | 990 | clk_register_clkdev(clk, "uart4_mclk", NULL); |
984 | 991 | ||
985 | clk = clk_register_gate(NULL, "uart4_clk", "uart4_mclk", 0, | 992 | clk = clk_register_gate(NULL, "uart4_clk", "uart4_mclk", 0, |
@@ -988,9 +995,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
988 | clk_register_clkdev(clk, NULL, "5cb00000.serial"); | 995 | clk_register_clkdev(clk, NULL, "5cb00000.serial"); |
989 | 996 | ||
990 | clk = clk_register_mux(NULL, "uart5_mclk", uart_parents, | 997 | clk = clk_register_mux(NULL, "uart5_mclk", uart_parents, |
991 | ARRAY_SIZE(uart_parents), 0, SPEAR1310_RAS_CTRL_REG0, | 998 | ARRAY_SIZE(uart_parents), CLK_SET_RATE_NO_REPARENT, |
992 | SPEAR1310_UART5_CLK_SHIFT, SPEAR1310_RAS_UART_CLK_MASK, | 999 | SPEAR1310_RAS_CTRL_REG0, SPEAR1310_UART5_CLK_SHIFT, |
993 | 0, &_lock); | 1000 | SPEAR1310_RAS_UART_CLK_MASK, 0, &_lock); |
994 | clk_register_clkdev(clk, "uart5_mclk", NULL); | 1001 | clk_register_clkdev(clk, "uart5_mclk", NULL); |
995 | 1002 | ||
996 | clk = clk_register_gate(NULL, "uart5_clk", "uart5_mclk", 0, | 1003 | clk = clk_register_gate(NULL, "uart5_clk", "uart5_mclk", 0, |
@@ -999,9 +1006,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
999 | clk_register_clkdev(clk, NULL, "5cc00000.serial"); | 1006 | clk_register_clkdev(clk, NULL, "5cc00000.serial"); |
1000 | 1007 | ||
1001 | clk = clk_register_mux(NULL, "i2c1_mclk", i2c_parents, | 1008 | clk = clk_register_mux(NULL, "i2c1_mclk", i2c_parents, |
1002 | ARRAY_SIZE(i2c_parents), 0, SPEAR1310_RAS_CTRL_REG0, | 1009 | ARRAY_SIZE(i2c_parents), CLK_SET_RATE_NO_REPARENT, |
1003 | SPEAR1310_I2C1_CLK_SHIFT, SPEAR1310_I2C_CLK_MASK, 0, | 1010 | SPEAR1310_RAS_CTRL_REG0, SPEAR1310_I2C1_CLK_SHIFT, |
1004 | &_lock); | 1011 | SPEAR1310_I2C_CLK_MASK, 0, &_lock); |
1005 | clk_register_clkdev(clk, "i2c1_mclk", NULL); | 1012 | clk_register_clkdev(clk, "i2c1_mclk", NULL); |
1006 | 1013 | ||
1007 | clk = clk_register_gate(NULL, "i2c1_clk", "i2c1_mclk", 0, | 1014 | clk = clk_register_gate(NULL, "i2c1_clk", "i2c1_mclk", 0, |
@@ -1010,9 +1017,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
1010 | clk_register_clkdev(clk, NULL, "5cd00000.i2c"); | 1017 | clk_register_clkdev(clk, NULL, "5cd00000.i2c"); |
1011 | 1018 | ||
1012 | clk = clk_register_mux(NULL, "i2c2_mclk", i2c_parents, | 1019 | clk = clk_register_mux(NULL, "i2c2_mclk", i2c_parents, |
1013 | ARRAY_SIZE(i2c_parents), 0, SPEAR1310_RAS_CTRL_REG0, | 1020 | ARRAY_SIZE(i2c_parents), CLK_SET_RATE_NO_REPARENT, |
1014 | SPEAR1310_I2C2_CLK_SHIFT, SPEAR1310_I2C_CLK_MASK, 0, | 1021 | SPEAR1310_RAS_CTRL_REG0, SPEAR1310_I2C2_CLK_SHIFT, |
1015 | &_lock); | 1022 | SPEAR1310_I2C_CLK_MASK, 0, &_lock); |
1016 | clk_register_clkdev(clk, "i2c2_mclk", NULL); | 1023 | clk_register_clkdev(clk, "i2c2_mclk", NULL); |
1017 | 1024 | ||
1018 | clk = clk_register_gate(NULL, "i2c2_clk", "i2c2_mclk", 0, | 1025 | clk = clk_register_gate(NULL, "i2c2_clk", "i2c2_mclk", 0, |
@@ -1021,9 +1028,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
1021 | clk_register_clkdev(clk, NULL, "5ce00000.i2c"); | 1028 | clk_register_clkdev(clk, NULL, "5ce00000.i2c"); |
1022 | 1029 | ||
1023 | clk = clk_register_mux(NULL, "i2c3_mclk", i2c_parents, | 1030 | clk = clk_register_mux(NULL, "i2c3_mclk", i2c_parents, |
1024 | ARRAY_SIZE(i2c_parents), 0, SPEAR1310_RAS_CTRL_REG0, | 1031 | ARRAY_SIZE(i2c_parents), CLK_SET_RATE_NO_REPARENT, |
1025 | SPEAR1310_I2C3_CLK_SHIFT, SPEAR1310_I2C_CLK_MASK, 0, | 1032 | SPEAR1310_RAS_CTRL_REG0, SPEAR1310_I2C3_CLK_SHIFT, |
1026 | &_lock); | 1033 | SPEAR1310_I2C_CLK_MASK, 0, &_lock); |
1027 | clk_register_clkdev(clk, "i2c3_mclk", NULL); | 1034 | clk_register_clkdev(clk, "i2c3_mclk", NULL); |
1028 | 1035 | ||
1029 | clk = clk_register_gate(NULL, "i2c3_clk", "i2c3_mclk", 0, | 1036 | clk = clk_register_gate(NULL, "i2c3_clk", "i2c3_mclk", 0, |
@@ -1032,9 +1039,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
1032 | clk_register_clkdev(clk, NULL, "5cf00000.i2c"); | 1039 | clk_register_clkdev(clk, NULL, "5cf00000.i2c"); |
1033 | 1040 | ||
1034 | clk = clk_register_mux(NULL, "i2c4_mclk", i2c_parents, | 1041 | clk = clk_register_mux(NULL, "i2c4_mclk", i2c_parents, |
1035 | ARRAY_SIZE(i2c_parents), 0, SPEAR1310_RAS_CTRL_REG0, | 1042 | ARRAY_SIZE(i2c_parents), CLK_SET_RATE_NO_REPARENT, |
1036 | SPEAR1310_I2C4_CLK_SHIFT, SPEAR1310_I2C_CLK_MASK, 0, | 1043 | SPEAR1310_RAS_CTRL_REG0, SPEAR1310_I2C4_CLK_SHIFT, |
1037 | &_lock); | 1044 | SPEAR1310_I2C_CLK_MASK, 0, &_lock); |
1038 | clk_register_clkdev(clk, "i2c4_mclk", NULL); | 1045 | clk_register_clkdev(clk, "i2c4_mclk", NULL); |
1039 | 1046 | ||
1040 | clk = clk_register_gate(NULL, "i2c4_clk", "i2c4_mclk", 0, | 1047 | clk = clk_register_gate(NULL, "i2c4_clk", "i2c4_mclk", 0, |
@@ -1043,9 +1050,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
1043 | clk_register_clkdev(clk, NULL, "5d000000.i2c"); | 1050 | clk_register_clkdev(clk, NULL, "5d000000.i2c"); |
1044 | 1051 | ||
1045 | clk = clk_register_mux(NULL, "i2c5_mclk", i2c_parents, | 1052 | clk = clk_register_mux(NULL, "i2c5_mclk", i2c_parents, |
1046 | ARRAY_SIZE(i2c_parents), 0, SPEAR1310_RAS_CTRL_REG0, | 1053 | ARRAY_SIZE(i2c_parents), CLK_SET_RATE_NO_REPARENT, |
1047 | SPEAR1310_I2C5_CLK_SHIFT, SPEAR1310_I2C_CLK_MASK, 0, | 1054 | SPEAR1310_RAS_CTRL_REG0, SPEAR1310_I2C5_CLK_SHIFT, |
1048 | &_lock); | 1055 | SPEAR1310_I2C_CLK_MASK, 0, &_lock); |
1049 | clk_register_clkdev(clk, "i2c5_mclk", NULL); | 1056 | clk_register_clkdev(clk, "i2c5_mclk", NULL); |
1050 | 1057 | ||
1051 | clk = clk_register_gate(NULL, "i2c5_clk", "i2c5_mclk", 0, | 1058 | clk = clk_register_gate(NULL, "i2c5_clk", "i2c5_mclk", 0, |
@@ -1054,9 +1061,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
1054 | clk_register_clkdev(clk, NULL, "5d100000.i2c"); | 1061 | clk_register_clkdev(clk, NULL, "5d100000.i2c"); |
1055 | 1062 | ||
1056 | clk = clk_register_mux(NULL, "i2c6_mclk", i2c_parents, | 1063 | clk = clk_register_mux(NULL, "i2c6_mclk", i2c_parents, |
1057 | ARRAY_SIZE(i2c_parents), 0, SPEAR1310_RAS_CTRL_REG0, | 1064 | ARRAY_SIZE(i2c_parents), CLK_SET_RATE_NO_REPARENT, |
1058 | SPEAR1310_I2C6_CLK_SHIFT, SPEAR1310_I2C_CLK_MASK, 0, | 1065 | SPEAR1310_RAS_CTRL_REG0, SPEAR1310_I2C6_CLK_SHIFT, |
1059 | &_lock); | 1066 | SPEAR1310_I2C_CLK_MASK, 0, &_lock); |
1060 | clk_register_clkdev(clk, "i2c6_mclk", NULL); | 1067 | clk_register_clkdev(clk, "i2c6_mclk", NULL); |
1061 | 1068 | ||
1062 | clk = clk_register_gate(NULL, "i2c6_clk", "i2c6_mclk", 0, | 1069 | clk = clk_register_gate(NULL, "i2c6_clk", "i2c6_mclk", 0, |
@@ -1065,9 +1072,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
1065 | clk_register_clkdev(clk, NULL, "5d200000.i2c"); | 1072 | clk_register_clkdev(clk, NULL, "5d200000.i2c"); |
1066 | 1073 | ||
1067 | clk = clk_register_mux(NULL, "i2c7_mclk", i2c_parents, | 1074 | clk = clk_register_mux(NULL, "i2c7_mclk", i2c_parents, |
1068 | ARRAY_SIZE(i2c_parents), 0, SPEAR1310_RAS_CTRL_REG0, | 1075 | ARRAY_SIZE(i2c_parents), CLK_SET_RATE_NO_REPARENT, |
1069 | SPEAR1310_I2C7_CLK_SHIFT, SPEAR1310_I2C_CLK_MASK, 0, | 1076 | SPEAR1310_RAS_CTRL_REG0, SPEAR1310_I2C7_CLK_SHIFT, |
1070 | &_lock); | 1077 | SPEAR1310_I2C_CLK_MASK, 0, &_lock); |
1071 | clk_register_clkdev(clk, "i2c7_mclk", NULL); | 1078 | clk_register_clkdev(clk, "i2c7_mclk", NULL); |
1072 | 1079 | ||
1073 | clk = clk_register_gate(NULL, "i2c7_clk", "i2c7_mclk", 0, | 1080 | clk = clk_register_gate(NULL, "i2c7_clk", "i2c7_mclk", 0, |
@@ -1076,9 +1083,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
1076 | clk_register_clkdev(clk, NULL, "5d300000.i2c"); | 1083 | clk_register_clkdev(clk, NULL, "5d300000.i2c"); |
1077 | 1084 | ||
1078 | clk = clk_register_mux(NULL, "ssp1_mclk", ssp1_parents, | 1085 | clk = clk_register_mux(NULL, "ssp1_mclk", ssp1_parents, |
1079 | ARRAY_SIZE(ssp1_parents), 0, SPEAR1310_RAS_CTRL_REG0, | 1086 | ARRAY_SIZE(ssp1_parents), CLK_SET_RATE_NO_REPARENT, |
1080 | SPEAR1310_SSP1_CLK_SHIFT, SPEAR1310_SSP1_CLK_MASK, 0, | 1087 | SPEAR1310_RAS_CTRL_REG0, SPEAR1310_SSP1_CLK_SHIFT, |
1081 | &_lock); | 1088 | SPEAR1310_SSP1_CLK_MASK, 0, &_lock); |
1082 | clk_register_clkdev(clk, "ssp1_mclk", NULL); | 1089 | clk_register_clkdev(clk, "ssp1_mclk", NULL); |
1083 | 1090 | ||
1084 | clk = clk_register_gate(NULL, "ssp1_clk", "ssp1_mclk", 0, | 1091 | clk = clk_register_gate(NULL, "ssp1_clk", "ssp1_mclk", 0, |
@@ -1087,9 +1094,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
1087 | clk_register_clkdev(clk, NULL, "5d400000.spi"); | 1094 | clk_register_clkdev(clk, NULL, "5d400000.spi"); |
1088 | 1095 | ||
1089 | clk = clk_register_mux(NULL, "pci_mclk", pci_parents, | 1096 | clk = clk_register_mux(NULL, "pci_mclk", pci_parents, |
1090 | ARRAY_SIZE(pci_parents), 0, SPEAR1310_RAS_CTRL_REG0, | 1097 | ARRAY_SIZE(pci_parents), CLK_SET_RATE_NO_REPARENT, |
1091 | SPEAR1310_PCI_CLK_SHIFT, SPEAR1310_PCI_CLK_MASK, 0, | 1098 | SPEAR1310_RAS_CTRL_REG0, SPEAR1310_PCI_CLK_SHIFT, |
1092 | &_lock); | 1099 | SPEAR1310_PCI_CLK_MASK, 0, &_lock); |
1093 | clk_register_clkdev(clk, "pci_mclk", NULL); | 1100 | clk_register_clkdev(clk, "pci_mclk", NULL); |
1094 | 1101 | ||
1095 | clk = clk_register_gate(NULL, "pci_clk", "pci_mclk", 0, | 1102 | clk = clk_register_gate(NULL, "pci_clk", "pci_mclk", 0, |
@@ -1098,9 +1105,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
1098 | clk_register_clkdev(clk, NULL, "pci"); | 1105 | clk_register_clkdev(clk, NULL, "pci"); |
1099 | 1106 | ||
1100 | clk = clk_register_mux(NULL, "tdm1_mclk", tdm_parents, | 1107 | clk = clk_register_mux(NULL, "tdm1_mclk", tdm_parents, |
1101 | ARRAY_SIZE(tdm_parents), 0, SPEAR1310_RAS_CTRL_REG0, | 1108 | ARRAY_SIZE(tdm_parents), CLK_SET_RATE_NO_REPARENT, |
1102 | SPEAR1310_TDM1_CLK_SHIFT, SPEAR1310_TDM_CLK_MASK, 0, | 1109 | SPEAR1310_RAS_CTRL_REG0, SPEAR1310_TDM1_CLK_SHIFT, |
1103 | &_lock); | 1110 | SPEAR1310_TDM_CLK_MASK, 0, &_lock); |
1104 | clk_register_clkdev(clk, "tdm1_mclk", NULL); | 1111 | clk_register_clkdev(clk, "tdm1_mclk", NULL); |
1105 | 1112 | ||
1106 | clk = clk_register_gate(NULL, "tdm1_clk", "tdm1_mclk", 0, | 1113 | clk = clk_register_gate(NULL, "tdm1_clk", "tdm1_mclk", 0, |
@@ -1109,9 +1116,9 @@ void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base) | |||
1109 | clk_register_clkdev(clk, NULL, "tdm_hdlc.0"); | 1116 | clk_register_clkdev(clk, NULL, "tdm_hdlc.0"); |
1110 | 1117 | ||
1111 | clk = clk_register_mux(NULL, "tdm2_mclk", tdm_parents, | 1118 | clk = clk_register_mux(NULL, "tdm2_mclk", tdm_parents, |
1112 | ARRAY_SIZE(tdm_parents), 0, SPEAR1310_RAS_CTRL_REG0, | 1119 | ARRAY_SIZE(tdm_parents), CLK_SET_RATE_NO_REPARENT, |
1113 | SPEAR1310_TDM2_CLK_SHIFT, SPEAR1310_TDM_CLK_MASK, 0, | 1120 | SPEAR1310_RAS_CTRL_REG0, SPEAR1310_TDM2_CLK_SHIFT, |
1114 | &_lock); | 1121 | SPEAR1310_TDM_CLK_MASK, 0, &_lock); |
1115 | clk_register_clkdev(clk, "tdm2_mclk", NULL); | 1122 | clk_register_clkdev(clk, "tdm2_mclk", NULL); |
1116 | 1123 | ||
1117 | clk = clk_register_gate(NULL, "tdm2_clk", "tdm2_mclk", 0, | 1124 | clk = clk_register_gate(NULL, "tdm2_clk", "tdm2_mclk", 0, |