aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter De Schrijver <pdeschrijver@nvidia.com>2013-10-14 09:47:37 -0400
committerPeter De Schrijver <pdeschrijver@nvidia.com>2013-11-26 11:46:23 -0500
commitb8700d506ac4050fd96ce9305df04df811365326 (patch)
treecd3cd4be2dff9c903c0c9ca3965520715df36026
parenta59ba9565ee20d162e858de03b9eebc0b9dbd8b6 (diff)
clk: tegra: add common infra for DT clocks
Introduce a common infrastructure for sharing clock initialization between SoCs. Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
-rw-r--r--drivers/clk/tegra/clk.c9
-rw-r--r--drivers/clk/tegra/clk.h7
2 files changed, 16 insertions, 0 deletions
diff --git a/drivers/clk/tegra/clk.c b/drivers/clk/tegra/clk.c
index 3a95a8757ebc..a0430cd65d7c 100644
--- a/drivers/clk/tegra/clk.c
+++ b/drivers/clk/tegra/clk.c
@@ -212,6 +212,15 @@ void __init tegra_add_of_provider(struct device_node *np)
212 of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); 212 of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
213} 213}
214 214
215struct clk ** __init tegra_lookup_dt_id(int clk_id,
216 struct tegra_clk *tegra_clk)
217{
218 if (tegra_clk[clk_id].present)
219 return &clks[tegra_clk[clk_id].dt_id];
220 else
221 return NULL;
222}
223
215tegra_clk_apply_init_table_func tegra_clk_apply_init_table; 224tegra_clk_apply_init_table_func tegra_clk_apply_init_table;
216 225
217void __init tegra_clocks_apply_init_table(void) 226void __init tegra_clocks_apply_init_table(void)
diff --git a/drivers/clk/tegra/clk.h b/drivers/clk/tegra/clk.h
index c49df4dc5ac6..489dad59d1d5 100644
--- a/drivers/clk/tegra/clk.h
+++ b/drivers/clk/tegra/clk.h
@@ -568,6 +568,11 @@ struct tegra_clk_duplicate {
568 }, \ 568 }, \
569 } 569 }
570 570
571struct tegra_clk {
572 int dt_id;
573 bool present;
574};
575
571void tegra_init_from_table(struct tegra_clk_init_table *tbl, 576void tegra_init_from_table(struct tegra_clk_init_table *tbl,
572 struct clk *clks[], int clk_max); 577 struct clk *clks[], int clk_max);
573 578
@@ -577,6 +582,8 @@ void tegra_init_dup_clks(struct tegra_clk_duplicate *dup_list,
577struct tegra_clk_periph_regs *get_reg_bank(int clkid); 582struct tegra_clk_periph_regs *get_reg_bank(int clkid);
578struct clk **tegra_clk_init(int num, int periph_banks); 583struct clk **tegra_clk_init(int num, int periph_banks);
579 584
585struct clk **tegra_lookup_dt_id(int clk_id, struct tegra_clk *tegra_clk);
586
580void tegra_add_of_provider(struct device_node *np); 587void tegra_add_of_provider(struct device_node *np);
581 588
582void tegra114_clock_tune_cpu_trimmers_high(void); 589void tegra114_clock_tune_cpu_trimmers_high(void);