sh: r7785rp: Hook up the rest of the HL7785 FPGA IRQ vectors.
authorPaul Mundt <lethal@linux-sh.org>
Tue, 15 Jan 2008 07:55:55 +0000 (16:55 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 28 Jan 2008 04:19:03 +0000 (13:19 +0900)
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/boards/renesas/r7780rp/irq-r7785rp.c
include/asm-sh/r7780rp.h

index bbf18afc29a7fe4bde6c40483ed77c5517035a8d..af5ec74b2b1ebd141e36b82c4062895d58863f44 100644 (file)
@@ -2,7 +2,7 @@
  * Renesas Solutions Highlander R7785RP Support.
  *
  * Copyright (C) 2002  Atom Create Engineering Co., Ltd.
- * Copyright (C) 2006  Paul Mundt
+ * Copyright (C) 2006 - 2008  Paul Mundt
  * Copyright (C) 2007  Magnus Damm
  *
  * This file is subject to the terms and conditions of the GNU General Public
 enum {
        UNUSED = 0,
 
-       /* board specific interrupt sources */
-       AX88796,          /* Ethernet controller */
-       CF,               /* Compact Flash */
+       /* FPGA specific interrupt sources */
+       CF,             /* Compact Flash */
+       SMBUS,          /* SMBUS */
+       TP,             /* Touch panel */
+       RTC,            /* RTC Alarm */
+       TH_ALERT,       /* Temperature sensor */
+       AX88796,        /* Ethernet controller */
+
+       /* external bus connector */
+       EXT0, EXT1, EXT2, EXT3, EXT4, EXT5, EXT6, EXT7,
 };
 
 static struct intc_vect vectors[] __initdata = {
        INTC_IRQ(CF, IRQ_CF),
+       INTC_IRQ(SMBUS, IRQ_SMBUS),
+       INTC_IRQ(TP, IRQ_TP),
+       INTC_IRQ(RTC, IRQ_RTC),
+       INTC_IRQ(TH_ALERT, IRQ_TH_ALERT),
+
+       INTC_IRQ(EXT0, IRQ_EXT0), INTC_IRQ(EXT1, IRQ_EXT1),
+       INTC_IRQ(EXT2, IRQ_EXT2), INTC_IRQ(EXT3, IRQ_EXT3),
+
+       INTC_IRQ(EXT4, IRQ_EXT4), INTC_IRQ(EXT5, IRQ_EXT5),
+       INTC_IRQ(EXT6, IRQ_EXT6), INTC_IRQ(EXT7, IRQ_EXT7),
+
        INTC_IRQ(AX88796, IRQ_AX88796),
 };
 
 static struct intc_mask_reg mask_registers[] __initdata = {
        { 0xa4000010, 0, 16, /* IRLMCR1 */
-         { 0, 0, 0, 0, CF, AX88796, 0, 0,
-           0, 0, 0, 0, 0, 0, 0, 0 } },
+         { 0, 0, 0, 0, CF, AX88796, SMBUS, TP,
+           RTC, 0, TH_ALERT, 0, 0, 0, 0, 0 } },
+       { 0xa4000012, 0, 16, /* IRLMCR2 */
+         { 0, 0, 0, 0, 0, 0, 0, 0,
+           EXT7, EXT6, EXT5, EXT4, EXT3, EXT2, EXT1, EXT0 } },
 };
 
 static unsigned char irl2irq[HL_NR_IRL] __initdata = {
-       0, IRQ_CF, 0, 0,
-       0, 0, 0, 0,
-       0, 0, IRQ_AX88796, 0,
-       0, 0, 0,
+       0, IRQ_CF, IRQ_EXT4, IRQ_EXT5,
+       IRQ_EXT6, IRQ_EXT7, IRQ_SMBUS, IRQ_TP,
+       IRQ_RTC, IRQ_TH_ALERT, IRQ_AX88796, IRQ_EXT0,
+       IRQ_EXT1, IRQ_EXT2, IRQ_EXT3,
 };
 
 static DECLARE_INTC_DESC(intc_desc, "r7785rp", vectors,
-                        NULL, mask_registers, NULL, NULL);
+                        NULL, NULL, mask_registers, NULL, NULL);
 
 unsigned char * __init highlander_init_irq_r7785rp(void)
 {
@@ -58,7 +79,7 @@ unsigned char * __init highlander_init_irq_r7785rp(void)
        ctrl_outw(0x7060, PA_IRLPRC);   /* FPGA IRLC */
        ctrl_outw(0x0000, PA_IRLPRD);   /* FPGA IRLD */
        ctrl_outw(0x4321, PA_IRLPRE);   /* FPGA IRLE */
-       ctrl_outw(0x0000, PA_IRLPRF);   /* FPGA IRLF */
+       ctrl_outw(0xdcba, PA_IRLPRF);   /* FPGA IRLF */
 
        register_intc_controller(&intc_desc);
        return irl2irq;
index de37f933aa42049505fe17a08f96516b6e33aee2..1c2d4d18fab2e8462fa10e70671ea85d96cfb714 100644 (file)
 #ifndef IRQ_PSW
 #define IRQ_PSW                        (HL_FPGA_IRQ_BASE + 2)
 #endif
-#define IRQ_EXT1               (HL_FPGA_IRQ_BASE + 3)
-#define IRQ_EXT4               (HL_FPGA_IRQ_BASE + 4)
+#define IRQ_EXT0               (HL_FPGA_IRQ_BASE + 3)
+#define IRQ_EXT1               (HL_FPGA_IRQ_BASE + 4)
+#define IRQ_EXT2               (HL_FPGA_IRQ_BASE + 5)
+#define IRQ_EXT3               (HL_FPGA_IRQ_BASE + 6)
+#define IRQ_EXT4               (HL_FPGA_IRQ_BASE + 7)
+#define IRQ_EXT5               (HL_FPGA_IRQ_BASE + 8)
+#define IRQ_EXT6               (HL_FPGA_IRQ_BASE + 9)
+#define IRQ_EXT7               (HL_FPGA_IRQ_BASE + 10)
+#define IRQ_SMBUS              (HL_FPGA_IRQ_BASE + 11)
+#define IRQ_TP                 (HL_FPGA_IRQ_BASE + 12)
+#define IRQ_RTC                        (HL_FPGA_IRQ_BASE + 13)
+#define IRQ_TH_ALERT           (HL_FPGA_IRQ_BASE + 14)
 
 void make_r7780rp_irq(unsigned int irq);