diff options
Diffstat (limited to 'drivers/clk/tegra/clk-tegra210.c')
-rw-r--r-- | drivers/clk/tegra/clk-tegra210.c | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/drivers/clk/tegra/clk-tegra210.c b/drivers/clk/tegra/clk-tegra210.c index 3d0edee1f9fe..b8551813ec43 100644 --- a/drivers/clk/tegra/clk-tegra210.c +++ b/drivers/clk/tegra/clk-tegra210.c | |||
@@ -92,6 +92,7 @@ | |||
92 | #define PLLE_AUX 0x48c | 92 | #define PLLE_AUX 0x48c |
93 | #define PLLRE_BASE 0x4c4 | 93 | #define PLLRE_BASE 0x4c4 |
94 | #define PLLRE_MISC0 0x4c8 | 94 | #define PLLRE_MISC0 0x4c8 |
95 | #define PLLRE_OUT1 0x4cc | ||
95 | #define PLLDP_BASE 0x590 | 96 | #define PLLDP_BASE 0x590 |
96 | #define PLLDP_MISC 0x594 | 97 | #define PLLDP_MISC 0x594 |
97 | 98 | ||
@@ -2150,6 +2151,7 @@ static struct tegra_clk tegra210_clks[tegra_clk_max] __initdata = { | |||
2150 | [tegra_clk_clk72Mhz_8] = { .dt_id = TEGRA210_CLK_CLK72MHZ, .present = true }, | 2151 | [tegra_clk_clk72Mhz_8] = { .dt_id = TEGRA210_CLK_CLK72MHZ, .present = true }, |
2151 | [tegra_clk_vic03_8] = { .dt_id = TEGRA210_CLK_VIC03, .present = true }, | 2152 | [tegra_clk_vic03_8] = { .dt_id = TEGRA210_CLK_VIC03, .present = true }, |
2152 | [tegra_clk_dpaux] = { .dt_id = TEGRA210_CLK_DPAUX, .present = true }, | 2153 | [tegra_clk_dpaux] = { .dt_id = TEGRA210_CLK_DPAUX, .present = true }, |
2154 | [tegra_clk_dpaux1] = { .dt_id = TEGRA210_CLK_DPAUX1, .present = true }, | ||
2153 | [tegra_clk_sor0] = { .dt_id = TEGRA210_CLK_SOR0, .present = true }, | 2155 | [tegra_clk_sor0] = { .dt_id = TEGRA210_CLK_SOR0, .present = true }, |
2154 | [tegra_clk_sor0_lvds] = { .dt_id = TEGRA210_CLK_SOR0_LVDS, .present = true }, | 2156 | [tegra_clk_sor0_lvds] = { .dt_id = TEGRA210_CLK_SOR0_LVDS, .present = true }, |
2155 | [tegra_clk_gpu] = { .dt_id = TEGRA210_CLK_GPU, .present = true }, | 2157 | [tegra_clk_gpu] = { .dt_id = TEGRA210_CLK_GPU, .present = true }, |
@@ -2461,6 +2463,18 @@ static __init void tegra210_periph_clk_init(void __iomem *clk_base, | |||
2461 | 1, 2); | 2463 | 1, 2); |
2462 | clks[TEGRA210_CLK_XUSB_SS_DIV2] = clk; | 2464 | clks[TEGRA210_CLK_XUSB_SS_DIV2] = clk; |
2463 | 2465 | ||
2466 | clk = tegra_clk_register_periph_fixed("dpaux", "pll_p", 0, clk_base, | ||
2467 | 1, 17, 181); | ||
2468 | clks[TEGRA210_CLK_DPAUX] = clk; | ||
2469 | |||
2470 | clk = tegra_clk_register_periph_fixed("dpaux1", "pll_p", 0, clk_base, | ||
2471 | 1, 17, 207); | ||
2472 | clks[TEGRA210_CLK_DPAUX1] = clk; | ||
2473 | |||
2474 | clk = tegra_clk_register_periph_fixed("sor_safe", "pll_p", 0, clk_base, | ||
2475 | 1, 17, 222); | ||
2476 | clks[TEGRA210_CLK_SOR_SAFE] = clk; | ||
2477 | |||
2464 | /* pll_d_dsi_out */ | 2478 | /* pll_d_dsi_out */ |
2465 | clk = clk_register_gate(NULL, "pll_d_dsi_out", "pll_d_out0", 0, | 2479 | clk = clk_register_gate(NULL, "pll_d_dsi_out", "pll_d_out0", 0, |
2466 | clk_base + PLLD_MISC0, 21, 0, &pll_d_lock); | 2480 | clk_base + PLLD_MISC0, 21, 0, &pll_d_lock); |
@@ -2640,8 +2654,10 @@ static void __init tegra210_pll_init(void __iomem *clk_base, | |||
2640 | clks[TEGRA210_CLK_PLL_D_OUT0] = clk; | 2654 | clks[TEGRA210_CLK_PLL_D_OUT0] = clk; |
2641 | 2655 | ||
2642 | /* PLLRE */ | 2656 | /* PLLRE */ |
2643 | clk = tegra_clk_register_pllre("pll_re_vco", "pll_ref", clk_base, pmc, | 2657 | clk = tegra_clk_register_pllre_tegra210("pll_re_vco", "pll_ref", |
2644 | 0, &pll_re_vco_params, &pll_re_lock, pll_ref_freq); | 2658 | clk_base, pmc, 0, |
2659 | &pll_re_vco_params, | ||
2660 | &pll_re_lock, pll_ref_freq); | ||
2645 | clk_register_clkdev(clk, "pll_re_vco", NULL); | 2661 | clk_register_clkdev(clk, "pll_re_vco", NULL); |
2646 | clks[TEGRA210_CLK_PLL_RE_VCO] = clk; | 2662 | clks[TEGRA210_CLK_PLL_RE_VCO] = clk; |
2647 | 2663 | ||
@@ -2651,6 +2667,15 @@ static void __init tegra210_pll_init(void __iomem *clk_base, | |||
2651 | clk_register_clkdev(clk, "pll_re_out", NULL); | 2667 | clk_register_clkdev(clk, "pll_re_out", NULL); |
2652 | clks[TEGRA210_CLK_PLL_RE_OUT] = clk; | 2668 | clks[TEGRA210_CLK_PLL_RE_OUT] = clk; |
2653 | 2669 | ||
2670 | clk = tegra_clk_register_divider("pll_re_out1_div", "pll_re_vco", | ||
2671 | clk_base + PLLRE_OUT1, 0, | ||
2672 | TEGRA_DIVIDER_ROUND_UP, | ||
2673 | 8, 8, 1, NULL); | ||
2674 | clk = tegra_clk_register_pll_out("pll_re_out1", "pll_re_out1_div", | ||
2675 | clk_base + PLLRE_OUT1, 1, 0, | ||
2676 | CLK_SET_RATE_PARENT, 0, NULL); | ||
2677 | clks[TEGRA210_CLK_PLL_RE_OUT1] = clk; | ||
2678 | |||
2654 | /* PLLE */ | 2679 | /* PLLE */ |
2655 | clk = tegra_clk_register_plle_tegra210("pll_e", "pll_ref", | 2680 | clk = tegra_clk_register_plle_tegra210("pll_e", "pll_ref", |
2656 | clk_base, 0, &pll_e_params, NULL); | 2681 | clk_base, 0, &pll_e_params, NULL); |