summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/tegra2_clocks.c
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2012-02-19 11:28:10 +0530
committerSimone Willett <swillett@nvidia.com>2012-02-21 10:32:59 -0800
commit15e65f291f12c084c18956263ee61f005caf8a9e (patch)
tree091fd73ab3c630bb379525c4606757813dfd69a0 /arch/arm/mach-tegra/tegra2_clocks.c
parent8c2d09c318f905bd8c1cf451501e20c903fcaaef (diff)
ARM: tegra: clock: Support for clock source control without enable bit
Some of controller like i2c requires a different clock source which is not enabled/disabled by the clock bit in CAR register set. Handling such cases by looking for PERIPH_NO_ENB flag when calling clock enable/disable functions. Change-Id: Id0d1df7946d1c83d769116ae7a91546bd59d4478 Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-on: http://git-master/r/84709 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/tegra2_clocks.c')
-rw-r--r--arch/arm/mach-tegra/tegra2_clocks.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/tegra2_clocks.c b/arch/arm/mach-tegra/tegra2_clocks.c
index 969a32ba3722..9016dc3e0d77 100644
--- a/arch/arm/mach-tegra/tegra2_clocks.c
+++ b/arch/arm/mach-tegra/tegra2_clocks.c
@@ -1014,6 +1014,8 @@ static void tegra2_periph_clk_init(struct clk *c)
}
c->state = ON;
+ if (c->flags & PERIPH_NO_ENB)
+ return;
if (!c->u.periph.clk_num)
return;
@@ -1035,6 +1037,9 @@ static int tegra2_periph_clk_enable(struct clk *c)
int refcount;
pr_debug("%s on clock %s\n", __func__, c->name);
+ if (c->flags & PERIPH_NO_ENB)
+ return 0;
+
if (!c->u.periph.clk_num)
return 0;
@@ -1071,6 +1076,9 @@ static void tegra2_periph_clk_disable(struct clk *c)
pr_debug("%s on clock %s\n", __func__, c->name);
+ if (c->flags & PERIPH_NO_ENB)
+ return;
+
if (!c->u.periph.clk_num)
return;
@@ -1101,6 +1109,9 @@ static void tegra2_periph_clk_reset(struct clk *c, bool assert)
pr_debug("%s %s on clock %s\n", __func__,
assert ? "assert" : "deassert", c->name);
+ if (c->flags & PERIPH_NO_ENB)
+ return;
+
BUG_ON(!c->u.periph.clk_num);
if (!(c->flags & PERIPH_NO_RESET)) {