diff options
Diffstat (limited to 'arch/arm/mach-imx/mm-imx5.c')
-rw-r--r-- | arch/arm/mach-imx/mm-imx5.c | 28 |
1 files changed, 8 insertions, 20 deletions
diff --git a/arch/arm/mach-imx/mm-imx5.c b/arch/arm/mach-imx/mm-imx5.c index feeee17da96b..f19d604e1b2a 100644 --- a/arch/arm/mach-imx/mm-imx5.c +++ b/arch/arm/mach-imx/mm-imx5.c | |||
@@ -16,7 +16,6 @@ | |||
16 | #include <linux/clk.h> | 16 | #include <linux/clk.h> |
17 | #include <linux/pinctrl/machine.h> | 17 | #include <linux/pinctrl/machine.h> |
18 | 18 | ||
19 | #include <asm/system_misc.h> | ||
20 | #include <asm/mach/map.h> | 19 | #include <asm/mach/map.h> |
21 | 20 | ||
22 | #include <mach/hardware.h> | 21 | #include <mach/hardware.h> |
@@ -24,24 +23,6 @@ | |||
24 | #include <mach/devices-common.h> | 23 | #include <mach/devices-common.h> |
25 | #include <mach/iomux-v3.h> | 24 | #include <mach/iomux-v3.h> |
26 | 25 | ||
27 | static struct clk *gpc_dvfs_clk; | ||
28 | |||
29 | static void imx5_idle(void) | ||
30 | { | ||
31 | /* gpc clock is needed for SRPG */ | ||
32 | if (gpc_dvfs_clk == NULL) { | ||
33 | gpc_dvfs_clk = clk_get(NULL, "gpc_dvfs"); | ||
34 | if (IS_ERR(gpc_dvfs_clk)) | ||
35 | return; | ||
36 | clk_prepare(gpc_dvfs_clk); | ||
37 | } | ||
38 | clk_enable(gpc_dvfs_clk); | ||
39 | mx5_cpu_lp_set(WAIT_UNCLOCKED_POWER_OFF); | ||
40 | if (!tzic_enable_wake()) | ||
41 | cpu_do_idle(); | ||
42 | clk_disable(gpc_dvfs_clk); | ||
43 | } | ||
44 | |||
45 | /* | 26 | /* |
46 | * Define the MX50 memory map. | 27 | * Define the MX50 memory map. |
47 | */ | 28 | */ |
@@ -105,7 +86,6 @@ void __init imx51_init_early(void) | |||
105 | mxc_set_cpu_type(MXC_CPU_MX51); | 86 | mxc_set_cpu_type(MXC_CPU_MX51); |
106 | mxc_iomux_v3_init(MX51_IO_ADDRESS(MX51_IOMUXC_BASE_ADDR)); | 87 | mxc_iomux_v3_init(MX51_IO_ADDRESS(MX51_IOMUXC_BASE_ADDR)); |
107 | mxc_arch_reset_init(MX51_IO_ADDRESS(MX51_WDOG1_BASE_ADDR)); | 88 | mxc_arch_reset_init(MX51_IO_ADDRESS(MX51_WDOG1_BASE_ADDR)); |
108 | arm_pm_idle = imx5_idle; | ||
109 | } | 89 | } |
110 | 90 | ||
111 | void __init imx53_init_early(void) | 91 | void __init imx53_init_early(void) |
@@ -202,6 +182,8 @@ void __init imx51_soc_init(void) | |||
202 | mxc_register_gpio("imx31-gpio", 2, MX51_GPIO3_BASE_ADDR, SZ_16K, MX51_INT_GPIO3_LOW, MX51_INT_GPIO3_HIGH); | 182 | mxc_register_gpio("imx31-gpio", 2, MX51_GPIO3_BASE_ADDR, SZ_16K, MX51_INT_GPIO3_LOW, MX51_INT_GPIO3_HIGH); |
203 | mxc_register_gpio("imx31-gpio", 3, MX51_GPIO4_BASE_ADDR, SZ_16K, MX51_INT_GPIO4_LOW, MX51_INT_GPIO4_HIGH); | 183 | mxc_register_gpio("imx31-gpio", 3, MX51_GPIO4_BASE_ADDR, SZ_16K, MX51_INT_GPIO4_LOW, MX51_INT_GPIO4_HIGH); |
204 | 184 | ||
185 | pinctrl_provide_dummies(); | ||
186 | |||
205 | /* i.mx51 has the i.mx35 type sdma */ | 187 | /* i.mx51 has the i.mx35 type sdma */ |
206 | imx_add_imx_sdma("imx35-sdma", MX51_SDMA_BASE_ADDR, MX51_INT_SDMA, &imx51_sdma_pdata); | 188 | imx_add_imx_sdma("imx35-sdma", MX51_SDMA_BASE_ADDR, MX51_INT_SDMA, &imx51_sdma_pdata); |
207 | 189 | ||
@@ -241,4 +223,10 @@ void __init imx53_soc_init(void) | |||
241 | void __init imx51_init_late(void) | 223 | void __init imx51_init_late(void) |
242 | { | 224 | { |
243 | mx51_neon_fixup(); | 225 | mx51_neon_fixup(); |
226 | imx51_pm_init(); | ||
227 | } | ||
228 | |||
229 | void __init imx53_init_late(void) | ||
230 | { | ||
231 | imx53_pm_init(); | ||
244 | } | 232 | } |