diff options
author | Tony Lindgren <tony@atomide.com> | 2006-09-25 06:27:20 -0400 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2006-09-25 06:27:20 -0400 |
commit | 90afd5cb2ac0977c38e83b6b21493da911b242b3 (patch) | |
tree | 7d0dedf7bfedb76e9bb2149f7f8aec1aaed159f9 /arch/arm/mach-omap2/clock.c | |
parent | 1630b52ddf4fc27e0dc421a57e4788bf9d3886cc (diff) |
ARM: OMAP: Sync clocks with linux-omap tree
Mostly clean up CONFIG_OMAP_RESET_CLOCKS. Also includes a
patch from Imre Deak to make McSPI clocks use id.
Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2/clock.c')
-rw-r--r-- | arch/arm/mach-omap2/clock.c | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c index 26ac49ecb78d..0de201c3d50b 100644 --- a/arch/arm/mach-omap2/clock.c +++ b/arch/arm/mach-omap2/clock.c | |||
@@ -1025,12 +1025,29 @@ static int omap2_select_table_rate(struct clk * clk, unsigned long rate) | |||
1025 | * Omap2 clock reset and init functions | 1025 | * Omap2 clock reset and init functions |
1026 | *-------------------------------------------------------------------------*/ | 1026 | *-------------------------------------------------------------------------*/ |
1027 | 1027 | ||
1028 | #ifdef CONFIG_OMAP_RESET_CLOCKS | ||
1029 | static void __init omap2_clk_disable_unused(struct clk *clk) | ||
1030 | { | ||
1031 | u32 regval32; | ||
1032 | |||
1033 | regval32 = __raw_readl(clk->enable_reg); | ||
1034 | if ((regval32 & (1 << clk->enable_bit)) == 0) | ||
1035 | return; | ||
1036 | |||
1037 | printk(KERN_INFO "Disabling unused clock \"%s\"\n", clk->name); | ||
1038 | _omap2_clk_disable(clk); | ||
1039 | } | ||
1040 | #else | ||
1041 | #define omap2_clk_disable_unused NULL | ||
1042 | #endif | ||
1043 | |||
1028 | static struct clk_functions omap2_clk_functions = { | 1044 | static struct clk_functions omap2_clk_functions = { |
1029 | .clk_enable = omap2_clk_enable, | 1045 | .clk_enable = omap2_clk_enable, |
1030 | .clk_disable = omap2_clk_disable, | 1046 | .clk_disable = omap2_clk_disable, |
1031 | .clk_round_rate = omap2_clk_round_rate, | 1047 | .clk_round_rate = omap2_clk_round_rate, |
1032 | .clk_set_rate = omap2_clk_set_rate, | 1048 | .clk_set_rate = omap2_clk_set_rate, |
1033 | .clk_set_parent = omap2_clk_set_parent, | 1049 | .clk_set_parent = omap2_clk_set_parent, |
1050 | .clk_disable_unused = omap2_clk_disable_unused, | ||
1034 | }; | 1051 | }; |
1035 | 1052 | ||
1036 | static void __init omap2_get_crystal_rate(struct clk *osc, struct clk *sys) | 1053 | static void __init omap2_get_crystal_rate(struct clk *osc, struct clk *sys) |
@@ -1070,28 +1087,6 @@ void omap2_clk_prepare_for_reboot(void) | |||
1070 | clk_set_rate(vclk, rate); | 1087 | clk_set_rate(vclk, rate); |
1071 | } | 1088 | } |
1072 | 1089 | ||
1073 | #ifdef CONFIG_OMAP_RESET_CLOCKS | ||
1074 | static void __init omap2_disable_unused_clocks(void) | ||
1075 | { | ||
1076 | struct clk *ck; | ||
1077 | u32 regval32; | ||
1078 | |||
1079 | list_for_each_entry(ck, &clocks, node) { | ||
1080 | if (ck->usecount > 0 || (ck->flags & ALWAYS_ENABLED) || | ||
1081 | ck->enable_reg == 0) | ||
1082 | continue; | ||
1083 | |||
1084 | regval32 = __raw_readl(ck->enable_reg); | ||
1085 | if ((regval32 & (1 << ck->enable_bit)) == 0) | ||
1086 | continue; | ||
1087 | |||
1088 | printk(KERN_INFO "Disabling unused clock \"%s\"\n", ck->name); | ||
1089 | _omap2_clk_disable(ck); | ||
1090 | } | ||
1091 | } | ||
1092 | late_initcall(omap2_disable_unused_clocks); | ||
1093 | #endif | ||
1094 | |||
1095 | /* | 1090 | /* |
1096 | * Switch the MPU rate if specified on cmdline. | 1091 | * Switch the MPU rate if specified on cmdline. |
1097 | * We cannot do this early until cmdline is parsed. | 1092 | * We cannot do this early until cmdline is parsed. |