aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap/clock.c
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2008-11-04 11:35:03 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-02-08 06:38:39 -0500
commit897dcded6fb6565f4d1c22a55d21f135403db132 (patch)
treeda9c4028ed49a1482445131760b4fc45c6524abe /arch/arm/plat-omap/clock.c
parent548d849574847b788fe846fe21a41386063be161 (diff)
[ARM] omap: provide a NULL clock operations structure
... and use it for clocks which are ALWAYS_ENABLED. These clocks use a non-NULL enable_reg pointer for other purposes (such as selecting clock rates.) Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/plat-omap/clock.c')
-rw-r--r--arch/arm/plat-omap/clock.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c
index be6aab9c6834..529c4a9f012e 100644
--- a/arch/arm/plat-omap/clock.c
+++ b/arch/arm/plat-omap/clock.c
@@ -358,6 +358,23 @@ void clk_enable_init_clocks(void)
358} 358}
359EXPORT_SYMBOL(clk_enable_init_clocks); 359EXPORT_SYMBOL(clk_enable_init_clocks);
360 360
361/*
362 * Low level helpers
363 */
364static int clkll_enable_null(struct clk *clk)
365{
366 return 0;
367}
368
369static void clkll_disable_null(struct clk *clk)
370{
371}
372
373const struct clkops clkops_null = {
374 .enable = clkll_enable_null,
375 .disable = clkll_disable_null,
376};
377
361#ifdef CONFIG_CPU_FREQ 378#ifdef CONFIG_CPU_FREQ
362void clk_init_cpufreq_table(struct cpufreq_frequency_table **table) 379void clk_init_cpufreq_table(struct cpufreq_frequency_table **table)
363{ 380{
@@ -383,8 +400,10 @@ static int __init clk_disable_unused(void)
383 unsigned long flags; 400 unsigned long flags;
384 401
385 list_for_each_entry(ck, &clocks, node) { 402 list_for_each_entry(ck, &clocks, node) {
386 if (ck->usecount > 0 || (ck->flags & ALWAYS_ENABLED) || 403 if (ck->ops == &clkops_null)
387 ck->enable_reg == 0) 404 continue;
405
406 if (ck->usecount > 0 || ck->enable_reg == 0)
388 continue; 407 continue;
389 408
390 spin_lock_irqsave(&clockfw_lock, flags); 409 spin_lock_irqsave(&clockfw_lock, flags);