diff options
author | Robert Lee <rob.lee@linaro.org> | 2012-05-21 18:50:27 -0400 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-06-05 02:51:47 -0400 |
commit | aa96a18d22dc7ad4dbc98cb0f4b2967a9fc979ca (patch) | |
tree | 73e366d74c1f637c2b0143955a1263ff394a3fde /arch/arm/mach-imx | |
parent | 565fa91f236524b6ba4872903dc9cc9c874493e6 (diff) |
ARM: imx: Enable imx53 low power idle
Add various functionality needed to enable a imx53 low power idle
state. This includes adding the imx53 gpc_dvfs clock and making a
common imx5_late_init function and initializing all imx53
MACHINE_STATE late_init calls to imx5_late_init.
Signed-off-by: Robert Lee <rob.lee@linaro.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-imx')
-rw-r--r-- | arch/arm/mach-imx/clk-imx51-imx53.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-imx/imx53-dt.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-mx53_ard.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-mx53_evk.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-mx53_loco.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-mx53_smd.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-imx/mm-imx5.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-imx/pm-imx5.c | 5 |
8 files changed, 16 insertions, 1 deletions
diff --git a/arch/arm/mach-imx/clk-imx51-imx53.c b/arch/arm/mach-imx/clk-imx51-imx53.c index fcd94f3b0f0e..8a2e7194b221 100644 --- a/arch/arm/mach-imx/clk-imx51-imx53.c +++ b/arch/arm/mach-imx/clk-imx51-imx53.c | |||
@@ -279,6 +279,7 @@ static void __init mx5_clocks_common_init(unsigned long rate_ckil, | |||
279 | clk_register_clkdev(clk[dummy], NULL, "imx-keypad"); | 279 | clk_register_clkdev(clk[dummy], NULL, "imx-keypad"); |
280 | clk_register_clkdev(clk[tve_gate], NULL, "imx-tve.0"); | 280 | clk_register_clkdev(clk[tve_gate], NULL, "imx-tve.0"); |
281 | clk_register_clkdev(clk[ipu_di1_gate], "di1", "imx-tve.0"); | 281 | clk_register_clkdev(clk[ipu_di1_gate], "di1", "imx-tve.0"); |
282 | clk_register_clkdev(clk[gpc_dvfs], "gpc_dvfs", NULL); | ||
282 | 283 | ||
283 | /* Set SDHC parents to be PLL2 */ | 284 | /* Set SDHC parents to be PLL2 */ |
284 | clk_set_parent(clk[esdhc_a_sel], clk[pll2_sw]); | 285 | clk_set_parent(clk[esdhc_a_sel], clk[pll2_sw]); |
@@ -336,7 +337,6 @@ int __init mx51_clocks_init(unsigned long rate_ckil, unsigned long rate_osc, | |||
336 | clk_register_clkdev(clk[mx51_mipi], "mipi_hsp", NULL); | 337 | clk_register_clkdev(clk[mx51_mipi], "mipi_hsp", NULL); |
337 | clk_register_clkdev(clk[vpu_gate], NULL, "imx51-vpu.0"); | 338 | clk_register_clkdev(clk[vpu_gate], NULL, "imx51-vpu.0"); |
338 | clk_register_clkdev(clk[fec_gate], NULL, "imx27-fec.0"); | 339 | clk_register_clkdev(clk[fec_gate], NULL, "imx27-fec.0"); |
339 | clk_register_clkdev(clk[gpc_dvfs], "gpc_dvfs", NULL); | ||
340 | clk_register_clkdev(clk[ipu_gate], "bus", "imx51-ipu"); | 340 | clk_register_clkdev(clk[ipu_gate], "bus", "imx51-ipu"); |
341 | clk_register_clkdev(clk[ipu_di0_gate], "di0", "imx51-ipu"); | 341 | clk_register_clkdev(clk[ipu_di0_gate], "di0", "imx51-ipu"); |
342 | clk_register_clkdev(clk[ipu_di1_gate], "di1", "imx51-ipu"); | 342 | clk_register_clkdev(clk[ipu_di1_gate], "di1", "imx51-ipu"); |
diff --git a/arch/arm/mach-imx/imx53-dt.c b/arch/arm/mach-imx/imx53-dt.c index eb04b6248e48..481c3e96ad7f 100644 --- a/arch/arm/mach-imx/imx53-dt.c +++ b/arch/arm/mach-imx/imx53-dt.c | |||
@@ -147,6 +147,7 @@ DT_MACHINE_START(IMX53_DT, "Freescale i.MX53 (Device Tree Support)") | |||
147 | .handle_irq = imx53_handle_irq, | 147 | .handle_irq = imx53_handle_irq, |
148 | .timer = &imx53_timer, | 148 | .timer = &imx53_timer, |
149 | .init_machine = imx53_dt_init, | 149 | .init_machine = imx53_dt_init, |
150 | .init_late = imx53_init_late, | ||
150 | .dt_compat = imx53_dt_board_compat, | 151 | .dt_compat = imx53_dt_board_compat, |
151 | .restart = mxc_restart, | 152 | .restart = mxc_restart, |
152 | MACHINE_END | 153 | MACHINE_END |
diff --git a/arch/arm/mach-imx/mach-mx53_ard.c b/arch/arm/mach-imx/mach-mx53_ard.c index 05641980dc5e..f1e83d6d2dfc 100644 --- a/arch/arm/mach-imx/mach-mx53_ard.c +++ b/arch/arm/mach-imx/mach-mx53_ard.c | |||
@@ -266,5 +266,6 @@ MACHINE_START(MX53_ARD, "Freescale MX53 ARD Board") | |||
266 | .handle_irq = imx53_handle_irq, | 266 | .handle_irq = imx53_handle_irq, |
267 | .timer = &mx53_ard_timer, | 267 | .timer = &mx53_ard_timer, |
268 | .init_machine = mx53_ard_board_init, | 268 | .init_machine = mx53_ard_board_init, |
269 | .init_late = imx53_init_late, | ||
269 | .restart = mxc_restart, | 270 | .restart = mxc_restart, |
270 | MACHINE_END | 271 | MACHINE_END |
diff --git a/arch/arm/mach-imx/mach-mx53_evk.c b/arch/arm/mach-imx/mach-mx53_evk.c index 5a72188b9cdb..8387496ef5ec 100644 --- a/arch/arm/mach-imx/mach-mx53_evk.c +++ b/arch/arm/mach-imx/mach-mx53_evk.c | |||
@@ -174,5 +174,6 @@ MACHINE_START(MX53_EVK, "Freescale MX53 EVK Board") | |||
174 | .handle_irq = imx53_handle_irq, | 174 | .handle_irq = imx53_handle_irq, |
175 | .timer = &mx53_evk_timer, | 175 | .timer = &mx53_evk_timer, |
176 | .init_machine = mx53_evk_board_init, | 176 | .init_machine = mx53_evk_board_init, |
177 | .init_late = imx53_init_late, | ||
177 | .restart = mxc_restart, | 178 | .restart = mxc_restart, |
178 | MACHINE_END | 179 | MACHINE_END |
diff --git a/arch/arm/mach-imx/mach-mx53_loco.c b/arch/arm/mach-imx/mach-mx53_loco.c index 37f67cac15a4..e266f3f0f080 100644 --- a/arch/arm/mach-imx/mach-mx53_loco.c +++ b/arch/arm/mach-imx/mach-mx53_loco.c | |||
@@ -316,5 +316,6 @@ MACHINE_START(MX53_LOCO, "Freescale MX53 LOCO Board") | |||
316 | .handle_irq = imx53_handle_irq, | 316 | .handle_irq = imx53_handle_irq, |
317 | .timer = &mx53_loco_timer, | 317 | .timer = &mx53_loco_timer, |
318 | .init_machine = mx53_loco_board_init, | 318 | .init_machine = mx53_loco_board_init, |
319 | .init_late = imx53_init_late, | ||
319 | .restart = mxc_restart, | 320 | .restart = mxc_restart, |
320 | MACHINE_END | 321 | MACHINE_END |
diff --git a/arch/arm/mach-imx/mach-mx53_smd.c b/arch/arm/mach-imx/mach-mx53_smd.c index 8e972c5c3e13..4f4c1b93ea66 100644 --- a/arch/arm/mach-imx/mach-mx53_smd.c +++ b/arch/arm/mach-imx/mach-mx53_smd.c | |||
@@ -163,5 +163,6 @@ MACHINE_START(MX53_SMD, "Freescale MX53 SMD Board") | |||
163 | .handle_irq = imx53_handle_irq, | 163 | .handle_irq = imx53_handle_irq, |
164 | .timer = &mx53_smd_timer, | 164 | .timer = &mx53_smd_timer, |
165 | .init_machine = mx53_smd_board_init, | 165 | .init_machine = mx53_smd_board_init, |
166 | .init_late = imx53_init_late, | ||
166 | .restart = mxc_restart, | 167 | .restart = mxc_restart, |
167 | MACHINE_END | 168 | MACHINE_END |
diff --git a/arch/arm/mach-imx/mm-imx5.c b/arch/arm/mach-imx/mm-imx5.c index d84421e1467d..cc7e7ca52908 100644 --- a/arch/arm/mach-imx/mm-imx5.c +++ b/arch/arm/mach-imx/mm-imx5.c | |||
@@ -223,3 +223,8 @@ void __init imx51_init_late(void) | |||
223 | mx51_neon_fixup(); | 223 | mx51_neon_fixup(); |
224 | imx51_pm_init(); | 224 | imx51_pm_init(); |
225 | } | 225 | } |
226 | |||
227 | void __init imx53_init_late(void) | ||
228 | { | ||
229 | imx53_pm_init(); | ||
230 | } | ||
diff --git a/arch/arm/mach-imx/pm-imx5.c b/arch/arm/mach-imx/pm-imx5.c index baf93214f899..b3dcd8e50d5b 100644 --- a/arch/arm/mach-imx/pm-imx5.c +++ b/arch/arm/mach-imx/pm-imx5.c | |||
@@ -166,3 +166,8 @@ void __init imx51_pm_init(void) | |||
166 | if (!ret) | 166 | if (!ret) |
167 | suspend_set_ops(&mx5_suspend_ops); | 167 | suspend_set_ops(&mx5_suspend_ops); |
168 | } | 168 | } |
169 | |||
170 | void __init imx53_pm_init(void) | ||
171 | { | ||
172 | imx5_pm_common_init(); | ||
173 | } | ||