clk: tegra: add common infra for DT clocks
authorPeter De Schrijver <pdeschrijver@nvidia.com>
Mon, 14 Oct 2013 13:47:37 +0000 (16:47 +0300)
committerPeter De Schrijver <pdeschrijver@nvidia.com>
Tue, 26 Nov 2013 16:46:23 +0000 (18:46 +0200)
Introduce a common infrastructure for sharing clock initialization between
SoCs.

Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
drivers/clk/tegra/clk.c
drivers/clk/tegra/clk.h

index 3a95a8757ebccb3557ae1810df4cdfa0b6da1c98..a0430cd65d7cc531c32ce6f178ac3ff7423224f7 100644 (file)
@@ -212,6 +212,15 @@ void __init tegra_add_of_provider(struct device_node *np)
        of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
 }
 
+struct clk ** __init tegra_lookup_dt_id(int clk_id,
+                                       struct tegra_clk *tegra_clk)
+{
+       if (tegra_clk[clk_id].present)
+               return &clks[tegra_clk[clk_id].dt_id];
+       else
+               return NULL;
+}
+
 tegra_clk_apply_init_table_func tegra_clk_apply_init_table;
 
 void __init tegra_clocks_apply_init_table(void)
index c49df4dc5ac6849d495b80dafff2afdde4d72844..489dad59d1d58392d1d7345d6d478300d6e55204 100644 (file)
@@ -568,6 +568,11 @@ struct tegra_clk_duplicate {
                },                              \
        }
 
+struct tegra_clk {
+       int                     dt_id;
+       bool                    present;
+};
+
 void tegra_init_from_table(struct tegra_clk_init_table *tbl,
                struct clk *clks[], int clk_max);
 
@@ -577,6 +582,8 @@ void tegra_init_dup_clks(struct tegra_clk_duplicate *dup_list,
 struct tegra_clk_periph_regs *get_reg_bank(int clkid);
 struct clk **tegra_clk_init(int num, int periph_banks);
 
+struct clk **tegra_lookup_dt_id(int clk_id, struct tegra_clk *tegra_clk);
+
 void tegra_add_of_provider(struct device_node *np);
 
 void tegra114_clock_tune_cpu_trimmers_high(void);