|
@@ -245,17 +245,6 @@ void omap44xx_prm_restore_irqen(u32 *saved_mask)
|
|
|
void omap44xx_prm_reconfigure_io_chain(void)
|
|
|
{
|
|
|
int i = 0;
|
|
|
- u32 v;
|
|
|
-
|
|
|
- v = omap4_prm_read_inst_reg(OMAP4430_PRM_DEVICE_INST,
|
|
|
- OMAP4_PRM_IO_PMCTRL_OFFSET);
|
|
|
-
|
|
|
- /* Enable GLOBAL_WUEN */
|
|
|
- if (!(v & OMAP4430_GLOBAL_WUEN_MASK))
|
|
|
- omap4_prm_rmw_inst_reg_bits(OMAP4430_GLOBAL_WUEN_MASK,
|
|
|
- OMAP4430_GLOBAL_WUEN_MASK,
|
|
|
- OMAP4430_PRM_DEVICE_INST,
|
|
|
- OMAP4_PRM_IO_PMCTRL_OFFSET);
|
|
|
|
|
|
/* Trigger WUCLKIN enable */
|
|
|
omap4_prm_rmw_inst_reg_bits(OMAP4430_WUCLK_CTRL_MASK,
|
|
@@ -287,10 +276,28 @@ void omap44xx_prm_reconfigure_io_chain(void)
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * omap44xx_prm_enable_io_wakeup - enable wakeup events from I/O wakeup latches
|
|
|
+ *
|
|
|
+ * Activates the I/O wakeup event latches and allows events logged by
|
|
|
+ * those latches to signal a wakeup event to the PRCM. For I/O wakeups
|
|
|
+ * to occur, WAKEUPENABLE bits must be set in the pad mux registers, and
|
|
|
+ * omap44xx_prm_reconfigure_io_chain() must be called. No return value.
|
|
|
+ */
|
|
|
+static void __init omap44xx_prm_enable_io_wakeup(void)
|
|
|
+{
|
|
|
+ omap4_prm_rmw_inst_reg_bits(OMAP4430_GLOBAL_WUEN_MASK,
|
|
|
+ OMAP4430_GLOBAL_WUEN_MASK,
|
|
|
+ OMAP4430_PRM_DEVICE_INST,
|
|
|
+ OMAP4_PRM_IO_PMCTRL_OFFSET);
|
|
|
+}
|
|
|
+
|
|
|
static int __init omap4xxx_prcm_init(void)
|
|
|
{
|
|
|
- if (cpu_is_omap44xx())
|
|
|
+ if (cpu_is_omap44xx()) {
|
|
|
+ omap44xx_prm_enable_io_wakeup();
|
|
|
return omap_prcm_register_chain_handler(&omap4_prcm_irq_setup);
|
|
|
+ }
|
|
|
return 0;
|
|
|
}
|
|
|
subsys_initcall(omap4xxx_prcm_init);
|