aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/clock.c
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2006-09-25 06:27:20 -0400
committerTony Lindgren <tony@atomide.com>2006-09-25 06:27:20 -0400
commit90afd5cb2ac0977c38e83b6b21493da911b242b3 (patch)
tree7d0dedf7bfedb76e9bb2149f7f8aec1aaed159f9 /arch/arm/mach-omap2/clock.c
parent1630b52ddf4fc27e0dc421a57e4788bf9d3886cc (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.c39
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
1029static 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
1028static struct clk_functions omap2_clk_functions = { 1044static 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
1036static void __init omap2_get_crystal_rate(struct clk *osc, struct clk *sys) 1053static 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
1074static 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}
1092late_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.