clk: tegra30: Use custom CCLK implementation
authorDmitry Osipenko <digetx@gmail.com>
Thu, 19 Mar 2020 19:02:22 +0000 (22:02 +0300)
committerThierry Reding <treding@nvidia.com>
Tue, 12 May 2020 20:48:43 +0000 (22:48 +0200)
We're going to use the generic cpufreq-dt driver on Tegra30 and thus CCLK
intermediate re-parenting will be performed by the clock driver. There is
now special CCLK implementation that supports all CCLK quirks, this patch
makes Tegra30 SoCs to use that implementation.

Acked-by: Peter De Schrijver <pdeschrijver@nvidia.com>
Tested-by: Peter Geis <pgwipeout@gmail.com>
Tested-by: Marcel Ziswiler <marcel@ziswiler.com>
Tested-by: Jasper Korten <jja2000@gmail.com>
Tested-by: David Heidelberg <david@ixit.cz>
Tested-by: Nicolas Chauvet <kwizart@gmail.com>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/clk/tegra/clk-tegra30.c

index 3255f82..37244a7 100644 (file)
@@ -499,6 +499,8 @@ static struct tegra_clk_pll_params pll_x_params __ro_after_init = {
        .freq_table = pll_x_freq_table,
        .flags = TEGRA_PLL_HAS_CPCON | TEGRA_PLL_SET_DCCON |
                 TEGRA_PLL_USE_LOCK | TEGRA_PLL_HAS_LOCK_ENABLE,
+       .pre_rate_change = tegra_cclk_pre_pllx_rate_change,
+       .post_rate_change = tegra_cclk_post_pllx_rate_change,
 };
 
 static struct tegra_clk_pll_params pll_e_params __ro_after_init = {
@@ -926,11 +928,11 @@ static void __init tegra30_super_clk_init(void)
        clk_register_clkdev(clk, "pll_p_out4_cclkg", NULL);
 
        /* CCLKG */
-       clk = tegra_clk_register_super_mux("cclk_g", cclk_g_parents,
+       clk = tegra_clk_register_super_cclk("cclk_g", cclk_g_parents,
                                  ARRAY_SIZE(cclk_g_parents),
                                  CLK_SET_RATE_PARENT,
                                  clk_base + CCLKG_BURST_POLICY,
-                                 0, 4, 0, 0, NULL);
+                                 0, NULL);
        clks[TEGRA30_CLK_CCLK_G] = clk;
 
        /*