/* * Initialize IRQ setting */ void __init init_rts7751r2d_IRQ(void) { int i; /* IRL0=KEY Input * IRL1=Ethernet * IRL2=CF Card * IRL3=CF Card Insert * IRL4=PCMCIA * IRL5=VOYAGER * IRL6=RTC Alarm * IRL7=RTC Timer * IRL8=SD Card * IRL9=PCI Slot #1 * IRL10=PCI Slot #2 * IRL11=Extention #0 * IRL12=Extention #1 * IRL13=Extention #2 * IRL14=Extention #3 */ for (i=0; i<15; i++) make_rts7751r2d_irq(i); #if defined(CONFIG_VOYAGERGX) setup_voyagergx_irq(); #endif }
/* * Initialize IRQ setting */ void __init init_rts7751r2d_IRQ(void) { struct intc_desc *d; switch (ctrl_inw(PA_VERREG) & 0xf0) { #ifdef CONFIG_RTS7751R2D_PLUS case 0x10: printk(KERN_INFO "Using R2D-PLUS interrupt controller.\n"); d = &intc_desc_r2d_plus; memcpy(irl2irq, irl2irq_r2d_plus, R2D_NR_IRL); break; #endif #ifdef CONFIG_RTS7751R2D_1 case 0x00: /* according to manual */ case 0x30: /* in reality */ printk(KERN_INFO "Using R2D-1 interrupt controller.\n"); d = &intc_desc_r2d_1; memcpy(irl2irq, irl2irq_r2d_1, R2D_NR_IRL); break; #endif default: printk(KERN_INFO "Unknown R2D interrupt controller 0x%04x\n", ctrl_inw(PA_VERREG)); return; } register_intc_controller(d); #ifdef CONFIG_MFD_SM501 setup_voyagergx_irq(); #endif }