aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/clk/tegra/clk-pll.c40
-rw-r--r--drivers/clk/tegra/clk-tegra-super-gen4.c11
-rw-r--r--drivers/clk/tegra/clk-tegra210.c2
-rw-r--r--drivers/clk/tegra/clk.h6
4 files changed, 10 insertions, 49 deletions
diff --git a/drivers/clk/tegra/clk-pll.c b/drivers/clk/tegra/clk-pll.c
index 695ccb436cec..02f34e6b3bca 100644
--- a/drivers/clk/tegra/clk-pll.c
+++ b/drivers/clk/tegra/clk-pll.c
@@ -2610,46 +2610,6 @@ struct clk *tegra_clk_register_pllc_tegra210(const char *name,
2610 return clk; 2610 return clk;
2611} 2611}
2612 2612
2613struct clk *tegra_clk_register_pllxc_tegra210(const char *name,
2614 const char *parent_name, void __iomem *clk_base,
2615 void __iomem *pmc, unsigned long flags,
2616 struct tegra_clk_pll_params *pll_params,
2617 spinlock_t *lock)
2618{
2619 struct tegra_clk_pll *pll;
2620 struct clk *clk, *parent;
2621 unsigned long parent_rate;
2622
2623 parent = __clk_lookup(parent_name);
2624 if (!parent) {
2625 WARN(1, "parent clk %s of %s must be registered first\n",
2626 name, parent_name);
2627 return ERR_PTR(-EINVAL);
2628 }
2629
2630 if (!pll_params->pdiv_tohw)
2631 return ERR_PTR(-EINVAL);
2632
2633 parent_rate = clk_get_rate(parent);
2634
2635 pll_params->vco_min = _clip_vco_min(pll_params->vco_min, parent_rate);
2636
2637 if (pll_params->adjust_vco)
2638 pll_params->vco_min = pll_params->adjust_vco(pll_params,
2639 parent_rate);
2640
2641 pll = _tegra_init_pll(clk_base, pmc, pll_params, lock);
2642 if (IS_ERR(pll))
2643 return ERR_CAST(pll);
2644
2645 clk = _tegra_clk_register_pll(pll, name, parent_name, flags,
2646 &tegra_clk_pll_ops);
2647 if (IS_ERR(clk))
2648 kfree(pll);
2649
2650 return clk;
2651}
2652
2653struct clk *tegra_clk_register_pllss_tegra210(const char *name, 2613struct clk *tegra_clk_register_pllss_tegra210(const char *name,
2654 const char *parent_name, void __iomem *clk_base, 2614 const char *parent_name, void __iomem *clk_base,
2655 unsigned long flags, 2615 unsigned long flags,
diff --git a/drivers/clk/tegra/clk-tegra-super-gen4.c b/drivers/clk/tegra/clk-tegra-super-gen4.c
index 474de0f0c26d..4f6fd307cb70 100644
--- a/drivers/clk/tegra/clk-tegra-super-gen4.c
+++ b/drivers/clk/tegra/clk-tegra-super-gen4.c
@@ -232,8 +232,15 @@ static void __init tegra_super_clk_init(void __iomem *clk_base,
232 if (!dt_clk) 232 if (!dt_clk)
233 return; 233 return;
234 234
235 clk = tegra_clk_register_pllxc("pll_x", "pll_ref", clk_base, 235#if defined(CONFIG_ARCH_TEGRA_210_SOC)
236 pmc_base, CLK_IGNORE_UNUSED, params, NULL); 236 if (gen_info->gen == gen5)
237 clk = tegra_clk_register_pllc_tegra210("pll_x", "pll_ref",
238 clk_base, pmc_base, CLK_IGNORE_UNUSED, params, NULL);
239 else
240#endif
241 clk = tegra_clk_register_pllxc("pll_x", "pll_ref", clk_base,
242 pmc_base, CLK_IGNORE_UNUSED, params, NULL);
243
237 *dt_clk = clk; 244 *dt_clk = clk;
238 245
239 /* PLLX_OUT0 */ 246 /* PLLX_OUT0 */
diff --git a/drivers/clk/tegra/clk-tegra210.c b/drivers/clk/tegra/clk-tegra210.c
index 1e470ca154f6..4fa7ab31fb66 100644
--- a/drivers/clk/tegra/clk-tegra210.c
+++ b/drivers/clk/tegra/clk-tegra210.c
@@ -2701,7 +2701,7 @@ static void __init tegra210_pll_init(void __iomem *clk_base,
2701 struct clk *clk; 2701 struct clk *clk;
2702 2702
2703 /* PLLC */ 2703 /* PLLC */
2704 clk = tegra_clk_register_pllxc_tegra210("pll_c", "pll_ref", clk_base, 2704 clk = tegra_clk_register_pllc_tegra210("pll_c", "pll_ref", clk_base,
2705 pmc, 0, &pll_c_params, NULL); 2705 pmc, 0, &pll_c_params, NULL);
2706 if (!WARN_ON(IS_ERR(clk))) 2706 if (!WARN_ON(IS_ERR(clk)))
2707 clk_register_clkdev(clk, "pll_c", NULL); 2707 clk_register_clkdev(clk, "pll_c", NULL);
diff --git a/drivers/clk/tegra/clk.h b/drivers/clk/tegra/clk.h
index 945b07093afa..872f1189ad7f 100644
--- a/drivers/clk/tegra/clk.h
+++ b/drivers/clk/tegra/clk.h
@@ -362,12 +362,6 @@ struct clk *tegra_clk_register_pllxc(const char *name, const char *parent_name,
362 struct tegra_clk_pll_params *pll_params, 362 struct tegra_clk_pll_params *pll_params,
363 spinlock_t *lock); 363 spinlock_t *lock);
364 364
365struct clk *tegra_clk_register_pllxc_tegra210(const char *name,
366 const char *parent_name, void __iomem *clk_base,
367 void __iomem *pmc, unsigned long flags,
368 struct tegra_clk_pll_params *pll_params,
369 spinlock_t *lock);
370
371struct clk *tegra_clk_register_pllm(const char *name, const char *parent_name, 365struct clk *tegra_clk_register_pllm(const char *name, const char *parent_name,
372 void __iomem *clk_base, void __iomem *pmc, 366 void __iomem *clk_base, void __iomem *pmc,
373 unsigned long flags, 367 unsigned long flags,