|
@@ -87,3 +87,68 @@
|
|
|
{ p ## _IRQ0, p ## _IRQ1, p ## _IRQ2, p ## _IRQ3, \
|
|
|
p ## _IRQ4, p ## _IRQ5, p ## _IRQ6, p ## _IRQ7 } }, \
|
|
|
{ base + 0x24, 0, 8, /* INTREQ10A */ \
|
|
|
+ { p ## _IRQ8, p ## _IRQ9, p ## _IRQ10, p ## _IRQ11, \
|
|
|
+ p ## _IRQ12, p ## _IRQ13, p ## _IRQ14, p ## _IRQ15 } }
|
|
|
+
|
|
|
+#define INTC_IRQ_PINS_ACK_16H(p, base) \
|
|
|
+ { base + 0x28, 0, 8, /* INTREQ20A */ \
|
|
|
+ { p ## _IRQ16, p ## _IRQ17, p ## _IRQ18, p ## _IRQ19, \
|
|
|
+ p ## _IRQ20, p ## _IRQ21, p ## _IRQ22, p ## _IRQ23 } }, \
|
|
|
+ { base + 0x2c, 0, 8, /* INTREQ30A */ \
|
|
|
+ { p ## _IRQ24, p ## _IRQ25, p ## _IRQ26, p ## _IRQ27, \
|
|
|
+ p ## _IRQ28, p ## _IRQ29, p ## _IRQ30, p ## _IRQ31 } }
|
|
|
+
|
|
|
+#define INTC_IRQ_PINS_16(p, base, vect, str) \
|
|
|
+ \
|
|
|
+static struct resource p ## _resources[] __initdata = { \
|
|
|
+ [0] = { \
|
|
|
+ .start = base, \
|
|
|
+ .end = base + 0x64, \
|
|
|
+ .flags = IORESOURCE_MEM, \
|
|
|
+ }, \
|
|
|
+}; \
|
|
|
+ \
|
|
|
+enum { \
|
|
|
+ p ## _UNUSED = 0, \
|
|
|
+ INTC_IRQ_PINS_ENUM_16L(p), \
|
|
|
+}; \
|
|
|
+ \
|
|
|
+static struct intc_vect p ## _vectors[] __initdata = { \
|
|
|
+ INTC_IRQ_PINS_VECT_16L(p, vect), \
|
|
|
+}; \
|
|
|
+ \
|
|
|
+static struct intc_mask_reg p ## _mask_registers[] __initdata = { \
|
|
|
+ INTC_IRQ_PINS_MASK_16L(p, base), \
|
|
|
+}; \
|
|
|
+ \
|
|
|
+static struct intc_prio_reg p ## _prio_registers[] __initdata = { \
|
|
|
+ INTC_IRQ_PINS_PRIO_16L(p, base), \
|
|
|
+}; \
|
|
|
+ \
|
|
|
+static struct intc_sense_reg p ## _sense_registers[] __initdata = { \
|
|
|
+ INTC_IRQ_PINS_SENSE_16L(p, base), \
|
|
|
+}; \
|
|
|
+ \
|
|
|
+static struct intc_mask_reg p ## _ack_registers[] __initdata = { \
|
|
|
+ INTC_IRQ_PINS_ACK_16L(p, base), \
|
|
|
+}; \
|
|
|
+ \
|
|
|
+static struct intc_desc p ## _desc __initdata = { \
|
|
|
+ .name = str, \
|
|
|
+ .resource = p ## _resources, \
|
|
|
+ .num_resources = ARRAY_SIZE(p ## _resources), \
|
|
|
+ .hw = INTC_HW_DESC(p ## _vectors, NULL, \
|
|
|
+ p ## _mask_registers, p ## _prio_registers, \
|
|
|
+ p ## _sense_registers, p ## _ack_registers) \
|
|
|
+}
|
|
|
+
|
|
|
+#define INTC_IRQ_PINS_16H(p, base, vect, str) \
|
|
|
+ \
|
|
|
+static struct resource p ## _resources[] __initdata = { \
|
|
|
+ [0] = { \
|
|
|
+ .start = base, \
|
|
|
+ .end = base + 0x64, \
|
|
|
+ .flags = IORESOURCE_MEM, \
|
|
|
+ }, \
|
|
|
+}; \
|
|
|
+ \
|