diff options
author | Colin Cross <ccross@android.com> | 2010-11-19 15:38:32 -0800 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2010-12-01 18:14:06 -0800 |
commit | 6270fe170861d0be064c87e37e35fb71c5c0f165 (patch) | |
tree | e0dee8db1fc8c75c74c5e2ad4dfa99991aafa9e4 /arch/arm/mach-tegra/clock.h | |
parent | 33745e8d519504487acf0daeccd0ad8a69cd4a18 (diff) |
ARM: tegra: Add dvfs rails
The previous version of dvfs handled requirements between two
different voltage rails by using two sets of dvfs tables, one
for each rail. That method fails for vdd_aon, which must be
within 170 mV of vdd_core.
Instead, have each dvfs clock only set the voltage rail that
it directly depends on, and add a relationship system to the
voltage rails. When the voltage changes on one rail, it calls
update on all the rails that depend on it. The dependent rails
compare the new voltage of the original rail to their own
voltage, and update their own voltage as necessary.
Change-Id: I17b30a61c7c0c01e44702ab486238789abd47330
Signed-off-by: Colin Cross <ccross@android.com>
Diffstat (limited to 'arch/arm/mach-tegra/clock.h')
-rw-r--r-- | arch/arm/mach-tegra/clock.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/arm/mach-tegra/clock.h b/arch/arm/mach-tegra/clock.h index 42d9bd8849e0..1d6a9acba412 100644 --- a/arch/arm/mach-tegra/clock.h +++ b/arch/arm/mach-tegra/clock.h @@ -77,7 +77,7 @@ enum clk_state { struct clk { /* node for master clocks list */ struct list_head node; /* node for list of all clocks */ - struct list_head dvfs; /* list of dvfs dependencies */ + struct dvfs *dvfs; struct clk_lookup lookup; #ifdef CONFIG_DEBUG_FS @@ -90,7 +90,6 @@ struct clk { unsigned long rate; unsigned long max_rate; unsigned long min_rate; - bool is_dvfs; bool auto_dvfs; bool cansleep; u32 flags; @@ -161,7 +160,6 @@ struct clk *tegra_get_clock_by_name(const char *name); unsigned long clk_measure_input_freq(void); int clk_reparent(struct clk *c, struct clk *parent); void tegra_clk_init_from_table(struct tegra_clk_init_table *table); -void tegra_clk_set_dvfs_rates(void); void clk_set_cansleep(struct clk *c); unsigned long clk_get_rate_locked(struct clk *c); |