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 | |
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')
-rw-r--r-- | arch/arm/mach-omap2/clock.c | 39 | ||||
-rw-r--r-- | arch/arm/mach-omap2/clock.h | 18 |
2 files changed, 29 insertions, 28 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. |
diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h index 223152d9663f..8816f5a33a28 100644 --- a/arch/arm/mach-omap2/clock.h +++ b/arch/arm/mach-omap2/clock.h | |||
@@ -1368,7 +1368,8 @@ static struct clk mcbsp5_fck = { | |||
1368 | }; | 1368 | }; |
1369 | 1369 | ||
1370 | static struct clk mcspi1_ick = { | 1370 | static struct clk mcspi1_ick = { |
1371 | .name = "mcspi1_ick", | 1371 | .name = "mcspi_ick", |
1372 | .id = 1, | ||
1372 | .parent = &l4_ck, | 1373 | .parent = &l4_ck, |
1373 | .flags = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X, | 1374 | .flags = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X, |
1374 | .enable_reg = (void __iomem *)&CM_ICLKEN1_CORE, | 1375 | .enable_reg = (void __iomem *)&CM_ICLKEN1_CORE, |
@@ -1377,7 +1378,8 @@ static struct clk mcspi1_ick = { | |||
1377 | }; | 1378 | }; |
1378 | 1379 | ||
1379 | static struct clk mcspi1_fck = { | 1380 | static struct clk mcspi1_fck = { |
1380 | .name = "mcspi1_fck", | 1381 | .name = "mcspi_fck", |
1382 | .id = 1, | ||
1381 | .parent = &func_48m_ck, | 1383 | .parent = &func_48m_ck, |
1382 | .flags = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X, | 1384 | .flags = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X, |
1383 | .enable_reg = (void __iomem *)&CM_FCLKEN1_CORE, | 1385 | .enable_reg = (void __iomem *)&CM_FCLKEN1_CORE, |
@@ -1386,7 +1388,8 @@ static struct clk mcspi1_fck = { | |||
1386 | }; | 1388 | }; |
1387 | 1389 | ||
1388 | static struct clk mcspi2_ick = { | 1390 | static struct clk mcspi2_ick = { |
1389 | .name = "mcspi2_ick", | 1391 | .name = "mcspi_ick", |
1392 | .id = 2, | ||
1390 | .parent = &l4_ck, | 1393 | .parent = &l4_ck, |
1391 | .flags = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X, | 1394 | .flags = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X, |
1392 | .enable_reg = (void __iomem *)&CM_ICLKEN1_CORE, | 1395 | .enable_reg = (void __iomem *)&CM_ICLKEN1_CORE, |
@@ -1395,7 +1398,8 @@ static struct clk mcspi2_ick = { | |||
1395 | }; | 1398 | }; |
1396 | 1399 | ||
1397 | static struct clk mcspi2_fck = { | 1400 | static struct clk mcspi2_fck = { |
1398 | .name = "mcspi2_fck", | 1401 | .name = "mcspi_fck", |
1402 | .id = 2, | ||
1399 | .parent = &func_48m_ck, | 1403 | .parent = &func_48m_ck, |
1400 | .flags = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X, | 1404 | .flags = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X, |
1401 | .enable_reg = (void __iomem *)&CM_FCLKEN1_CORE, | 1405 | .enable_reg = (void __iomem *)&CM_FCLKEN1_CORE, |
@@ -1404,7 +1408,8 @@ static struct clk mcspi2_fck = { | |||
1404 | }; | 1408 | }; |
1405 | 1409 | ||
1406 | static struct clk mcspi3_ick = { | 1410 | static struct clk mcspi3_ick = { |
1407 | .name = "mcspi3_ick", | 1411 | .name = "mcspi_ick", |
1412 | .id = 3, | ||
1408 | .parent = &l4_ck, | 1413 | .parent = &l4_ck, |
1409 | .flags = CLOCK_IN_OMAP243X, | 1414 | .flags = CLOCK_IN_OMAP243X, |
1410 | .enable_reg = (void __iomem *)&CM_ICLKEN2_CORE, | 1415 | .enable_reg = (void __iomem *)&CM_ICLKEN2_CORE, |
@@ -1413,7 +1418,8 @@ static struct clk mcspi3_ick = { | |||
1413 | }; | 1418 | }; |
1414 | 1419 | ||
1415 | static struct clk mcspi3_fck = { | 1420 | static struct clk mcspi3_fck = { |
1416 | .name = "mcspi3_fck", | 1421 | .name = "mcspi_fck", |
1422 | .id = 3, | ||
1417 | .parent = &func_48m_ck, | 1423 | .parent = &func_48m_ck, |
1418 | .flags = CLOCK_IN_OMAP243X, | 1424 | .flags = CLOCK_IN_OMAP243X, |
1419 | .enable_reg = (void __iomem *)&CM_FCLKEN2_CORE, | 1425 | .enable_reg = (void __iomem *)&CM_FCLKEN2_CORE, |