diff options
author | Alex Frid <afrid@nvidia.com> | 2013-09-19 15:08:33 -0700 |
---|---|---|
committer | Ajay Nandakumar <anandakumarm@nvidia.com> | 2013-10-03 19:17:28 +0530 |
commit | 0b2cb04e9f86865f507d92e677b9443849d845aa (patch) | |
tree | f990a9459b0d2b411502b7eb1dffbd1ab1bf3725 /arch/arm/mach-tegra/clock.h | |
parent | 1023b7ebd6009895dee1f92f96aaa05ffb9bdbb8 (diff) |
ARM: tegra12: clock: Support shared bus rate retention
Added Tegra12 shared bus rate retention mechanism: do not scale bus
clock to minimum rate if there is no rate request from shared users;
instead keep current bus rate.
This mechanism allows to reduce voltage scaling and pll re-locking
steps during shared bus on/off transitions provided underlying physical
clock is disabled when all floor and bandwidth users are disabled. It
should not be used with always-on buses like emc or system clock. For
now, retention is not enabled on any Tegra12 shared buses.
Change-Id: I9bc611311d0a801f11c094154a09d3456322395e
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/278178
Tested-by: Prashant Malani <pmalani@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
(cherry picked from commit 2e9524c6c42fc92bec83f032d6fe3571748e2059)
Signed-off-by: Ajay Nandakumar <anandakumarm@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/clock.h')
-rw-r--r-- | arch/arm/mach-tegra/clock.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/clock.h b/arch/arm/mach-tegra/clock.h index e79ba018402e..f2b4bfa74bab 100644 --- a/arch/arm/mach-tegra/clock.h +++ b/arch/arm/mach-tegra/clock.h @@ -85,6 +85,8 @@ struct clk; #define PERIPH_ON_APB (1 << 29) #define PERIPH_ON_CBUS (1 << 30) +#define SHARED_BUS_RETENTION (1 << 0) + #ifdef CONFIG_COMMON_CLK struct clk_tegra; #define to_clk_tegra(_hw) container_of(_hw, struct clk_tegra, hw) @@ -191,6 +193,7 @@ struct clk { struct clk_backup shared_bus_backup; struct clk *child_bus; unsigned long override_rate; + u32 shared_bus_flags; union { struct { |