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
committerDan Willemsen <dwillemsen@nvidia.com>2012-03-22 23:50:53 -0700
commitab03d0ba0057fb98585a89009a0e79eeadcfaea9 (patch)
tree41faf15eb0999813d074ab4885715fef0674d5d7 /arch/arm/mach-tegra/tegra2_clocks.c
parent9c3519b0ad1e8d27693ee1b7da5954271532a954 (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> Rebase-Id: R7b6b27df16a32c68d84b92bfe1cdc8cf5242e3c4
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 294c308a1cc1..09fc5a9ec1bf 100644
--- a/arch/arm/mach-tegra/tegra2_clocks.c
+++ b/arch/arm/mach-tegra/tegra2_clocks.c
@@ -1042,6 +1042,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;
@@ -1063,6 +1065,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;
@@ -1099,6 +1104,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;
@@ -1129,6 +1137,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)) {