diff options
author | Peter De Schrijver <pdeschrijver@nvidia.com> | 2013-10-14 09:47:37 -0400 |
---|---|---|
committer | Peter De Schrijver <pdeschrijver@nvidia.com> | 2013-11-26 11:46:23 -0500 |
commit | b8700d506ac4050fd96ce9305df04df811365326 (patch) | |
tree | cd3cd4be2dff9c903c0c9ca3965520715df36026 | |
parent | a59ba9565ee20d162e858de03b9eebc0b9dbd8b6 (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.c | 9 | ||||
-rw-r--r-- | drivers/clk/tegra/clk.h | 7 |
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 | ||
215 | struct 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 | |||
215 | tegra_clk_apply_init_table_func tegra_clk_apply_init_table; | 224 | tegra_clk_apply_init_table_func tegra_clk_apply_init_table; |
216 | 225 | ||
217 | void __init tegra_clocks_apply_init_table(void) | 226 | void __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 | ||
571 | struct tegra_clk { | ||
572 | int dt_id; | ||
573 | bool present; | ||
574 | }; | ||
575 | |||
571 | void tegra_init_from_table(struct tegra_clk_init_table *tbl, | 576 | void 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, | |||
577 | struct tegra_clk_periph_regs *get_reg_bank(int clkid); | 582 | struct tegra_clk_periph_regs *get_reg_bank(int clkid); |
578 | struct clk **tegra_clk_init(int num, int periph_banks); | 583 | struct clk **tegra_clk_init(int num, int periph_banks); |
579 | 584 | ||
585 | struct clk **tegra_lookup_dt_id(int clk_id, struct tegra_clk *tegra_clk); | ||
586 | |||
580 | void tegra_add_of_provider(struct device_node *np); | 587 | void tegra_add_of_provider(struct device_node *np); |
581 | 588 | ||
582 | void tegra114_clock_tune_cpu_trimmers_high(void); | 589 | void tegra114_clock_tune_cpu_trimmers_high(void); |