clk: tegra20: Use custom CCLK implementation
authorDmitry Osipenko <digetx@gmail.com>
Thu, 19 Mar 2020 19:02:21 +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 Tegra20 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 Tegra20 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-tegra20.c

index 085feb0..3efc651 100644 (file)
@@ -391,6 +391,8 @@ static struct tegra_clk_pll_params pll_x_params = {
        .lock_delay = 300,
        .freq_table = pll_x_freq_table,
        .flags = TEGRA_PLL_HAS_CPCON | 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 = {
@@ -702,9 +704,10 @@ static void tegra20_super_clk_init(void)
        struct clk *clk;
 
        /* CCLK */
-       clk = tegra_clk_register_super_mux("cclk", cclk_parents,
+       clk = tegra_clk_register_super_cclk("cclk", cclk_parents,
                              ARRAY_SIZE(cclk_parents), CLK_SET_RATE_PARENT,
-                             clk_base + CCLK_BURST_POLICY, 0, 4, 0, 0, NULL);
+                             clk_base + CCLK_BURST_POLICY, TEGRA20_SUPER_CLK,
+                             NULL);
        clks[TEGRA20_CLK_CCLK] = clk;
 
        /* SCLK */