static void __init mb448_init_irq(void) { /* enable individual interrupt mode for externals */ plat_irq_setup_pins(IRQ_MODE_IRQ); /* Set the ILC to route external interrupts to the the INTC */ /* Outputs 0-3 are the interrupt pins, 4-7 are routed to the INTC */ ilc_route_external(ILC_EXT_MDINT, 4, 1); /* STe100 PHY */ ilc_route_external(ILC_EXT_IRQ1, 5, 0); /* VoIP */ ilc_route_external(ILC_EXT_IRQ2, 6, 0); /* ATA */ ilc_route_external(ILC_EXT_IRQ3, 7, 0); /* SMC Ethernet */ }
static void __init mb442_init_irq(void) { /* enable individual interrupt mode for externals */ plat_irq_setup_pins(IRQ_MODE_IRQ); /* Set the ILC to route external interrupts to the the INTC */ /* Outputs 0-3 are the interrupt pins, 4-7 are routed to the INTC */ /* Inputs sys-irq2 and 3 are unused (pulled high) */ ilc_route_external(ILC_EXT_IRQ0, 4, 0); /* SMC Ethernet */ ilc_route_external(ILC_EXT_IRQ1, 5, 0); /* ATA */ ilc_route_external(ILC_EXT_IRQ2, 6, 0); /* Unused */ ilc_route_external(ILC_EXT_MDINT, 7, 0); /* STe100 PHY */ }
static int ilc_sysdev_suspend(struct sys_device *dev, pm_message_t state) { int idx; static pm_message_t prev_state; if (state.event == PM_EVENT_ON && prev_state.event == PM_EVENT_FREEZE) /* Resuming from hibernation*/ for (idx = 0; idx < ARRAY_SIZE(ilc_log); ++idx) ilc_route_external(ilc_log[idx].ilc_irq, ilc_log[idx].ext_out, ilc_log[idx].invert); prev_state = state; return 0; }