SIU_SIUI, SCIFA_SCIFA2, TMU0_TUNI0, TMU0_TUNI1, TMU0_TUNI2, IRDA_IRDAI, ATAPI_ATAPII, VEU2H1_VEU2HI, LCDC_LCDCI, TMU1_TUNI0,TMU1_TUNI1,TMU1_TUNI2, /* interrupt groups */ DMAC1A, DMAC0A, VIO, DMAC0B, FLCTL, I2C, _2DG, SDHI1, RTC, DMAC1B, SDHI0, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(IRQ0, 0x600), INTC_VECT(IRQ1, 0x620), INTC_VECT(IRQ2, 0x640), INTC_VECT(IRQ3, 0x660), INTC_VECT(IRQ4, 0x680), INTC_VECT(IRQ5, 0x6a0), INTC_VECT(IRQ6, 0x6c0), INTC_VECT(IRQ7, 0x6e0), INTC_VECT(DMAC1A_DEI0,0x700), INTC_VECT(DMAC1A_DEI1,0x720), INTC_VECT(DMAC1A_DEI2,0x740), INTC_VECT(DMAC1A_DEI3,0x760), INTC_VECT(_2DG_TRI, 0x780), INTC_VECT(_2DG_INI, 0x7A0), INTC_VECT(_2DG_CEI, 0x7C0), INTC_VECT(DMAC0A_DEI0,0x800), INTC_VECT(DMAC0A_DEI1,0x820),
KEYSC, SCIF0, SCIF1, SCIF2, SIOF0, SIOF1, SIO, FLCTL_FLSTEI, FLCTL_FLENDI, FLCTL_FLTREQ0I, FLCTL_FLTREQ1I, I2C_ALI, I2C_TACKI, I2C_WAITI, I2C_DTEI, SDHI0, SDHI1, SDHI2, SDHI3, CMT, TSIF, SIU, TWODG, TMU0, TMU1, TMU2, IRDA, JPU, LCDC, /* interrupt groups */ SIM, RTC, DMAC0123, VIOVOU, USB, DMAC45, FLCTL, I2C, SDHI, }; static struct intc_vect vectors[] = { INTC_VECT(IRQ0, 0x600), INTC_VECT(IRQ1, 0x620), INTC_VECT(IRQ2, 0x640), INTC_VECT(IRQ3, 0x660), INTC_VECT(IRQ4, 0x680), INTC_VECT(IRQ5, 0x6a0), INTC_VECT(IRQ6, 0x6c0), INTC_VECT(IRQ7, 0x6e0), INTC_VECT(SIM_ERI, 0x700), INTC_VECT(SIM_RXI, 0x720), INTC_VECT(SIM_TXI, 0x740), INTC_VECT(SIM_TEI, 0x760), INTC_VECT(RTC_ATI, 0x780), INTC_VECT(RTC_PRI, 0x7a0), INTC_VECT(RTC_CUI, 0x7c0), INTC_VECT(DMAC0, 0x800), INTC_VECT(DMAC1, 0x820), INTC_VECT(DMAC2, 0x840), INTC_VECT(DMAC3, 0x860), INTC_VECT(VIO_CEUI, 0x880), INTC_VECT(VIO_BEUI, 0x8a0), INTC_VECT(VIO_VEUI, 0x8c0), INTC_VECT(VOU, 0x8e0), INTC_VECT(VPU, 0x980), INTC_VECT(TPU, 0x9a0), INTC_VECT(USB_USBI0, 0xa20), INTC_VECT(USB_USBI1, 0xa40), INTC_VECT(DMAC4, 0xb80), INTC_VECT(DMAC5, 0xba0), INTC_VECT(DMAC_DADERR, 0xbc0), INTC_VECT(KEYSC, 0xbe0),
HUDI, DMAC0, SCIF0, SCIF1, DMAC1, HSPI, SCIF2, SCIF3, SCIF4, SCIF5, PCISERR, PCIINTA, PCIINTB, PCIINTC, PCIINTD, PCIC5, SIOF, MMCIF, DU, GDTA, TMU3, TMU4, TMU5, SSI0, SSI1, HAC0, HAC1, FLCTL, GPIO, /* interrupt groups */ TMU012, TMU345 }; static struct intc_vect vectors[] __initdata = { INTC_VECT(WDT, 0x560), INTC_VECT(TMU0, 0x580), INTC_VECT(TMU1, 0x5a0), INTC_VECT(TMU2, 0x5c0), INTC_VECT(TMU2_TICPI, 0x5e0), INTC_VECT(HUDI, 0x600), INTC_VECT(DMAC0, 0x620), INTC_VECT(DMAC0, 0x640), INTC_VECT(DMAC0, 0x660), INTC_VECT(DMAC0, 0x680), INTC_VECT(DMAC0, 0x6a0), INTC_VECT(DMAC0, 0x6c0), INTC_VECT(DMAC0, 0x6e0), INTC_VECT(SCIF0, 0x700), INTC_VECT(SCIF0, 0x720), INTC_VECT(SCIF0, 0x740), INTC_VECT(SCIF0, 0x760), INTC_VECT(SCIF1, 0x780), INTC_VECT(SCIF1, 0x7a0), INTC_VECT(SCIF1, 0x7c0), INTC_VECT(SCIF1, 0x7e0), INTC_VECT(DMAC1, 0x880), INTC_VECT(DMAC1, 0x8a0), INTC_VECT(DMAC1, 0x8c0), INTC_VECT(DMAC1, 0x8e0), INTC_VECT(DMAC1, 0x900), INTC_VECT(DMAC1, 0x920), INTC_VECT(DMAC1, 0x940),
SIOF0, SIOF1, SIO, FLCTL_FLSTEI, FLCTL_FLENDI, FLCTL_FLTREQ0I, FLCTL_FLTREQ1I, I2C0_ALI, I2C0_TACKI, I2C0_WAITI, I2C0_DTEI, I2C1_ALI, I2C1_TACKI, I2C1_WAITI, I2C1_DTEI, SIM_TEI, SIM_TXI, SIM_RXI, SIM_ERI, IRDA, SDHI, CMT, TSIF, SIU, TMU0, TMU1, TMU2, JPU, LCDC, DMAC0123, VIOVOU, MMC, DMAC45, FLCTL, I2C0, I2C1, SIM, USB, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(IRQ0, 0x600), INTC_VECT(IRQ1, 0x620), INTC_VECT(IRQ2, 0x640), INTC_VECT(IRQ3, 0x660), INTC_VECT(IRQ4, 0x680), INTC_VECT(IRQ5, 0x6a0), INTC_VECT(IRQ6, 0x6c0), INTC_VECT(IRQ7, 0x6e0), INTC_VECT(I2C1_ALI, 0x780), INTC_VECT(I2C1_TACKI, 0x7a0), INTC_VECT(I2C1_WAITI, 0x7c0), INTC_VECT(I2C1_DTEI, 0x7e0), INTC_VECT(DMAC0, 0x800), INTC_VECT(DMAC1, 0x820), INTC_VECT(DMAC2, 0x840), INTC_VECT(DMAC3, 0x860), INTC_VECT(VIO_CEUI, 0x880), INTC_VECT(VIO_BEUI, 0x8a0), INTC_VECT(VIO_VEUI, 0x8c0), INTC_VECT(VOU, 0x8e0), INTC_VECT(MFI, 0x900), INTC_VECT(VPU, 0x980), INTC_VECT(TPU, 0x9a0), INTC_VECT(Z3D4, 0x9e0), INTC_VECT(USBI0, 0xa20), INTC_VECT(USBI1, 0xa40), INTC_VECT(MMC_ERR, 0xb00), INTC_VECT(MMC_TRAN, 0xb20), INTC_VECT(MMC_FSTAT, 0xb40), INTC_VECT(MMC_FRDY, 0xb60), INTC_VECT(DMAC4, 0xb80), INTC_VECT(DMAC5, 0xba0),
SDHI2, RWDT0, RWDT1, DMAC_1_DEI0, DMAC_1_DEI1, DMAC_1_DEI2, DMAC_1_DEI3, DMAC_2_DEI4, DMAC_2_DEI5, DMAC_2_DADERR, DMAC2_1_DEI0, DMAC2_1_DEI1, DMAC2_1_DEI2, DMAC2_1_DEI3, DMAC2_2_DEI4, DMAC2_2_DEI5, DMAC2_2_DADERR, DMAC3_1_DEI0, DMAC3_1_DEI1, DMAC3_1_DEI2, DMAC3_1_DEI3, DMAC3_2_DEI4, DMAC3_2_DEI5, DMAC3_2_DADERR, /* interrupt groups INTCA */ DMAC_1, DMAC_2, DMAC2_1, DMAC2_2, DMAC3_1, DMAC3_2, ETM11, ARM11, USBHS, FLCTL, IIC1 }; static struct intc_vect intca_vectors[] __initdata = { INTC_VECT(DIRC, 0x0560), INTC_VECT(CRYPT1_ERR, 0x05e0), INTC_VECT(CRYPT2_STD, 0x0700), INTC_VECT(IIC1_ALI1, 0x0780), INTC_VECT(IIC1_TACKI1, 0x07a0), INTC_VECT(IIC1_WAITI1, 0x07c0), INTC_VECT(IIC1_DTEI1, 0x07e0), INTC_VECT(ARM11_IRQPMU, 0x0800), INTC_VECT(ARM11_COMMTX, 0x0840), INTC_VECT(ARM11_COMMRX, 0x0860), INTC_VECT(ETM11_ACQCMP, 0x0880), INTC_VECT(ETM11_FULL, 0x08a0), INTC_VECT(MFI_MFIM, 0x0900), INTC_VECT(MFI_MFIS, 0x0920), INTC_VECT(BBIF1, 0x0940), INTC_VECT(BBIF2, 0x0960), INTC_VECT(USBDMAC_USHDMI, 0x0a00), INTC_VECT(USBHS_USHI0, 0x0a20), INTC_VECT(USBHS_USHI1, 0x0a40), INTC_VECT(CMT1_CMT10, 0x0b00), INTC_VECT(CMT1_CMT11, 0x0b20), INTC_VECT(CMT1_CMT12, 0x0b40), INTC_VECT(CMT1_CMT13, 0x0b60), INTC_VECT(CMT2, 0x0b80), INTC_VECT(CMT3, 0x0ba0), INTC_VECT(KEYSC_KEY, 0x0be0),
enum { UNUSED = 0, IRL0, IRL1, IRL2, IRL3, HUDI, GPIOI, DMAC, PCIC0_PCISERR, PCIC1_PCIERR, PCIC1_PCIPWDWN, PCIC1_PCIPWON, PCIC1_PCIDMA0, PCIC1_PCIDMA1, PCIC1_PCIDMA2, PCIC1_PCIDMA3, TMU3, TMU4, TMU0, TMU1, TMU2, RTC, SCI1, SCIF, WDT, REF, PCIC1, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(HUDI, 0x600), INTC_VECT(GPIOI, 0x620), INTC_VECT(TMU0, 0x400), INTC_VECT(TMU1, 0x420), INTC_VECT(TMU2, 0x440), INTC_VECT(TMU2, 0x460), INTC_VECT(RTC, 0x480), INTC_VECT(RTC, 0x4a0), INTC_VECT(RTC, 0x4c0), INTC_VECT(SCI1, 0x4e0), INTC_VECT(SCI1, 0x500), INTC_VECT(SCI1, 0x520), INTC_VECT(SCI1, 0x540), INTC_VECT(SCIF, 0x700), INTC_VECT(SCIF, 0x720), INTC_VECT(SCIF, 0x740), INTC_VECT(SCIF, 0x760), INTC_VECT(WDT, 0x560), INTC_VECT(REF, 0x580), INTC_VECT(REF, 0x5a0), }; static struct intc_prio_reg prio_registers[] __initdata = { { 0xffd00004, 0, 16, 4, { TMU0, TMU1, TMU2, RTC } }, { 0xffd00008, 0, 16, 4, { WDT, REF, SCI1, 0 } },
void __init plat_early_device_setup(void) { early_platform_add_devices(sh4202_early_devices, ARRAY_SIZE(sh4202_early_devices)); } enum { UNUSED = 0, /* interrupt sources */ IRL0, IRL1, IRL2, IRL3, /* only IRLM mode supported */ HUDI, TMU0, TMU1, TMU2, RTC, SCIF, WDT, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(HUDI, 0x600), INTC_VECT(TMU0, 0x400), INTC_VECT(TMU1, 0x420), INTC_VECT(TMU2, 0x440), INTC_VECT(TMU2, 0x460), INTC_VECT(RTC, 0x480), INTC_VECT(RTC, 0x4a0), INTC_VECT(RTC, 0x4c0), INTC_VECT(SCIF, 0x700), INTC_VECT(SCIF, 0x720), INTC_VECT(SCIF, 0x740), INTC_VECT(SCIF, 0x760), INTC_VECT(WDT, 0x560), }; static struct intc_prio_reg prio_registers[] __initdata = { { 0xffd00004, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } }, { 0xffd00008, 0, 16, 4, /* IPRB */ { WDT, 0, 0, 0 } }, { 0xffd0000c, 0, 16, 4, /* IPRC */ { 0, 0, SCIF, HUDI } }, { 0xffd00010, 0, 16, 4, /* IPRD */ { IRL0, IRL1, IRL2, IRL3 } }, };
USBH, USBFI0, USBFI1, TPU, PCC, MMCIF_FSTAT, MMCIF_TRAN, MMCIF_ERR, MMCIF_FRDY, SIM_ERI, SIM_RXI, SIM_TXI, SIM_TEND, TMU3, TMU4, TMU5, ADC, SSI0, SSI1, SSI2, SSI3, SCIF2_ERI, SCIF2_RXI, SCIF2_BRI, SCIF2_TXI, GPIO_CH0, GPIO_CH1, GPIO_CH2, GPIO_CH3, /* interrupt groups */ TMU012, TMU345, RTC, DMAC, SCIF0, GETHER, PCIC5, SCIF1, USBF, MMCIF, SIM, SCIF2, GPIO, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(RTC_ATI, 0x480), INTC_VECT(RTC_PRI, 0x4a0), INTC_VECT(RTC_CUI, 0x4c0), INTC_VECT(WDT, 0x560), INTC_VECT(TMU0, 0x580), INTC_VECT(TMU1, 0x5a0), INTC_VECT(TMU2, 0x5c0), INTC_VECT(TMU2_TICPI, 0x5e0), INTC_VECT(HUDI, 0x600), INTC_VECT(LCDC, 0x620), INTC_VECT(DMAC0_DMINT0, 0x640), INTC_VECT(DMAC0_DMINT1, 0x660), INTC_VECT(DMAC0_DMINT2, 0x680), INTC_VECT(DMAC0_DMINT3, 0x6a0), INTC_VECT(DMAC0_DMAE, 0x6c0), INTC_VECT(SCIF0_ERI, 0x700), INTC_VECT(SCIF0_RXI, 0x720), INTC_VECT(SCIF0_BRI, 0x740), INTC_VECT(SCIF0_TXI, 0x760), INTC_VECT(DMAC0_DMINT4, 0x780), INTC_VECT(DMAC0_DMINT5, 0x7a0), INTC_VECT(IIC0, 0x8A0), INTC_VECT(IIC1, 0x8C0), INTC_VECT(CMT, 0x900), INTC_VECT(GEINT0, 0x920), INTC_VECT(GEINT1, 0x940), INTC_VECT(GEINT2, 0x960), INTC_VECT(HAC, 0x980),
SCIF1_ERI, SCIF1_RXI, SCIF1_BRI, SCIF1_TXI, SCIF2_ERI, SCIF2_RXI, SCIF2_BRI, SCIF2_TXI, SIM_ERI, SIM_RXI, SIM_TXI, SIM_TEI, HSPI, MMCIF0, MMCIF1, MMCIF2, MMCIF3, MFI, ADC, CMT, TMU0, TMU1, TMU2_TUNI, TMU2_TICPI, WDT, REF_RCMI, REF_ROVI, /* interrupt groups */ DMAC, DMABRG, SCIF0, SCIF1, SCIF2, SIM, MMCIF, TMU2, REF, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(HUDI, 0x600), INTC_VECT(GPIOI, 0x620), INTC_VECT(DMAC_DMTE0, 0x640), INTC_VECT(DMAC_DMTE1, 0x660), INTC_VECT(DMAC_DMTE2, 0x680), INTC_VECT(DMAC_DMTE3, 0x6a0), INTC_VECT(DMAC_DMTE4, 0x780), INTC_VECT(DMAC_DMTE5, 0x7a0), INTC_VECT(DMAC_DMTE6, 0x7c0), INTC_VECT(DMAC_DMTE7, 0x7e0), INTC_VECT(DMAC_DMAE, 0x6c0), INTC_VECT(IRQ4, 0x800), INTC_VECT(IRQ5, 0x820), INTC_VECT(IRQ6, 0x840), INTC_VECT(IRQ6, 0x860), INTC_VECT(HCAN20, 0x900), INTC_VECT(HCAN21, 0x920), INTC_VECT(SSI0, 0x940), INTC_VECT(SSI1, 0x960), INTC_VECT(HAC0, 0x980), INTC_VECT(HAC1, 0x9a0), INTC_VECT(I2C0, 0x9c0), INTC_VECT(I2C1, 0x9e0), INTC_VECT(USB, 0xa00), INTC_VECT(LCDC, 0xa20), INTC_VECT(DMABRG0, 0xa80), INTC_VECT(DMABRG1, 0xaa0), INTC_VECT(DMABRG2, 0xac0), INTC_VECT(SCIF0_ERI, 0x880), INTC_VECT(SCIF0_RXI, 0x8a0),
SCIF0_ERI, SCIF0_RXI, SCIF0_BRI, SCIF0_TXI, SCIF2_ERI, SCIF2_RXI, SCIF2_BRI, SCIF2_TXI, SCI_ERI, SCI_RXI, SCI_TXI, SCI_TEI, ADC_ADI, LCDC, PCC0, PCC1, TMU0, TMU1, TMU2_TUNI, TMU2_TICPI, RTC_ATI, RTC_PRI, RTC_CUI, WDT, REF_RCMI, REF_ROVI, /* interrupt groups */ RTC, REF, TMU2, DMAC, SCI, SCIF2, SCIF0, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(TMU0, 0x400), INTC_VECT(TMU1, 0x420), INTC_VECT(TMU2_TUNI, 0x440), INTC_VECT(TMU2_TICPI, 0x460), INTC_VECT(RTC_ATI, 0x480), INTC_VECT(RTC_PRI, 0x4a0), INTC_VECT(RTC_CUI, 0x4c0), INTC_VECT(SCI_ERI, 0x4e0), INTC_VECT(SCI_RXI, 0x500), INTC_VECT(SCI_TXI, 0x520), INTC_VECT(SCI_TEI, 0x540), INTC_VECT(WDT, 0x560), INTC_VECT(REF_RCMI, 0x580), INTC_VECT(REF_ROVI, 0x5a0), #if defined(CONFIG_CPU_SUBTYPE_SH7706) || \ defined(CONFIG_CPU_SUBTYPE_SH7707) || \ defined(CONFIG_CPU_SUBTYPE_SH7709) INTC_VECT(IRQ4, 0x680), INTC_VECT(IRQ5, 0x6a0), INTC_VECT(DMAC_DEI0, 0x800), INTC_VECT(DMAC_DEI1, 0x820), INTC_VECT(DMAC_DEI2, 0x840), INTC_VECT(DMAC_DEI3, 0x860), INTC_VECT(ADC_ADI, 0x980),
DMAC_DEI4, DMAC_DEI5, IPSEC, EDMAC0, EDMAC1, EDMAC2, SIOF0_ERI, SIOF0_TXI, SIOF0_RXI, SIOF0_CCI, SIOF1_ERI, SIOF1_TXI, SIOF1_RXI, SIOF1_CCI, TMU0, TMU1, TMU2, RTC_ATI, RTC_PRI, RTC_CUI, WDT, REF, /* interrupt groups */ RTC, DMAC1, SCIF0, SCIF1, DMAC2, SIOF0, SIOF1, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(IRQ4, 0x680), INTC_VECT(IRQ5, 0x6a0), INTC_VECT(DMAC_DEI0, 0x800), INTC_VECT(DMAC_DEI1, 0x820), INTC_VECT(DMAC_DEI2, 0x840), INTC_VECT(DMAC_DEI3, 0x860), INTC_VECT(SCIF0_ERI, 0x880), INTC_VECT(SCIF0_RXI, 0x8a0), INTC_VECT(SCIF0_BRI, 0x8c0), INTC_VECT(SCIF0_TXI, 0x8e0), INTC_VECT(SCIF1_ERI, 0x900), INTC_VECT(SCIF1_RXI, 0x920), INTC_VECT(SCIF1_BRI, 0x940), INTC_VECT(SCIF1_TXI, 0x960), INTC_VECT(DMAC_DEI4, 0xb80), INTC_VECT(DMAC_DEI5, 0xba0), #ifdef CONFIG_CPU_SUBTYPE_SH7710 INTC_VECT(IPSEC, 0xbe0), #endif INTC_VECT(EDMAC0, 0xc00), INTC_VECT(EDMAC1, 0xc20), INTC_VECT(EDMAC2, 0xc40), INTC_VECT(SIOF0_ERI, 0xe00), INTC_VECT(SIOF0_TXI, 0xe20), INTC_VECT(SIOF0_RXI, 0xe40), INTC_VECT(SIOF0_CCI, 0xe60), INTC_VECT(SIOF1_ERI, 0xe80), INTC_VECT(SIOF1_TXI, 0xea0),
SCUV, IPMMU_IPMMUB, AP_ARM_CTIIRQ, AP_ARM_DMAEXTERRIRQ, AP_ARM_DMAIRQ, AP_ARM_DMASIRQ, MFIS2, CPORTR2S, CMT14, CMT15, SCIFA6, DMAC_1, DMAC_2, DMAC2_1, DMAC2_2, DMAC3_1, DMAC3_2, SHWYSTAT, AP_ARM1, AP_ARM2, USBHS, SPU2, FLCTL, IIC1, ICUSB, ICUDMC }; static struct intc_vect intca_vectors[] __initdata = { INTC_VECT(DIRC, 0x0560), INTC_VECT(_2DG, 0x05e0), INTC_VECT(CRYPT_STD, 0x0700), INTC_VECT(IIC1_ALI1, 0x0780), INTC_VECT(IIC1_TACKI1, 0x07a0), INTC_VECT(IIC1_WAITI1, 0x07c0), INTC_VECT(IIC1_DTEI1, 0x07e0), INTC_VECT(AP_ARM_IRQPMU, 0x0800), INTC_VECT(AP_ARM_COMMTX, 0x0840), INTC_VECT(AP_ARM_COMMRX, 0x0860), INTC_VECT(MFI_MFIM, 0x0900), INTC_VECT(MFI_MFIS, 0x0920), INTC_VECT(BBIF1, 0x0940), INTC_VECT(BBIF2, 0x0960), INTC_VECT(USBDMAC_USHDMI, 0x0a00), INTC_VECT(USBHS_USHI0, 0x0a20), INTC_VECT(USBHS_USHI1, 0x0a40), INTC_VECT(_3DG_SGX540, 0x0a60), INTC_VECT(CMT1_CMT10, 0x0b00), INTC_VECT(CMT1_CMT11, 0x0b20), INTC_VECT(CMT1_CMT12, 0x0b40), INTC_VECT(CMT1_CMT13, 0x0b60), INTC_VECT(CMT2, 0x0b80), INTC_VECT(CMT3, 0x0ba0), INTC_VECT(KEYSC_KEY, 0x0be0),
SCIF2_ERI, SCIF2_RXI, SCIF2_TXI, ADC_ADI, USB_USI0, USB_USI1, TPU0, TPU1, TPU2, TPU3, TMU0, TMU1, TMU2_TUNI, TMU2_TICPI, RTC_ATI, RTC_PRI, RTC_CUI, WDT, REF_RCMI, /* interrupt groups */ RTC, TMU2, DMAC, USB, SCIF2, SCIF0, }; static struct intc_vect vectors[] __initdata = { /* IRQ0->5 are handled in setup-sh3.c */ INTC_VECT(PINT07, 0x700), INTC_VECT(PINT815, 0x720), INTC_VECT(DMAC_DEI0, 0x800), INTC_VECT(DMAC_DEI1, 0x820), INTC_VECT(DMAC_DEI2, 0x840), INTC_VECT(DMAC_DEI3, 0x860), INTC_VECT(SCIF0_ERI, 0x880), INTC_VECT(SCIF0_RXI, 0x8a0), INTC_VECT(SCIF0_TXI, 0x8e0), INTC_VECT(SCIF2_ERI, 0x900), INTC_VECT(SCIF2_RXI, 0x920), INTC_VECT(SCIF2_TXI, 0x960), INTC_VECT(ADC_ADI, 0x980), INTC_VECT(USB_USI0, 0xa20), INTC_VECT(USB_USI1, 0xa40), INTC_VECT(TPU0, 0xc00), INTC_VECT(TPU1, 0xc20), INTC_VECT(TPU2, 0xc80), INTC_VECT(TPU3, 0xca0), INTC_VECT(TMU0, 0x400), INTC_VECT(TMU1, 0x420), INTC_VECT(TMU2_TUNI, 0x440), INTC_VECT(TMU2_TICPI, 0x460), INTC_VECT(RTC_ATI, 0x480), INTC_VECT(RTC_PRI, 0x4a0), INTC_VECT(RTC_CUI, 0x4c0), INTC_VECT(WDT, 0x560),
/* */ IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, PINT07, PINT815, DMAC, SCIF0, SCIF2, ADC_ADI, USB, TPU0, TPU1, TPU2, TPU3, TMU0, TMU1, TMU2, RTC, WDT, REF_RCMI, }; static struct intc_vect vectors[] __initdata = { /* */ INTC_VECT(PINT07, 0x700), INTC_VECT(PINT815, 0x720), INTC_VECT(DMAC, 0x800), INTC_VECT(DMAC, 0x820), INTC_VECT(DMAC, 0x840), INTC_VECT(DMAC, 0x860), INTC_VECT(SCIF0, 0x880), INTC_VECT(SCIF0, 0x8a0), INTC_VECT(SCIF0, 0x8e0), INTC_VECT(SCIF2, 0x900), INTC_VECT(SCIF2, 0x920), INTC_VECT(SCIF2, 0x960), INTC_VECT(ADC_ADI, 0x980), INTC_VECT(USB, 0xa20), INTC_VECT(USB, 0xa40), INTC_VECT(TPU0, 0xc00), INTC_VECT(TPU1, 0xc20), INTC_VECT(TPU2, 0xc80), INTC_VECT(TPU3, 0xca0), INTC_VECT(TMU0, 0x400), INTC_VECT(TMU1, 0x420), INTC_VECT(TMU2, 0x440), INTC_VECT(TMU2, 0x460), INTC_VECT(RTC, 0x480), INTC_VECT(RTC, 0x4a0), INTC_VECT(RTC, 0x4c0), INTC_VECT(WDT, 0x560),
DMAC1_DMINT10, DMAC1_DMINT11, DMAC1_DMAE, IIC, VIN0, VIN1, VCORE0, ATAPI, DTU0, DTU1, DTU2, DTU3, FE0, FE1, GPIO0, GPIO1, GPIO2, GPIO3, PAM, IRM, INTICI0, INTICI1, INTICI2, INTICI3, INTICI4, INTICI5, INTICI6, INTICI7, /* interrupt groups */ IRL, PCII56789, SCIF0, SCIF1, SCIF2, SCIF3, DMAC0, DMAC1, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(HUDII, 0x3e0), INTC_VECT(TMU0, 0x400), INTC_VECT(TMU1, 0x420), INTC_VECT(TMU2, 0x440), INTC_VECT(TMU3, 0x460), INTC_VECT(TMU4, 0x480), INTC_VECT(TMU5, 0x4a0), INTC_VECT(PCII0, 0x500), INTC_VECT(PCII1, 0x520), INTC_VECT(PCII2, 0x540), INTC_VECT(PCII3, 0x560), INTC_VECT(PCII4, 0x580), INTC_VECT(PCII5, 0x5a0), INTC_VECT(PCII6, 0x5c0), INTC_VECT(PCII7, 0x5e0), INTC_VECT(PCII8, 0x600), INTC_VECT(PCII9, 0x620), INTC_VECT(SCIF0_ERI, 0x700), INTC_VECT(SCIF0_RXI, 0x720), INTC_VECT(SCIF0_BRI, 0x740), INTC_VECT(SCIF0_TXI, 0x760), INTC_VECT(SCIF1_ERI, 0x780), INTC_VECT(SCIF1_RXI, 0x7a0), INTC_VECT(SCIF1_BRI, 0x7c0), INTC_VECT(SCIF1_TXI, 0x7e0), INTC_VECT(SCIF3_ERI, 0x880), INTC_VECT(SCIF3_RXI, 0x8a0), INTC_VECT(SCIF3_BRI, 0x8c0), INTC_VECT(SCIF3_TXI, 0x8e0), INTC_VECT(DMAC0_DMINT0, 0x900), INTC_VECT(DMAC0_DMINT1, 0x920),
IIC5_0, IIC5_1, IIC5_2, IIC5_3, IIC6_0, IIC6_1, IIC6_2, IIC6_3, IIC7_0, IIC7_1, IIC7_2, IIC7_3, IIC8_0, IIC8_1, IIC8_2, IIC8_3, IIC9_0, IIC9_1, IIC9_2, IIC9_3, PCIINTA, PCIE, SGPIO, /* interrupt groups */ TMU012, TMU345, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(SDHI, 0x480), INTC_VECT(SDHI, 0x04a0), INTC_VECT(SDHI, 0x4c0), INTC_VECT(DVC, 0x4e0), INTC_VECT(IRQ8, 0x500), INTC_VECT(IRQ9, 0x520), INTC_VECT(IRQ10, 0x540), INTC_VECT(WDT0, 0x560), INTC_VECT(TMU0, 0x580), INTC_VECT(TMU1, 0x5a0), INTC_VECT(TMU2, 0x5c0), INTC_VECT(TMU2_TICPI, 0x5e0), INTC_VECT(HUDI, 0x600), INTC_VECT(ARC4, 0x620), INTC_VECT(DMAC0, 0x640), INTC_VECT(DMAC0, 0x660), INTC_VECT(DMAC0, 0x680), INTC_VECT(DMAC0, 0x6a0), INTC_VECT(DMAC0, 0x6c0), INTC_VECT(IRQ11, 0x6e0), INTC_VECT(SCIF2, 0x700), INTC_VECT(SCIF2, 0x720), INTC_VECT(SCIF2, 0x740), INTC_VECT(SCIF2, 0x760),
IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7, RTC, WDT, TMU0, TMU1, TMU2, TMU2_TICPI, HUDI, LCDC, DMAC, SCIF0, IIC0, IIC1, CMT, GETHER, HAC, PCISERR, PCIINTA, PCIINTB, PCIINTC, PCIINTD, PCIC5, STIF0, STIF1, SCIF1, SIOF0, SIOF1, SIOF2, USBH, USBF, TPU, PCC, MMCIF, SIM, TMU3, TMU4, TMU5, ADC, SSI0, SSI1, SSI2, SSI3, SCIF2, GPIO, /* interrupt groups */ TMU012, TMU345, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(RTC, 0x480), INTC_VECT(RTC, 0x4a0), INTC_VECT(RTC, 0x4c0), INTC_VECT(WDT, 0x560), INTC_VECT(TMU0, 0x580), INTC_VECT(TMU1, 0x5a0), INTC_VECT(TMU2, 0x5c0), INTC_VECT(TMU2_TICPI, 0x5e0), INTC_VECT(HUDI, 0x600), INTC_VECT(LCDC, 0x620), INTC_VECT(DMAC, 0x640), INTC_VECT(DMAC, 0x660), INTC_VECT(DMAC, 0x680), INTC_VECT(DMAC, 0x6a0), INTC_VECT(DMAC, 0x6c0), INTC_VECT(SCIF0, 0x700), INTC_VECT(SCIF0, 0x720), INTC_VECT(SCIF0, 0x740), INTC_VECT(SCIF0, 0x760), INTC_VECT(DMAC, 0x780), INTC_VECT(DMAC, 0x7a0), INTC_VECT(IIC0, 0x8A0), INTC_VECT(IIC1, 0x8C0), INTC_VECT(CMT, 0x900), INTC_VECT(GETHER, 0x920), INTC_VECT(GETHER, 0x940), INTC_VECT(GETHER, 0x960), INTC_VECT(HAC, 0x980),
#include <linux/init.h> #include <linux/irq.h> #include <linux/io.h> /* All SH3 devices are equipped with IRQ0->5 (except sh7708) */ enum { UNUSED = 0, /* interrupt sources */ IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, }; static struct intc_vect vectors_irq0123[] __initdata = { INTC_VECT(IRQ0, 0x600), INTC_VECT(IRQ1, 0x620), INTC_VECT(IRQ2, 0x640), INTC_VECT(IRQ3, 0x660), }; static struct intc_vect vectors_irq45[] __initdata = { INTC_VECT(IRQ4, 0x680), INTC_VECT(IRQ5, 0x6a0), }; static struct intc_prio_reg prio_registers[] __initdata = { { 0xa4000016, 0, 16, 4, /* IPRC */ { IRQ3, IRQ2, IRQ1, IRQ0 } }, { 0xa4000018, 0, 16, 4, /* IPRD */ { 0, 0, IRQ5, IRQ4 } }, }; static struct intc_mask_reg ack_registers[] __initdata = { { 0xa4000004, 0, 8, /* IRR0 */ { 0, 0, IRQ5, IRQ4, IRQ3, IRQ2, IRQ1, IRQ0 }
RTC_ATI, RTC_PRI, RTC_CUI, SCI1_ERI, SCI1_RXI, SCI1_TXI, SCI1_TEI, SCIF_ERI, SCIF_RXI, SCIF_BRI, SCIF_TXI, WDT, REF_RCMI, REF_ROVI, /* interrupt groups */ DMAC, PCIC1, TMU2, RTC, SCI1, SCIF, REF, /* irl bundle */ IRL, NR_SOURCES, }; static struct intc_vect vectors[] = { INTC_VECT(HUDI, 0x600), INTC_VECT(GPIOI, 0x620), INTC_VECT(TMU0, 0x400), INTC_VECT(TMU1, 0x420), INTC_VECT(TMU2_TUNI, 0x440), INTC_VECT(TMU2_TICPI, 0x460), INTC_VECT(RTC_ATI, 0x480), INTC_VECT(RTC_PRI, 0x4a0), INTC_VECT(RTC_CUI, 0x4c0), INTC_VECT(SCI1_ERI, 0x4e0), INTC_VECT(SCI1_RXI, 0x500), INTC_VECT(SCI1_TXI, 0x520), INTC_VECT(SCI1_TEI, 0x540), INTC_VECT(SCIF_ERI, 0x700), INTC_VECT(SCIF_RXI, 0x720), INTC_VECT(SCIF_BRI, 0x740), INTC_VECT(SCIF_TXI, 0x760), INTC_VECT(WDT, 0x560), INTC_VECT(REF_RCMI, 0x580), INTC_VECT(REF_ROVI, 0x5a0), }; static struct intc_group groups[] = { INTC_GROUP(TMU2, TMU2_TUNI, TMU2_TICPI), INTC_GROUP(RTC, RTC_ATI, RTC_PRI, RTC_CUI),
DU, VIDEO_IN, REMOTE, YUV, USB, ATAPI, CAN, GPS, GFX2D, GFX3D_MBX, GFX3D_DMAC, EXBUS_ATA, SPI0, SPI1, SCIF089, SCIF1234, SCIF567, ADC, BBDMAC_0_3, BBDMAC_4_7, BBDMAC_8_10, BBDMAC_11_14, BBDMAC_15_18, BBDMAC_19_22, BBDMAC_23_26, BBDMAC_27, BBDMAC_28, BBDMAC_29, BBDMAC_30, BBDMAC_31, /* interrupt groups */ TMU, DMAC, I2S, SRC, GFX3D, SPI, SCIF, BBDMAC, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(GPIO, 0x3e0), INTC_VECT(TMU0, 0x400), INTC_VECT(TMU1, 0x420), INTC_VECT(TMU2, 0x440), INTC_VECT(TMU2_TICPI, 0x460), INTC_VECT(TMU3, 0x480), INTC_VECT(TMU4, 0x4a0), INTC_VECT(TMU5, 0x4c0), INTC_VECT(TMU5_TICPI, 0x4e0), INTC_VECT(TMU6, 0x500), INTC_VECT(TMU7, 0x520), INTC_VECT(TMU8, 0x540), INTC_VECT(HAC, 0x580), INTC_VECT(IPI, 0x5c0), INTC_VECT(SPDIF, 0x5e0), INTC_VECT(HUDI, 0x600), INTC_VECT(I2C, 0x620), INTC_VECT(DMAC0_DMINT0, 0x640), INTC_VECT(DMAC0_DMINT1, 0x660), INTC_VECT(DMAC0_DMINT2, 0x680), INTC_VECT(I2S0, 0x6a0), INTC_VECT(I2S1, 0x6c0), INTC_VECT(I2S2, 0x6e0), INTC_VECT(I2S3, 0x700), INTC_VECT(SRC_RX, 0x720), INTC_VECT(SRC_TX, 0x740), INTC_VECT(SRC_SPDIF, 0x760),
TMU0, TMU1, TMU2, RTC, WDT, REF_RCMI, SIM, IRQ0, IRQ1, IRQ2, IRQ3, USBF_SPD, TMU_SUNI, IRQ5, IRQ4, DMAC1, LCDC, SSL, ADC, DMAC2, USBFI, CMT, SCIF0, SCIF1, PINT07, PINT815, TPU, IIC, SIOF0, SIOF1, MMC, PCC, USBHI, AFEIF, H_UDI, }; static struct intc_vect vectors[] __initdata = { /* IRQ0->5 are handled in setup-sh3.c */ INTC_VECT(TMU0, 0x400), INTC_VECT(TMU1, 0x420), INTC_VECT(TMU2, 0x440), INTC_VECT(RTC, 0x480), INTC_VECT(RTC, 0x4a0), INTC_VECT(RTC, 0x4c0), INTC_VECT(SIM, 0x4e0), INTC_VECT(SIM, 0x500), INTC_VECT(SIM, 0x520), INTC_VECT(SIM, 0x540), INTC_VECT(WDT, 0x560), INTC_VECT(REF_RCMI, 0x580), /* H_UDI cannot be masked */ INTC_VECT(TMU_SUNI, 0x6c0), INTC_VECT(USBF_SPD, 0x6e0), INTC_VECT(DMAC1, 0x800), INTC_VECT(DMAC1, 0x820), INTC_VECT(DMAC1, 0x840), INTC_VECT(DMAC1, 0x860), INTC_VECT(LCDC, 0x900), #if defined(CONFIG_CPU_SUBTYPE_SH7720) INTC_VECT(SSL, 0x980), #endif INTC_VECT(USBFI, 0xa20), INTC_VECT(USBFI, 0xa40), INTC_VECT(USBHI, 0xa60), INTC_VECT(DMAC2, 0xb80), INTC_VECT(DMAC2, 0xba0),
DDRECC, TSIP, PCIE_BRIDGE, WDT0B, WDT1B, WDT2B, WDT3B, WDT4B, WDT5B, WDT6B, WDT7B, WDT8B, GETHER0, GETHER1, GETHER2, PBIA, PBIB, PBIC, DMAE2, DMAE3, SERMUX2, SERMUX3, /* interrupt groups */ TMU012, TMU345, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(SDHI, 0x480), INTC_VECT(SDHI, 0x04a0), INTC_VECT(SDHI, 0x4c0), INTC_VECT(DVC, 0x4e0), INTC_VECT(IRQ8, 0x500), INTC_VECT(IRQ9, 0x520), INTC_VECT(IRQ10, 0x540), INTC_VECT(TMU0, 0x580), INTC_VECT(TMU1, 0x5a0), INTC_VECT(TMU2, 0x5c0), INTC_VECT(TMU2_TICPI, 0x5e0), INTC_VECT(HUDI, 0x600), INTC_VECT(ARC4, 0x620), INTC_VECT(DMAC0_5, 0x640), INTC_VECT(DMAC0_5, 0x660), INTC_VECT(DMAC0_5, 0x680), INTC_VECT(DMAC0_5, 0x6a0), INTC_VECT(DMAC0_5, 0x6c0), INTC_VECT(IRQ11, 0x6e0), INTC_VECT(SCIF2, 0x700), INTC_VECT(SCIF2, 0x720), INTC_VECT(SCIF2, 0x740), INTC_VECT(SCIF2, 0x760), INTC_VECT(DMAC0_5, 0x780), INTC_VECT(DMAC0_5, 0x7a0),
CPORTR2S, CMT14, CMT15, MMC_MMC_ERR, MMC_MMC_NOR, IIC4_ALI4, IIC4_TACKI4, IIC4_WAITI4, IIC4_DTEI4, IIC3_ALI3, IIC3_TACKI3, IIC3_WAITI3, IIC3_DTEI3, USB0_USB0I1, USB0_USB0I0, USB1_USB1I1, USB1_USB1I0, USBHSDMAC1_USHDMI, /* interrupt groups INTCA */ DMAC1_1, DMAC1_2, DMAC2_1, DMAC2_2, DMAC3_1, DMAC3_2, SHWYSTAT, AP_ARM1, AP_ARM2, SPU2, FLCTL, IIC1, SDHI0, SDHI1, SDHI2 }; static struct intc_vect intca_vectors[] __initdata = { INTC_VECT(IRQ0A, 0x0200), INTC_VECT(IRQ1A, 0x0220), INTC_VECT(IRQ2A, 0x0240), INTC_VECT(IRQ3A, 0x0260), INTC_VECT(IRQ4A, 0x0280), INTC_VECT(IRQ5A, 0x02a0), INTC_VECT(IRQ6A, 0x02c0), INTC_VECT(IRQ7A, 0x02e0), INTC_VECT(IRQ8A, 0x0300), INTC_VECT(IRQ9A, 0x0320), INTC_VECT(IRQ10A, 0x0340), INTC_VECT(IRQ11A, 0x0360), INTC_VECT(IRQ12A, 0x0380), INTC_VECT(IRQ13A, 0x03a0), INTC_VECT(IRQ14A, 0x03c0), INTC_VECT(IRQ15A, 0x03e0), INTC_VECT(IRQ16A, 0x3200), INTC_VECT(IRQ17A, 0x3220), INTC_VECT(IRQ18A, 0x3240), INTC_VECT(IRQ19A, 0x3260), INTC_VECT(IRQ20A, 0x3280), INTC_VECT(IRQ21A, 0x32a0), INTC_VECT(IRQ22A, 0x32c0), INTC_VECT(IRQ23A, 0x32e0), INTC_VECT(IRQ24A, 0x3300), INTC_VECT(IRQ25A, 0x3320), INTC_VECT(IRQ26A, 0x3340), INTC_VECT(IRQ27A, 0x3360), INTC_VECT(IRQ28A, 0x3380), INTC_VECT(IRQ29A, 0x33a0), INTC_VECT(IRQ30A, 0x33c0), INTC_VECT(IRQ31A, 0x33e0),
SCIFA5, TMU0_TUNI0, TMU0_TUNI1, TMU0_TUNI2, IRDA, JPU, _2DDMAC, MMC_MMC2I, MMC_MMC3I, LCDC, TMU1_TUNI0, TMU1_TUNI1, TMU1_TUNI2, /* interrupt groups */ DMAC1A, _2DG, DMAC0A, VIO, USB, RTC, DMAC1B, DMAC0B, I2C0, I2C1, SDHI0, SDHI1, SPU, MMCIF, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(IRQ0, 0x600), INTC_VECT(IRQ1, 0x620), INTC_VECT(IRQ2, 0x640), INTC_VECT(IRQ3, 0x660), INTC_VECT(IRQ4, 0x680), INTC_VECT(IRQ5, 0x6a0), INTC_VECT(IRQ6, 0x6c0), INTC_VECT(IRQ7, 0x6e0), INTC_VECT(DMAC1A_DEI0, 0x700), INTC_VECT(DMAC1A_DEI1, 0x720), INTC_VECT(DMAC1A_DEI2, 0x740), INTC_VECT(DMAC1A_DEI3, 0x760), INTC_VECT(_2DG_TRI, 0x780), INTC_VECT(_2DG_INI, 0x7A0), INTC_VECT(_2DG_CEI, 0x7C0), INTC_VECT(DMAC0A_DEI0, 0x800), INTC_VECT(DMAC0A_DEI1, 0x820),
IRL_HLLL, IRL_HLLH, IRL_HLHL, IRL_HLHH, IRL_HHLL, IRL_HHLH, IRL_HHHL, IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7, RTC, WDT, TMU0, TMU1, TMU2, TMU2_TICPI, HUDI, DMAC0, SCIF0, DMAC1, CMT, HAC, PCISERR, PCIINTA, PCIINTB, PCIINTC, PCIINTD, PCIC5, SCIF1, SIOF, HSPI, MMCIF, TMU3, TMU4, TMU5, SSI, FLCTL, GPIO, /* interrupt groups */ TMU012, TMU345, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(RTC, 0x480), INTC_VECT(RTC, 0x4a0), INTC_VECT(RTC, 0x4c0), INTC_VECT(WDT, 0x560), INTC_VECT(TMU0, 0x580), INTC_VECT(TMU1, 0x5a0), INTC_VECT(TMU2, 0x5c0), INTC_VECT(TMU2_TICPI, 0x5e0), INTC_VECT(HUDI, 0x600), INTC_VECT(DMAC0, 0x640), INTC_VECT(DMAC0, 0x660), INTC_VECT(DMAC0, 0x680), INTC_VECT(DMAC0, 0x6a0), INTC_VECT(DMAC0, 0x6c0), INTC_VECT(SCIF0, 0x700), INTC_VECT(SCIF0, 0x720), INTC_VECT(SCIF0, 0x740), INTC_VECT(SCIF0, 0x760), INTC_VECT(DMAC0, 0x780), INTC_VECT(DMAC0, 0x7a0), INTC_VECT(DMAC1, 0x7c0), INTC_VECT(DMAC1, 0x7e0), INTC_VECT(CMT, 0x900), INTC_VECT(HAC, 0x980), INTC_VECT(PCISERR, 0xa00), INTC_VECT(PCIINTA, 0xa20), INTC_VECT(PCIINTB, 0xa40), INTC_VECT(PCIINTC, 0xa60),
#include <linux/sh_timer.h> enum { UNUSED = 0, /* interrupt sources */ IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, PINT07, PINT815, DMAC, SCIF0, SCIF2, SCI, ADC_ADI, LCDC, PCC0, PCC1, TMU0, TMU1, TMU2, RTC, WDT, REF, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(TMU0, 0x400), INTC_VECT(TMU1, 0x420), INTC_VECT(TMU2, 0x440), INTC_VECT(TMU2, 0x460), INTC_VECT(RTC, 0x480), INTC_VECT(RTC, 0x4a0), INTC_VECT(RTC, 0x4c0), INTC_VECT(SCI, 0x4e0), INTC_VECT(SCI, 0x500), INTC_VECT(SCI, 0x520), INTC_VECT(SCI, 0x540), INTC_VECT(WDT, 0x560), INTC_VECT(REF, 0x580), INTC_VECT(REF, 0x5a0), #if defined(CONFIG_CPU_SUBTYPE_SH7706) || \ defined(CONFIG_CPU_SUBTYPE_SH7707) || \ defined(CONFIG_CPU_SUBTYPE_SH7709) /* IRQ0->5 are handled in setup-sh3.c */ INTC_VECT(DMAC, 0x800), INTC_VECT(DMAC, 0x820), INTC_VECT(DMAC, 0x840), INTC_VECT(DMAC, 0x860), INTC_VECT(ADC_ADI, 0x980),
SSI0, SSI1, SSI2, SSI3, PCIeC2_0, PCIeC2_1, PCIeC2_2, HAC0, HAC1, FLCTL, HSPI, GPIO0, GPIO1, Thermal, INTICI0, INTICI1, INTICI2, INTICI3, INTICI4, INTICI5, INTICI6, INTICI7, TXI1, BRI1, RXI1, ERI1, }; static struct intc_vect sh7786_vectors[] __initdata = { INTC_VECT(WDT, 0x3e0), INTC_VECT(TMU0_0, 0x400), INTC_VECT(TMU0_1, 0x420), INTC_VECT(TMU0_2, 0x440), INTC_VECT(TMU0_3, 0x460), INTC_VECT(TMU1_0, 0x480), INTC_VECT(TMU1_1, 0x4a0), INTC_VECT(TMU1_2, 0x4c0), INTC_VECT(DMAC0_0, 0x500), INTC_VECT(DMAC0_1, 0x520), INTC_VECT(DMAC0_2, 0x540), INTC_VECT(DMAC0_3, 0x560), INTC_VECT(DMAC0_4, 0x580), INTC_VECT(DMAC0_5, 0x5a0), INTC_VECT(DMAC0_6, 0x5c0), INTC_VECT(HUDI1, 0x5e0), INTC_VECT(HUDI0, 0x600), INTC_VECT(DMAC1_0, 0x620), INTC_VECT(DMAC1_1, 0x640), INTC_VECT(DMAC1_2, 0x660), INTC_VECT(DMAC1_3, 0x680), INTC_VECT(HPB_0, 0x6a0), INTC_VECT(HPB_1, 0x6c0), INTC_VECT(HPB_2, 0x6e0), INTC_VECT(SCIF0_0, 0x700), INTC_VECT(SCIF0_1, 0x720), INTC_VECT(SCIF0_2, 0x740), INTC_VECT(SCIF0_3, 0x760),
DMAC4, DMAC5, DMAC_DADERR, SCIF, SCIFA1, SCIFA2, DENC, MSIOF, FLCTL_FLSTEI, FLCTL_FLENDI, FLCTL_FLTREQ0I, FLCTL_FLTREQ1I, I2C_ALI, I2C_TACKI, I2C_WAITI, I2C_DTEI, SDHI, CMT, TSIF, SIU, TMU0, TMU1, TMU2, VEU2, LCDC, /* interrupt groups */ DMAC0123, VIOVOU, MMC, DMAC45, FLCTL, I2C, }; static struct intc_vect vectors[] __initdata = { INTC_VECT(IRQ0, 0x600), INTC_VECT(IRQ1, 0x620), INTC_VECT(IRQ2, 0x640), INTC_VECT(IRQ3, 0x660), INTC_VECT(IRQ4, 0x680), INTC_VECT(IRQ5, 0x6a0), INTC_VECT(IRQ6, 0x6c0), INTC_VECT(IRQ7, 0x6e0), INTC_VECT(ICB, 0x700), INTC_VECT(DMAC0, 0x800), INTC_VECT(DMAC1, 0x820), INTC_VECT(DMAC2, 0x840), INTC_VECT(DMAC3, 0x860), INTC_VECT(VIO_CEUI, 0x880), INTC_VECT(VIO_BEUI, 0x8a0), INTC_VECT(VIO_VEUI, 0x8c0), INTC_VECT(VOU, 0x8e0), INTC_VECT(MFI, 0x900), INTC_VECT(VPU, 0x980), INTC_VECT(USB, 0xa20), INTC_VECT(MMC_MMC1I, 0xb00), INTC_VECT(MMC_MMC2I, 0xb20), INTC_VECT(MMC_MMC3I, 0xb40), INTC_VECT(DMAC4, 0xb80), INTC_VECT(DMAC5, 0xba0), INTC_VECT(DMAC_DADERR, 0xbc0), INTC_VECT(SCIF, 0xc00), INTC_VECT(SCIFA1, 0xc20), INTC_VECT(SCIFA2, 0xc40),
enum { UNUSED = 0, /* interrupt sources */ IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, DMAC1, SCIF0, SCIF1, DMAC2, IPSEC, EDMAC0, EDMAC1, EDMAC2, SIOF0, SIOF1, TMU0, TMU1, TMU2, RTC, WDT, REF, }; static struct intc_vect vectors[] __initdata = { /* IRQ0->5 are handled in setup-sh3.c */ INTC_VECT(DMAC1, 0x800), INTC_VECT(DMAC1, 0x820), INTC_VECT(DMAC1, 0x840), INTC_VECT(DMAC1, 0x860), INTC_VECT(SCIF0, 0x880), INTC_VECT(SCIF0, 0x8a0), INTC_VECT(SCIF0, 0x8c0), INTC_VECT(SCIF0, 0x8e0), INTC_VECT(SCIF1, 0x900), INTC_VECT(SCIF1, 0x920), INTC_VECT(SCIF1, 0x940), INTC_VECT(SCIF1, 0x960), INTC_VECT(DMAC2, 0xb80), INTC_VECT(DMAC2, 0xba0), #ifdef CONFIG_CPU_SUBTYPE_SH7710 INTC_VECT(IPSEC, 0xbe0), #endif INTC_VECT(EDMAC0, 0xc00), INTC_VECT(EDMAC1, 0xc20), INTC_VECT(EDMAC2, 0xc40), INTC_VECT(SIOF0, 0xe00), INTC_VECT(SIOF0, 0xe20), INTC_VECT(SIOF0, 0xe40), INTC_VECT(SIOF0, 0xe60), INTC_VECT(SIOF1, 0xe80), INTC_VECT(SIOF1, 0xea0), INTC_VECT(SIOF1, 0xec0), INTC_VECT(SIOF1, 0xee0),
DU, GDTA_GACLI, GDTA_GAMCI, GDTA_GAERI, TMU3, TMU4, TMU5, SSI0, SSI1, HAC0, HAC1, FLCTL_FLSTE, FLCTL_FLEND, FLCTL_FLTRQ0, FLCTL_FLTRQ1, GPIOI0, GPIOI1, GPIOI2, GPIOI3, /* interrupt groups */ TMU012, DMAC0, SCIF0, SCIF1, DMAC1, PCIC5, MMCIF, GDTA, TMU345, FLCTL, GPIO }; static struct intc_vect vectors[] __initdata = { INTC_VECT(WDT, 0x560), INTC_VECT(TMU0, 0x580), INTC_VECT(TMU1, 0x5a0), INTC_VECT(TMU2, 0x5c0), INTC_VECT(TMU2_TICPI, 0x5e0), INTC_VECT(HUDI, 0x600), INTC_VECT(DMAC0_DMINT0, 0x620), INTC_VECT(DMAC0_DMINT1, 0x640), INTC_VECT(DMAC0_DMINT2, 0x660), INTC_VECT(DMAC0_DMINT3, 0x680), INTC_VECT(DMAC0_DMINT4, 0x6a0), INTC_VECT(DMAC0_DMINT5, 0x6c0), INTC_VECT(DMAC0_DMAE, 0x6e0), INTC_VECT(SCIF0_ERI, 0x700), INTC_VECT(SCIF0_RXI, 0x720), INTC_VECT(SCIF0_BRI, 0x740), INTC_VECT(SCIF0_TXI, 0x760), INTC_VECT(SCIF1_ERI, 0x780), INTC_VECT(SCIF1_RXI, 0x7a0), INTC_VECT(SCIF1_BRI, 0x7c0), INTC_VECT(SCIF1_TXI, 0x7e0), INTC_VECT(DMAC1_DMINT6, 0x880), INTC_VECT(DMAC1_DMINT7, 0x8a0), INTC_VECT(DMAC1_DMINT8, 0x8c0), INTC_VECT(DMAC1_DMINT9, 0x8e0), INTC_VECT(DMAC1_DMINT10, 0x900), INTC_VECT(DMAC1_DMINT11, 0x920), INTC_VECT(DMAC1_DMAE, 0x940),