diff options
-rw-r--r-- | drivers/clk/tegra/clk-pll.c | 40 | ||||
-rw-r--r-- | drivers/clk/tegra/clk-tegra-super-gen4.c | 11 | ||||
-rw-r--r-- | drivers/clk/tegra/clk-tegra210.c | 2 | ||||
-rw-r--r-- | drivers/clk/tegra/clk.h | 6 |
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 | ||
2613 | struct 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 | |||
2653 | struct clk *tegra_clk_register_pllss_tegra210(const char *name, | 2613 | struct 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 | ||
365 | struct 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 | |||
371 | struct clk *tegra_clk_register_pllm(const char *name, const char *parent_name, | 365 | struct 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, |