diff options
author | Laxman Dewangan <ldewangan@nvidia.com> | 2012-02-19 11:28:10 +0530 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2012-03-22 23:50:53 -0700 |
commit | ab03d0ba0057fb98585a89009a0e79eeadcfaea9 (patch) | |
tree | 41faf15eb0999813d074ab4885715fef0674d5d7 /arch/arm/mach-tegra/tegra2_clocks.c | |
parent | 9c3519b0ad1e8d27693ee1b7da5954271532a954 (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.c | 11 |
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)) { |