summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorAlex Frid <afrid@nvidia.com>2012-06-22 12:31:44 -0700
committerRohan Somvanshi <rsomvanshi@nvidia.com>2012-07-13 05:47:52 -0700
commite15e5370dcaddeaf033368a652e0500d7de67c41 (patch)
tree78e44d4e83297d688b8dd093310e80c4f5decc70 /arch
parent409dce46df80f7ace06187c5879e15aa99494a9a (diff)
ARM: tegra: clock: Record shared bus backup rate
Added shared bus backup rate entry to clock descriptor; initialized it for cbus (currently the only shared bus with backup source). Bug 1005576 Change-Id: I8124aa87f1dc307e42417da8f78797cfaf71e5dc Signed-off-by: Alex Frid <afrid@nvidia.com> Reviewed-on: http://git-master/r/110934 Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com> Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com> (cherry picked from commit bc5ed688929c3c0ca920b5e9663cf9c6fb85c00f) Reviewed-on: http://git-master/r/114757 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Jihoon Bang <jbang@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/clock.h8
-rw-r--r--arch/arm/mach-tegra/tegra3_clocks.c3
2 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/clock.h b/arch/arm/mach-tegra/clock.h
index a9945e3c2296..8af1e1b21787 100644
--- a/arch/arm/mach-tegra/clock.h
+++ b/arch/arm/mach-tegra/clock.h
@@ -76,6 +76,12 @@ struct clk_mux_sel {
u32 value;
};
+struct clk_backup {
+ struct clk *input;
+ u32 value;
+ unsigned long bus_rate;
+};
+
struct clk_pll_freq_table {
unsigned long input_rate;
unsigned long output_rate;
@@ -152,7 +158,7 @@ struct clk {
u32 reg_shift;
struct list_head shared_bus_list;
- struct clk_mux_sel shared_bus_backup;
+ struct clk_backup shared_bus_backup;
union {
struct {
diff --git a/arch/arm/mach-tegra/tegra3_clocks.c b/arch/arm/mach-tegra/tegra3_clocks.c
index e109ffad47ae..3201a6e538c0 100644
--- a/arch/arm/mach-tegra/tegra3_clocks.c
+++ b/arch/arm/mach-tegra/tegra3_clocks.c
@@ -2777,6 +2777,9 @@ static void tegra3_clk_cbus_init(struct clk *c)
{
c->state = OFF;
c->set = true;
+ c->shared_bus_backup.bus_rate =
+ clk_get_rate(c->shared_bus_backup.input) /
+ c->shared_bus_backup.value;
}
static int tegra3_clk_cbus_enable(struct clk *c)