enable_irq_wake(OMAP_GPIO_IRQ(gpio_nr));
 }
 
-static void __init omap_serial_wakeup_init(void)
+static int __init omap_serial_wakeup_init(void)
 {
        if (!cpu_is_omap16xx())
                return;
                omap_serial_set_port_wakeup(18);
        if (uart3_ck != NULL)
                omap_serial_set_port_wakeup(49);
+
+       return 0;
 }
+late_initcall(omap_serial_wakeup_init);
 
 #endif /* CONFIG_OMAP_SERIAL_WAKE */
 
 static int __init omap_init(void)
 {
-#ifdef CONFIG_PM
-       omap_serial_wakeup_init();
-#endif
        return platform_device_register(&serial_device);
 }
 arch_initcall(omap_init);
 
 #ifdef CONFIG_OMAP_SERIAL_WAKE
 extern void omap_serial_wake_trigger(int enable);
 #else
-#define omap_serial_wakeup_init()      {}
 #define omap_serial_wake_trigger(x)    {}
 #endif /* CONFIG_OMAP_SERIAL_WAKE */