|
@@ -285,3 +285,171 @@ static struct intc_mask_reg intca_mask_registers[] __initdata = {
|
|
|
{ /* IMR8A / IMCR8A */ 0xe69400a0, 0xe69400e0, 8,
|
|
|
{ SDHI1_3, SDHI1_2, SDHI1_1, SDHI1_0,
|
|
|
0, USBHSDMAC, 0, AP_ARM_L2CINT } },
|
|
|
+ { /* IMR9A / IMCR9A */ 0xe69400a4, 0xe69400e4, 8,
|
|
|
+ { CMT1_3, CMT1_2, CMT1_1, CMT1_0,
|
|
|
+ CMT2, USBF_IXL_INT, USBF_OUL_SOF, SGX540 } },
|
|
|
+ { /* IMR10A / IMCR10A */ 0xe69400a8, 0xe69400e8, 8,
|
|
|
+ { 0, DMAC2_2_DADERR, DMAC2_2_DEI5, DMAC2_2_DEI4,
|
|
|
+ 0, 0, 0, 0 } },
|
|
|
+ { /* IMR11A / IMCR11A */ 0xe69400ac, 0xe69400ec, 8,
|
|
|
+ { IIC1_DTEI, IIC1_WAITI, IIC1_TACKI, IIC1_ALI,
|
|
|
+ ICBS0, 0, 0, 0 } },
|
|
|
+ { /* IMR12A / IMCR12A */ 0xe69400b0, 0xe69400f0, 8,
|
|
|
+ { 0, 0, TPU0, SCIFA6,
|
|
|
+ SCIFA7, GbEther, 0, 0 } },
|
|
|
+ { /* IMR13A / IMCR13A */ 0xe69400b4, 0xe69400f4, 8,
|
|
|
+ { SDHI2_3, SDHI2_2, SDHI2_1, SDHI2_0,
|
|
|
+ 0, CMT3, 0, RWDT0 } },
|
|
|
+ { /* IMR0A3 / IMCR0A3 */ 0xe6950080, 0xe69500c0, 8,
|
|
|
+ { SHWYSTAT_RT, SHWYSTAT_HS, SHWYSTAT_COM, 0,
|
|
|
+ 0, 0, 0, 0 } },
|
|
|
+ /* IMR1A3 / IMCR1A3 */
|
|
|
+ { /* IMR2A3 / IMCR2A3 */ 0xe6950088, 0xe69500c8, 8,
|
|
|
+ { 0, 0, USBH_INT, USBH_OHCI,
|
|
|
+ USBH_EHCI, USBH_PME, USBH_BIND, 0 } },
|
|
|
+ /* IMR3A3 / IMCR3A3 */
|
|
|
+ { /* IMR4A3 / IMCR4A3 */ 0xe6950090, 0xe69500d0, 8,
|
|
|
+ { HDMI, 0, 0, 0,
|
|
|
+ RSPI_OVRF, RSPI_SPTEF, RSPI_SPRF, 0 } },
|
|
|
+ { /* IMR5A3 / IMCR5A3 */ 0xe6950094, 0xe69500d4, 8,
|
|
|
+ { SPU2_0, SPU2_1, FSI, FMSI,
|
|
|
+ 0, HDMI_SSS, HDMI_KEY, 0 } },
|
|
|
+ { /* IMR6A3 / IMCR6A3 */ 0xe6950098, 0xe69500d8, 8,
|
|
|
+ { 0, IPMMU, 0, 0,
|
|
|
+ AP_ARM_CTIIRQ, AP_ARM_PMURQ, 0, 0 } },
|
|
|
+ { /* IMR7A3 / IMCR7A3 */ 0xe695009c, 0xe69500dc, 8,
|
|
|
+ { MFIS2, CPORTR2S, CMT14, CMT15,
|
|
|
+ 0, MMCIF_0, MMCIF_1, MMCIF_2 } },
|
|
|
+ /* IMR8A3 / IMCR8A3 */
|
|
|
+ { /* IMR9A3 / IMCR9A3 */ 0xe69500a4, 0xe69500e4, 8,
|
|
|
+ { SIM_ERI, SIM_RXI, SIM_TXI, SIM_TEI,
|
|
|
+ STPRO_0, STPRO_1, STPRO_2, STPRO_3 } },
|
|
|
+ { /* IMR10A3 / IMCR10A3 */ 0xe69500a8, 0xe69500e8, 8,
|
|
|
+ { STPRO_4, 0, 0, 0,
|
|
|
+ 0, 0, 0, 0 } },
|
|
|
+};
|
|
|
+
|
|
|
+static struct intc_prio_reg intca_prio_registers[] __initdata = {
|
|
|
+ { 0xe6940000, 0, 16, 4, /* IPRAA */ { DMAC3_1, DMAC3_2, CMT2, ICBS0 } },
|
|
|
+ { 0xe6940004, 0, 16, 4, /* IPRBA */ { IRDA, 0, BBIF1, BBIF2 } },
|
|
|
+ { 0xe6940008, 0, 16, 4, /* IPRCA */ { ATAPI, 0, CMT1_1, AP_ARM1 } },
|
|
|
+ { 0xe694000c, 0, 16, 4, /* IPRDA */ { 0, 0, CMT1_2, 0 } },
|
|
|
+ { 0xe6940010, 0, 16, 4, /* IPREA */ { DMAC1_1, MFIS, MFI, USBF } },
|
|
|
+ { 0xe6940014, 0, 16, 4, /* IPRFA */ { KEYSC, DMAC1_2,
|
|
|
+ SGX540, CMT1_0 } },
|
|
|
+ { 0xe6940018, 0, 16, 4, /* IPRGA */ { SCIFA0, SCIFA1,
|
|
|
+ SCIFA2, SCIFA3 } },
|
|
|
+ { 0xe694001c, 0, 16, 4, /* IPRGH */ { MSIOF2, USBHSDMAC,
|
|
|
+ FLCTL, SDHI0 } },
|
|
|
+ { 0xe6940020, 0, 16, 4, /* IPRIA */ { MSIOF1, SCIFA4, 0, IIC1 } },
|
|
|
+ { 0xe6940024, 0, 16, 4, /* IPRJA */ { DMAC2_1, DMAC2_2,
|
|
|
+ AP_ARM_L2CINT, 0 } },
|
|
|
+ { 0xe6940028, 0, 16, 4, /* IPRKA */ { 0, CMT1_3, 0, SDHI1 } },
|
|
|
+ { 0xe694002c, 0, 16, 4, /* IPRLA */ { TPU0, SCIFA6,
|
|
|
+ SCIFA7, GbEther } },
|
|
|
+ { 0xe6940030, 0, 16, 4, /* IPRMA */ { 0, CMT3, 0, RWDT0 } },
|
|
|
+ { 0xe6940034, 0, 16, 4, /* IPRNA */ { SCIFB, SCIFA5, 0, DDM } },
|
|
|
+ { 0xe6940038, 0, 16, 4, /* IPROA */ { 0, 0, DIRC, SDHI2 } },
|
|
|
+ { 0xe6950000, 0, 16, 4, /* IPRAA3 */ { SHWYSTAT, 0, 0, 0 } },
|
|
|
+ /* IPRBA3 */
|
|
|
+ /* IPRCA3 */
|
|
|
+ /* IPRDA3 */
|
|
|
+ { 0xe6950010, 0, 16, 4, /* IPREA3 */ { USBH1, 0, 0, 0 } },
|
|
|
+ { 0xe6950014, 0, 16, 4, /* IPRFA3 */ { USBH2, 0, 0, 0 } },
|
|
|
+ /* IPRGA3 */
|
|
|
+ /* IPRHA3 */
|
|
|
+ { 0xe6950020, 0, 16, 4, /* IPRIA3 */ { HDMI, 0, 0, 0 } },
|
|
|
+ { 0xe6950024, 0, 16, 4, /* IPRJA3 */ { RSPI, 0, 0, 0 } },
|
|
|
+ { 0xe6950028, 0, 16, 4, /* IPRKA3 */ { SPU2, 0, FSI, FMSI } },
|
|
|
+ { 0xe695002c, 0, 16, 4, /* IPRLA3 */ { 0, HDMI_SSS, HDMI_KEY, 0 } },
|
|
|
+ { 0xe6950030, 0, 16, 4, /* IPRMA3 */ { IPMMU, 0, 0, 0 } },
|
|
|
+ { 0xe6950034, 0, 16, 4, /* IPRNA3 */ { AP_ARM2, 0, 0, 0 } },
|
|
|
+ { 0xe6950038, 0, 16, 4, /* IPROA3 */ { MFIS2, CPORTR2S,
|
|
|
+ CMT14, CMT15 } },
|
|
|
+ { 0xe695003c, 0, 16, 4, /* IPRPA3 */ { 0, MMCIF_0, MMCIF_1, MMCIF_2 } },
|
|
|
+ /* IPRQA3 */
|
|
|
+ /* IPRRA3 */
|
|
|
+ { 0xe6950048, 0, 16, 4, /* IPRSA3 */ { SIM_ERI, SIM_RXI,
|
|
|
+ SIM_TXI, SIM_TEI } },
|
|
|
+ { 0xe695004c, 0, 16, 4, /* IPRTA3 */ { STPRO_0, STPRO_1,
|
|
|
+ STPRO_2, STPRO_3 } },
|
|
|
+ { 0xe6950050, 0, 16, 4, /* IPRUA3 */ { STPRO_4, 0, 0, 0 } },
|
|
|
+};
|
|
|
+
|
|
|
+static DECLARE_INTC_DESC(intca_desc, "r8a7740-intca",
|
|
|
+ intca_vectors, intca_groups,
|
|
|
+ intca_mask_registers, intca_prio_registers,
|
|
|
+ NULL);
|
|
|
+
|
|
|
+INTC_IRQ_PINS_32(intca_irq_pins, 0xe6900000,
|
|
|
+ INTC_VECT, "r8a7740-intca-irq-pins");
|
|
|
+
|
|
|
+
|
|
|
+/*
|
|
|
+ * INTCS
|
|
|
+ */
|
|
|
+enum {
|
|
|
+ UNUSED_INTCS = 0,
|
|
|
+
|
|
|
+ INTCS,
|
|
|
+
|
|
|
+ /* interrupt sources INTCS */
|
|
|
+
|
|
|
+ /* HUDI */
|
|
|
+ /* STPRO */
|
|
|
+ /* RTDMAC(1) */
|
|
|
+ VPU5HA2,
|
|
|
+ _2DG_TRAP, _2DG_GPM_INT, _2DG_CER_INT,
|
|
|
+ /* MFI */
|
|
|
+ /* BBIF2 */
|
|
|
+ VPU5F,
|
|
|
+ _2DG_BRK_INT,
|
|
|
+ /* SGX540 */
|
|
|
+ /* 2DDMAC */
|
|
|
+ /* IPMMU */
|
|
|
+ /* RTDMAC 2 */
|
|
|
+ /* KEYSC */
|
|
|
+ /* MSIOF */
|
|
|
+ IIC0_ALI, IIC0_TACKI, IIC0_WAITI, IIC0_DTEI,
|
|
|
+ TMU0_0, TMU0_1, TMU0_2,
|
|
|
+ CMT0,
|
|
|
+ /* CMT2 */
|
|
|
+ LMB,
|
|
|
+ CTI,
|
|
|
+ VOU,
|
|
|
+ /* RWDT0 */
|
|
|
+ ICB,
|
|
|
+ VIO6C,
|
|
|
+ CEU20, CEU21,
|
|
|
+ JPU,
|
|
|
+ LCDC0,
|
|
|
+ LCRC,
|
|
|
+ /* RTDMAC2(1) */
|
|
|
+ /* RTDMAC2(2) */
|
|
|
+ LCDC1,
|
|
|
+ /* SPU2 */
|
|
|
+ /* FSI */
|
|
|
+ /* FMSI */
|
|
|
+ TMU1_0, TMU1_1, TMU1_2,
|
|
|
+ CMT4,
|
|
|
+ DISP,
|
|
|
+ DSRV,
|
|
|
+ /* MFIS2 */
|
|
|
+ CPORTS2R,
|
|
|
+
|
|
|
+ /* interrupt groups INTCS */
|
|
|
+ _2DG1,
|
|
|
+ IIC0, TMU1,
|
|
|
+};
|
|
|
+
|
|
|
+static struct intc_vect intcs_vectors[] = {
|
|
|
+ /* HUDI */
|
|
|
+ /* STPRO */
|
|
|
+ /* RTDMAC(1) */
|
|
|
+ INTCS_VECT(VPU5HA2, 0x0880),
|
|
|
+ INTCS_VECT(_2DG_TRAP, 0x08A0),
|
|
|
+ INTCS_VECT(_2DG_GPM_INT, 0x08C0),
|
|
|
+ INTCS_VECT(_2DG_CER_INT, 0x08E0),
|
|
|
+ /* MFI */
|
|
|
+ /* BBIF2 */
|
|
|
+ INTCS_VECT(VPU5F, 0x0980),
|