diff options
Diffstat (limited to 'arch/powerpc/platforms/52xx/efika.c')
-rw-r--r-- | arch/powerpc/platforms/52xx/efika.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/52xx/efika.c b/arch/powerpc/platforms/52xx/efika.c index a6bba97314eb..f591a9fc19b9 100644 --- a/arch/powerpc/platforms/52xx/efika.c +++ b/arch/powerpc/platforms/52xx/efika.c | |||
@@ -184,6 +184,16 @@ static void efika_show_cpuinfo(struct seq_file *m) | |||
184 | of_node_put(root); | 184 | of_node_put(root); |
185 | } | 185 | } |
186 | 186 | ||
187 | #ifdef CONFIG_PM | ||
188 | static void efika_suspend_prepare(void __iomem *mbar) | ||
189 | { | ||
190 | u8 pin = 4; /* GPIO_WKUP_4 (GPIO_PSC6_0 - IRDA_RX) */ | ||
191 | u8 level = 1; /* wakeup on high level */ | ||
192 | /* IOW. to wake it up, short pins 1 and 3 on IRDA connector */ | ||
193 | mpc52xx_set_wakeup_gpio(pin, level); | ||
194 | } | ||
195 | #endif | ||
196 | |||
187 | static void __init efika_setup_arch(void) | 197 | static void __init efika_setup_arch(void) |
188 | { | 198 | { |
189 | rtas_initialize(); | 199 | rtas_initialize(); |
@@ -199,6 +209,11 @@ static void __init efika_setup_arch(void) | |||
199 | 209 | ||
200 | efika_pcisetup(); | 210 | efika_pcisetup(); |
201 | 211 | ||
212 | #ifdef CONFIG_PM | ||
213 | mpc52xx_suspend.board_suspend_prepare = efika_suspend_prepare; | ||
214 | mpc52xx_pm_init(); | ||
215 | #endif | ||
216 | |||
202 | if (ppc_md.progress) | 217 | if (ppc_md.progress) |
203 | ppc_md.progress("Linux/PPC " UTS_RELEASE " running on Efika ;-)\n", 0x0); | 218 | ppc_md.progress("Linux/PPC " UTS_RELEASE " running on Efika ;-)\n", 0x0); |
204 | } | 219 | } |