diff options
-rw-r--r-- | drivers/clk/samsung/clk-exynos5250.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/drivers/clk/samsung/clk-exynos5250.c b/drivers/clk/samsung/clk-exynos5250.c index cbbe423d4e2b..18d0b5ebd545 100644 --- a/drivers/clk/samsung/clk-exynos5250.c +++ b/drivers/clk/samsung/clk-exynos5250.c | |||
@@ -630,6 +630,27 @@ static struct samsung_pll_rate_table epll_24mhz_tbl[] __initdata = { | |||
630 | { }, | 630 | { }, |
631 | }; | 631 | }; |
632 | 632 | ||
633 | static struct samsung_pll_rate_table apll_24mhz_tbl[] __initdata = { | ||
634 | /* sorted in descending order */ | ||
635 | /* PLL_35XX_RATE(rate, m, p, s) */ | ||
636 | PLL_35XX_RATE(1700000000, 425, 6, 0), | ||
637 | PLL_35XX_RATE(1600000000, 200, 3, 0), | ||
638 | PLL_35XX_RATE(1500000000, 250, 4, 0), | ||
639 | PLL_35XX_RATE(1400000000, 175, 3, 0), | ||
640 | PLL_35XX_RATE(1300000000, 325, 6, 0), | ||
641 | PLL_35XX_RATE(1200000000, 200, 4, 0), | ||
642 | PLL_35XX_RATE(1100000000, 275, 6, 0), | ||
643 | PLL_35XX_RATE(1000000000, 125, 3, 0), | ||
644 | PLL_35XX_RATE(900000000, 150, 4, 0), | ||
645 | PLL_35XX_RATE(800000000, 100, 3, 0), | ||
646 | PLL_35XX_RATE(700000000, 175, 3, 1), | ||
647 | PLL_35XX_RATE(600000000, 200, 4, 1), | ||
648 | PLL_35XX_RATE(500000000, 125, 3, 1), | ||
649 | PLL_35XX_RATE(400000000, 100, 3, 1), | ||
650 | PLL_35XX_RATE(300000000, 200, 4, 2), | ||
651 | PLL_35XX_RATE(200000000, 100, 3, 2), | ||
652 | }; | ||
653 | |||
633 | static struct samsung_pll_clock exynos5250_plls[nr_plls] __initdata = { | 654 | static struct samsung_pll_clock exynos5250_plls[nr_plls] __initdata = { |
634 | [apll] = PLL_A(pll_35xx, fout_apll, "fout_apll", "fin_pll", APLL_LOCK, | 655 | [apll] = PLL_A(pll_35xx, fout_apll, "fout_apll", "fin_pll", APLL_LOCK, |
635 | APLL_CON0, "fout_apll", NULL), | 656 | APLL_CON0, "fout_apll", NULL), |
@@ -674,8 +695,10 @@ static void __init exynos5250_clk_init(struct device_node *np) | |||
674 | samsung_clk_register_mux(exynos5250_pll_pmux_clks, | 695 | samsung_clk_register_mux(exynos5250_pll_pmux_clks, |
675 | ARRAY_SIZE(exynos5250_pll_pmux_clks)); | 696 | ARRAY_SIZE(exynos5250_pll_pmux_clks)); |
676 | 697 | ||
677 | if (_get_rate("fin_pll") == 24 * MHZ) | 698 | if (_get_rate("fin_pll") == 24 * MHZ) { |
678 | exynos5250_plls[epll].rate_table = epll_24mhz_tbl; | 699 | exynos5250_plls[epll].rate_table = epll_24mhz_tbl; |
700 | exynos5250_plls[apll].rate_table = apll_24mhz_tbl; | ||
701 | } | ||
679 | 702 | ||
680 | if (_get_rate("mout_vpllsrc") == 24 * MHZ) | 703 | if (_get_rate("mout_vpllsrc") == 24 * MHZ) |
681 | exynos5250_plls[vpll].rate_table = vpll_24mhz_tbl; | 704 | exynos5250_plls[vpll].rate_table = vpll_24mhz_tbl; |