Commit 788144656b8a862e724a1296e64ab6375eb541ed

Authored by Manuel Lauss
Committed by Ralf Baechle
1 parent 93e9cd8485

MIPS: Alchemy: Stop IRQ name sharing

Eliminate the sharing of IRQ names among the differenct Alchemy
variants.  IRQ numbers need no longer be hidden behind a
CONFIG_SOC_AU1XXX symbol: step 1 in my quest to make the Alchemy
code less reliant on a hardcoded subtype.

This patch also renames the GPIO irq number constants. It's really
an interrupt line, NOT a GPIO number!

Code which relied on certain irq numbers to have the same name
across all supported cpu subtypes is changed to determine current
cpu subtype at runtime; in some places this isn't possible so
a "compat" symbol is used.

Run-tested on DB1200.

Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

Showing 19 changed files with 743 additions and 665 deletions Side-by-side Diff

arch/mips/alchemy/common/dbdma.c
... ... @@ -30,6 +30,7 @@
30 30 *
31 31 */
32 32  
  33 +#include <linux/init.h>
33 34 #include <linux/kernel.h>
34 35 #include <linux/slab.h>
35 36 #include <linux/spinlock.h>
... ... @@ -58,7 +59,6 @@
58 59  
59 60 static dbdma_global_t *dbdma_gptr = (dbdma_global_t *)DDMA_GLOBAL_BASE;
60 61 static int dbdma_initialized;
61   -static void au1xxx_dbdma_init(void);
62 62  
63 63 static dbdev_tab_t dbdev_tab[] = {
64 64 #ifdef CONFIG_SOC_AU1550
... ... @@ -250,8 +250,7 @@
250 250 * which can't be done successfully during board set up.
251 251 */
252 252 if (!dbdma_initialized)
253   - au1xxx_dbdma_init();
254   - dbdma_initialized = 1;
  253 + return 0;
255 254  
256 255 stp = find_dbdev_id(srcid);
257 256 if (stp == NULL)
... ... @@ -871,28 +870,6 @@
871 870 return IRQ_RETVAL(1);
872 871 }
873 872  
874   -static void au1xxx_dbdma_init(void)
875   -{
876   - int irq_nr;
877   -
878   - dbdma_gptr->ddma_config = 0;
879   - dbdma_gptr->ddma_throttle = 0;
880   - dbdma_gptr->ddma_inten = 0xffff;
881   - au_sync();
882   -
883   -#if defined(CONFIG_SOC_AU1550)
884   - irq_nr = AU1550_DDMA_INT;
885   -#elif defined(CONFIG_SOC_AU1200)
886   - irq_nr = AU1200_DDMA_INT;
887   -#else
888   - #error Unknown Au1x00 SOC
889   -#endif
890   -
891   - if (request_irq(irq_nr, dbdma_interrupt, IRQF_DISABLED,
892   - "Au1xxx dbdma", (void *)dbdma_gptr))
893   - printk(KERN_ERR "Can't get 1550 dbdma irq");
894   -}
895   -
896 873 void au1xxx_dbdma_dump(u32 chanid)
897 874 {
898 875 chan_tab_t *ctp;
... ... @@ -1041,5 +1018,39 @@
1041 1018 }
1042 1019 }
1043 1020 #endif /* CONFIG_PM */
  1021 +
  1022 +static int __init au1xxx_dbdma_init(void)
  1023 +{
  1024 + int irq_nr, ret;
  1025 +
  1026 + dbdma_gptr->ddma_config = 0;
  1027 + dbdma_gptr->ddma_throttle = 0;
  1028 + dbdma_gptr->ddma_inten = 0xffff;
  1029 + au_sync();
  1030 +
  1031 + switch (alchemy_get_cputype()) {
  1032 + case ALCHEMY_CPU_AU1550:
  1033 + irq_nr = AU1550_DDMA_INT;
  1034 + break;
  1035 + case ALCHEMY_CPU_AU1200:
  1036 + irq_nr = AU1200_DDMA_INT;
  1037 + break;
  1038 + default:
  1039 + return -ENODEV;
  1040 + }
  1041 +
  1042 + ret = request_irq(irq_nr, dbdma_interrupt, IRQF_DISABLED,
  1043 + "Au1xxx dbdma", (void *)dbdma_gptr);
  1044 + if (ret)
  1045 + printk(KERN_ERR "Cannot grab DBDMA interrupt!\n");
  1046 + else {
  1047 + dbdma_initialized = 1;
  1048 + printk(KERN_INFO "Alchemy DBDMA initialized\n");
  1049 + }
  1050 +
  1051 + return ret;
  1052 +}
  1053 +subsys_initcall(au1xxx_dbdma_init);
  1054 +
1044 1055 #endif /* defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200) */
arch/mips/alchemy/common/dma.c
... ... @@ -29,6 +29,8 @@
29 29 * 675 Mass Ave, Cambridge, MA 02139, USA.
30 30 *
31 31 */
  32 +
  33 +#include <linux/init.h>
32 34 #include <linux/module.h>
33 35 #include <linux/kernel.h>
34 36 #include <linux/errno.h>
35 37  
36 38  
... ... @@ -188,17 +190,14 @@
188 190 dev = &dma_dev_table[dev_id];
189 191  
190 192 if (irqhandler) {
191   - chan->irq = AU1000_DMA_INT_BASE + i;
192 193 chan->irq_dev = irq_dev_id;
193 194 ret = request_irq(chan->irq, irqhandler, irqflags, dev_str,
194 195 chan->irq_dev);
195 196 if (ret) {
196   - chan->irq = 0;
197 197 chan->irq_dev = NULL;
198 198 return ret;
199 199 }
200 200 } else {
201   - chan->irq = 0;
202 201 chan->irq_dev = NULL;
203 202 }
204 203  
205 204  
206 205  
... ... @@ -226,14 +225,41 @@
226 225 }
227 226  
228 227 disable_dma(dmanr);
229   - if (chan->irq)
  228 + if (chan->irq_dev)
230 229 free_irq(chan->irq, chan->irq_dev);
231 230  
232   - chan->irq = 0;
233 231 chan->irq_dev = NULL;
234 232 chan->dev_id = -1;
235 233 }
236 234 EXPORT_SYMBOL(free_au1000_dma);
  235 +
  236 +static int __init au1000_dma_init(void)
  237 +{
  238 + int base, i;
  239 +
  240 + switch (alchemy_get_cputype()) {
  241 + case ALCHEMY_CPU_AU1000:
  242 + base = AU1000_DMA_INT_BASE;
  243 + break;
  244 + case ALCHEMY_CPU_AU1500:
  245 + base = AU1500_DMA_INT_BASE;
  246 + break;
  247 + case ALCHEMY_CPU_AU1100:
  248 + base = AU1100_DMA_INT_BASE;
  249 + break;
  250 + default:
  251 + goto out;
  252 + }
  253 +
  254 + for (i = 0; i < NUM_AU1000_DMA_CHANNELS; i++)
  255 + au1000_dma_table[i].irq = base + i;
  256 +
  257 + printk(KERN_INFO "Alchemy DMA initialized\n");
  258 +
  259 +out:
  260 + return 0;
  261 +}
  262 +arch_initcall(au1000_dma_init);
237 263  
238 264 #endif /* AU1000 AU1500 AU1100 */
arch/mips/alchemy/common/irq.c
... ... @@ -53,160 +53,160 @@
53 53 int im_request; /* set 1 to get higher priority */
54 54 } au1xxx_ic0_map[] __initdata = {
55 55 #if defined(CONFIG_SOC_AU1000)
56   - { AU1000_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
57   - { AU1000_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
58   - { AU1000_UART2_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
59   - { AU1000_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
60   - { AU1000_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
61   - { AU1000_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
62   - { AU1000_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
63   - { AU1000_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
64   - { AU1000_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
65   - { AU1000_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
66   - { AU1000_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
67   - { AU1000_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
68   - { AU1000_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
69   - { AU1000_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
70   - { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
71   - { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
72   - { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
73   - { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
74   - { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
75   - { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
76   - { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
77   - { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
78   - { AU1000_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
79   - { AU1000_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
80   - { AU1000_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 1 },
  56 + { AU1000_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  57 + { AU1000_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  58 + { AU1000_UART2_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  59 + { AU1000_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  60 + { AU1000_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  61 + { AU1000_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  62 + { AU1000_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
  63 + { AU1000_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
  64 + { AU1000_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
  65 + { AU1000_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
  66 + { AU1000_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
  67 + { AU1000_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
  68 + { AU1000_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
  69 + { AU1000_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
  70 + { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
  71 + { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
  72 + { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
  73 + { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
  74 + { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
  75 + { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
  76 + { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
  77 + { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
  78 + { AU1000_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  79 + { AU1000_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  80 + { AU1000_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 1 },
81 81 { AU1000_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
82   - { AU1000_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
83   - { AU1000_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 },
84   - { AU1000_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
85   - { AU1000_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
86   - { AU1000_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
  82 + { AU1000_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
  83 + { AU1000_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 },
  84 + { AU1000_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  85 + { AU1000_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  86 + { AU1000_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
87 87  
88 88 #elif defined(CONFIG_SOC_AU1500)
89 89  
90   - { AU1500_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
91   - { AU1000_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 0 },
92   - { AU1000_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 0 },
93   - { AU1500_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
94   - { AU1000_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 0 },
95   - { AU1000_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 0 },
96   - { AU1000_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
97   - { AU1000_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
98   - { AU1000_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
99   - { AU1000_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
100   - { AU1000_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
101   - { AU1000_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
102   - { AU1000_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
103   - { AU1000_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
104   - { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
105   - { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
106   - { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
107   - { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
108   - { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
109   - { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
110   - { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
111   - { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
112   - { AU1000_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 1 },
113   - { AU1000_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
114   - { AU1000_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
115   - { AU1000_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 },
116   - { AU1500_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
117   - { AU1500_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
118   - { AU1000_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
  90 + { AU1500_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  91 + { AU1500_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 0 },
  92 + { AU1500_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 0 },
  93 + { AU1500_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  94 + { AU1500_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 0 },
  95 + { AU1500_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 0 },
  96 + { AU1500_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
  97 + { AU1500_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
  98 + { AU1500_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
  99 + { AU1500_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
  100 + { AU1500_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
  101 + { AU1500_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
  102 + { AU1500_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
  103 + { AU1500_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
  104 + { AU1500_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
  105 + { AU1500_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
  106 + { AU1500_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
  107 + { AU1500_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
  108 + { AU1500_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
  109 + { AU1500_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
  110 + { AU1500_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
  111 + { AU1500_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
  112 + { AU1500_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 1 },
  113 + { AU1500_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
  114 + { AU1500_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
  115 + { AU1500_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 },
  116 + { AU1500_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  117 + { AU1500_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  118 + { AU1500_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
119 119  
120 120 #elif defined(CONFIG_SOC_AU1100)
121 121  
122   - { AU1100_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
123   - { AU1100_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
124   - { AU1100_SD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
125   - { AU1100_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
126   - { AU1000_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
127   - { AU1000_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
128   - { AU1000_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
129   - { AU1000_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
130   - { AU1000_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
131   - { AU1000_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
132   - { AU1000_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
133   - { AU1000_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
134   - { AU1000_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
135   - { AU1000_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
136   - { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
137   - { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
138   - { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
139   - { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
140   - { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
141   - { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
142   - { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
143   - { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
144   - { AU1000_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
145   - { AU1000_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
146   - { AU1000_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 1 },
147   - { AU1000_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
148   - { AU1000_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
149   - { AU1000_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 },
150   - { AU1100_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
151   - { AU1100_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
152   - { AU1000_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
  122 + { AU1100_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  123 + { AU1100_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  124 + { AU1100_SD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  125 + { AU1100_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  126 + { AU1100_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  127 + { AU1100_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  128 + { AU1100_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
  129 + { AU1100_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
  130 + { AU1100_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
  131 + { AU1100_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
  132 + { AU1100_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
  133 + { AU1100_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
  134 + { AU1100_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
  135 + { AU1100_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
  136 + { AU1100_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
  137 + { AU1100_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
  138 + { AU1100_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
  139 + { AU1100_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
  140 + { AU1100_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
  141 + { AU1100_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
  142 + { AU1100_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
  143 + { AU1100_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
  144 + { AU1100_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  145 + { AU1100_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  146 + { AU1100_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 1 },
  147 + { AU1100_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
  148 + { AU1100_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
  149 + { AU1100_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 },
  150 + { AU1100_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  151 + { AU1100_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  152 + { AU1100_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
153 153  
154 154 #elif defined(CONFIG_SOC_AU1550)
155 155  
156   - { AU1550_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
157   - { AU1550_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 0 },
158   - { AU1550_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 0 },
159   - { AU1550_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
160   - { AU1550_CRYPTO_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
161   - { AU1550_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 0 },
162   - { AU1550_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 0 },
163   - { AU1550_PCI_RST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
164   - { AU1550_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
165   - { AU1550_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
166   - { AU1550_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
167   - { AU1550_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
168   - { AU1550_PSC2_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
169   - { AU1550_PSC3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
170   - { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
171   - { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
172   - { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
173   - { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
174   - { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
175   - { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
176   - { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
177   - { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
178   - { AU1550_NAND_INT, IRQ_TYPE_EDGE_RISING, 0 },
179   - { AU1550_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 1 },
  156 + { AU1550_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  157 + { AU1550_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 0 },
  158 + { AU1550_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 0 },
  159 + { AU1550_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  160 + { AU1550_CRYPTO_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  161 + { AU1550_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 0 },
  162 + { AU1550_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 0 },
  163 + { AU1550_PCI_RST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
  164 + { AU1550_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  165 + { AU1550_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  166 + { AU1550_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  167 + { AU1550_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  168 + { AU1550_PSC2_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  169 + { AU1550_PSC3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  170 + { AU1550_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
  171 + { AU1550_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
  172 + { AU1550_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
  173 + { AU1550_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
  174 + { AU1550_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
  175 + { AU1550_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
  176 + { AU1550_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
  177 + { AU1550_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
  178 + { AU1550_NAND_INT, IRQ_TYPE_EDGE_RISING, 0 },
  179 + { AU1550_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 1 },
180 180 { AU1550_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
181   - { AU1550_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
182   - { AU1550_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
183   - { AU1550_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  181 + { AU1550_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
  182 + { AU1550_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  183 + { AU1550_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
184 184  
185 185 #elif defined(CONFIG_SOC_AU1200)
186 186  
187   - { AU1200_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
188   - { AU1200_SWT_INT, IRQ_TYPE_EDGE_RISING, 0 },
189   - { AU1200_SD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
190   - { AU1200_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
191   - { AU1200_MAE_BE_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
192   - { AU1200_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
193   - { AU1200_MAE_FE_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
194   - { AU1200_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
195   - { AU1200_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
196   - { AU1200_AES_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
197   - { AU1200_CAMERA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
198   - { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
199   - { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
200   - { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
201   - { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
202   - { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
203   - { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
204   - { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
205   - { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
206   - { AU1200_NAND_INT, IRQ_TYPE_EDGE_RISING, 0 },
207   - { AU1200_USB_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
208   - { AU1200_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
209   - { AU1200_MAE_BOTH_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  187 + { AU1200_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  188 + { AU1200_SWT_INT, IRQ_TYPE_EDGE_RISING, 0 },
  189 + { AU1200_SD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  190 + { AU1200_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  191 + { AU1200_MAE_BE_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  192 + { AU1200_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  193 + { AU1200_MAE_FE_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  194 + { AU1200_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  195 + { AU1200_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  196 + { AU1200_AES_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  197 + { AU1200_CAMERA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  198 + { AU1200_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
  199 + { AU1200_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
  200 + { AU1200_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
  201 + { AU1200_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
  202 + { AU1200_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
  203 + { AU1200_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
  204 + { AU1200_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
  205 + { AU1200_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
  206 + { AU1200_NAND_INT, IRQ_TYPE_EDGE_RISING, 0 },
  207 + { AU1200_USB_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  208 + { AU1200_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
  209 + { AU1200_MAE_BOTH_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
210 210  
211 211 #else
212 212 #error "Error: Unknown Alchemy SOC"
... ... @@ -316,7 +316,7 @@
316 316 * nowhere in the current kernel sources is it disabled. --mlau
317 317 */
318 318 #if defined(CONFIG_MIPS_PB1000)
319   - if (irq_nr == AU1000_GPIO_15)
  319 + if (irq_nr == AU1000_GPIO15_INT)
320 320 au_writel(0x4000, PB1000_MDR); /* enable int */
321 321 #endif
322 322 au_sync();
323 323  
... ... @@ -388,11 +388,13 @@
388 388  
389 389 static int au1x_ic1_setwake(unsigned int irq, unsigned int on)
390 390 {
391   - unsigned int bit = irq - AU1000_INTC1_INT_BASE;
  391 + int bit = irq - AU1000_INTC1_INT_BASE;
392 392 unsigned long wakemsk, flags;
393 393  
394   - /* only GPIO 0-7 can act as wakeup source: */
395   - if ((irq < AU1000_GPIO_0) || (irq > AU1000_GPIO_7))
  394 + /* only GPIO 0-7 can act as wakeup source. Fortunately these
  395 + * are wired up identically on all supported variants.
  396 + */
  397 + if ((bit < 0) || (bit > 7))
396 398 return -EINVAL;
397 399  
398 400 local_irq_save(flags);
arch/mips/alchemy/common/platform.c
... ... @@ -73,8 +73,8 @@
73 73 .flags = IORESOURCE_MEM,
74 74 },
75 75 [1] = {
76   - .start = AU1000_USB_HOST_INT,
77   - .end = AU1000_USB_HOST_INT,
  76 + .start = FOR_PLATFORM_C_USB_HOST_INT,
  77 + .end = FOR_PLATFORM_C_USB_HOST_INT,
78 78 .flags = IORESOURCE_IRQ,
79 79 },
80 80 };
... ... @@ -132,8 +132,8 @@
132 132 .flags = IORESOURCE_MEM,
133 133 },
134 134 [1] = {
135   - .start = AU1000_USB_HOST_INT,
136   - .end = AU1000_USB_HOST_INT,
  135 + .start = AU1200_USB_INT,
  136 + .end = AU1200_USB_INT,
137 137 .flags = IORESOURCE_IRQ,
138 138 },
139 139 };
arch/mips/alchemy/common/time.c
1 1 /*
2   - * Copyright (C) 2008 Manuel Lauss <mano@roarinelk.homelinux.net>
  2 + * Copyright (C) 2008-2009 Manuel Lauss <manuel.lauss@gmail.com>
3 3 *
4 4 * Previous incarnations were:
5 5 * Copyright (C) 2001, 2006, 2008 MontaVista Software, <source@mvista.com>
... ... @@ -85,7 +85,6 @@
85 85 .name = "rtcmatch2",
86 86 .features = CLOCK_EVT_FEAT_ONESHOT,
87 87 .rating = 100,
88   - .irq = AU1000_RTC_MATCH2_INT,
89 88 .set_next_event = au1x_rtcmatch2_set_next_event,
90 89 .set_mode = au1x_rtcmatch2_set_mode,
91 90 .cpumask = cpu_all_mask,
92 91  
... ... @@ -98,11 +97,13 @@
98 97 .dev_id = &au1x_rtcmatch2_clockdev,
99 98 };
100 99  
101   -void __init plat_time_init(void)
  100 +static int __init alchemy_time_init(unsigned int m2int)
102 101 {
103 102 struct clock_event_device *cd = &au1x_rtcmatch2_clockdev;
104 103 unsigned long t;
105 104  
  105 + au1x_rtcmatch2_clockdev.irq = m2int;
  106 +
106 107 /* Check if firmware (YAMON, ...) has enabled 32kHz and clock
107 108 * has been detected. If so install the rtcmatch2 clocksource,
108 109 * otherwise don't bother. Note that both bits being set is by
109 110  
110 111  
... ... @@ -148,13 +149,18 @@
148 149 cd->max_delta_ns = clockevent_delta2ns(0xffffffff, cd);
149 150 cd->min_delta_ns = clockevent_delta2ns(8, cd); /* ~0.25ms */
150 151 clockevents_register_device(cd);
151   - setup_irq(AU1000_RTC_MATCH2_INT, &au1x_rtcmatch2_irqaction);
  152 + setup_irq(m2int, &au1x_rtcmatch2_irqaction);
152 153  
153 154 printk(KERN_INFO "Alchemy clocksource installed\n");
154 155  
155   - return;
  156 + return 0;
156 157  
157 158 cntr_err:
  159 + return -1;
  160 +}
  161 +
  162 +static void __init alchemy_setup_c0timer(void)
  163 +{
158 164 /*
159 165 * MIPS kernel assigns 'au1k_wait' to 'cpu_wait' before this
160 166 * function is called. Because the Alchemy counters are unusable
... ... @@ -165,5 +171,24 @@
165 171 cpu_wait = NULL;
166 172 r4k_clockevent_init();
167 173 init_r4k_clocksource();
  174 +}
  175 +
  176 +static int alchemy_m2inttab[] __initdata = {
  177 + AU1000_RTC_MATCH2_INT,
  178 + AU1500_RTC_MATCH2_INT,
  179 + AU1100_RTC_MATCH2_INT,
  180 + AU1550_RTC_MATCH2_INT,
  181 + AU1200_RTC_MATCH2_INT,
  182 +};
  183 +
  184 +void __init plat_time_init(void)
  185 +{
  186 + int t;
  187 +
  188 + t = alchemy_get_cputype();
  189 + if (t == ALCHEMY_CPU_UNKNOWN)
  190 + alchemy_setup_c0timer();
  191 + else if (alchemy_time_init(alchemy_m2inttab[t]))
  192 + alchemy_setup_c0timer();
168 193 }
arch/mips/alchemy/devboards/db1x00/board_setup.c
... ... @@ -39,32 +39,32 @@
39 39  
40 40 #ifdef CONFIG_MIPS_DB1500
41 41 char irq_tab_alchemy[][5] __initdata = {
42   - [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - HPT371 */
43   - [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */
  42 + [12] = { -1, AU1500_PCI_INTA, 0xff, 0xff, 0xff }, /* IDSEL 12 - HPT371 */
  43 + [13] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, AU1500_PCI_INTC, AU1500_PCI_INTD }, /* IDSEL 13 - PCI slot */
44 44 };
45 45 #endif
46 46  
47 47 #ifdef CONFIG_MIPS_BOSPORUS
48 48 char irq_tab_alchemy[][5] __initdata = {
49   - [11] = { -1, INTA, INTB, INTX, INTX }, /* IDSEL 11 - miniPCI */
50   - [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - SN1741 */
51   - [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */
  49 + [11] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, 0xff, 0xff }, /* IDSEL 11 - miniPCI */
  50 + [12] = { -1, AU1500_PCI_INTA, 0xff, 0xff, 0xff }, /* IDSEL 12 - SN1741 */
  51 + [13] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, AU1500_PCI_INTC, AU1500_PCI_INTD }, /* IDSEL 13 - PCI slot */
52 52 };
53 53 #endif
54 54  
55 55 #ifdef CONFIG_MIPS_MIRAGE
56 56 char irq_tab_alchemy[][5] __initdata = {
57   - [11] = { -1, INTD, INTX, INTX, INTX }, /* IDSEL 11 - SMI VGX */
58   - [12] = { -1, INTX, INTX, INTC, INTX }, /* IDSEL 12 - PNX1300 */
59   - [13] = { -1, INTA, INTB, INTX, INTX }, /* IDSEL 13 - miniPCI */
  57 + [11] = { -1, AU1500_PCI_INTD, 0xff, 0xff, 0xff }, /* IDSEL 11 - SMI VGX */
  58 + [12] = { -1, 0xff, 0xff, AU1500_PCI_INTC, 0xff }, /* IDSEL 12 - PNX1300 */
  59 + [13] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, 0xff, 0xff }, /* IDSEL 13 - miniPCI */
60 60 };
61 61 #endif
62 62  
63 63 #ifdef CONFIG_MIPS_DB1550
64 64 char irq_tab_alchemy[][5] __initdata = {
65   - [11] = { -1, INTC, INTX, INTX, INTX }, /* IDSEL 11 - on-board HPT371 */
66   - [12] = { -1, INTB, INTC, INTD, INTA }, /* IDSEL 12 - PCI slot 2 (left) */
67   - [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot 1 (right) */
  65 + [11] = { -1, AU1550_PCI_INTC, 0xff, 0xff, 0xff }, /* IDSEL 11 - on-board HPT371 */
  66 + [12] = { -1, AU1550_PCI_INTB, AU1550_PCI_INTC, AU1550_PCI_INTD, AU1550_PCI_INTA }, /* IDSEL 12 - PCI slot 2 (left) */
  67 + [13] = { -1, AU1550_PCI_INTA, AU1550_PCI_INTB, AU1550_PCI_INTC, AU1550_PCI_INTD }, /* IDSEL 13 - PCI slot 1 (right) */
68 68 };
69 69 #endif
70 70  
71 71  
... ... @@ -185,21 +185,35 @@
185 185 static int __init db1x00_init_irq(void)
186 186 {
187 187 #if defined(CONFIG_MIPS_MIRAGE)
188   - set_irq_type(AU1000_GPIO_7, IRQF_TRIGGER_RISING); /* TS pendown */
  188 + set_irq_type(AU1500_GPIO7_INT, IRQF_TRIGGER_RISING); /* TS pendown */
189 189 #elif defined(CONFIG_MIPS_DB1550)
190   - set_irq_type(AU1000_GPIO_0, IRQF_TRIGGER_LOW); /* CD0# */
191   - set_irq_type(AU1000_GPIO_1, IRQF_TRIGGER_LOW); /* CD1# */
192   - set_irq_type(AU1000_GPIO_3, IRQF_TRIGGER_LOW); /* CARD0# */
193   - set_irq_type(AU1000_GPIO_5, IRQF_TRIGGER_LOW); /* CARD1# */
194   - set_irq_type(AU1000_GPIO_21, IRQF_TRIGGER_LOW); /* STSCHG0# */
195   - set_irq_type(AU1000_GPIO_22, IRQF_TRIGGER_LOW); /* STSCHG1# */
196   -#else
197   - set_irq_type(AU1000_GPIO_0, IRQF_TRIGGER_LOW); /* CD0# */
198   - set_irq_type(AU1000_GPIO_3, IRQF_TRIGGER_LOW); /* CD1# */
199   - set_irq_type(AU1000_GPIO_2, IRQF_TRIGGER_LOW); /* CARD0# */
200   - set_irq_type(AU1000_GPIO_5, IRQF_TRIGGER_LOW); /* CARD1# */
201   - set_irq_type(AU1000_GPIO_1, IRQF_TRIGGER_LOW); /* STSCHG0# */
202   - set_irq_type(AU1000_GPIO_4, IRQF_TRIGGER_LOW); /* STSCHG1# */
  190 + set_irq_type(AU1550_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
  191 + set_irq_type(AU1550_GPIO1_INT, IRQF_TRIGGER_LOW); /* CD1# */
  192 + set_irq_type(AU1550_GPIO3_INT, IRQF_TRIGGER_LOW); /* CARD0# */
  193 + set_irq_type(AU1550_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
  194 + set_irq_type(AU1550_GPIO21_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
  195 + set_irq_type(AU1550_GPIO22_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
  196 +#elif defined(CONFIG_MIPS_DB1500)
  197 + set_irq_type(AU1500_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
  198 + set_irq_type(AU1500_GPIO3_INT, IRQF_TRIGGER_LOW); /* CD1# */
  199 + set_irq_type(AU1500_GPIO2_INT, IRQF_TRIGGER_LOW); /* CARD0# */
  200 + set_irq_type(AU1500_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
  201 + set_irq_type(AU1500_GPIO1_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
  202 + set_irq_type(AU1500_GPIO4_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
  203 +#elif defined(CONFIG_MIPS_DB1100)
  204 + set_irq_type(AU1100_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
  205 + set_irq_type(AU1100_GPIO3_INT, IRQF_TRIGGER_LOW); /* CD1# */
  206 + set_irq_type(AU1100_GPIO2_INT, IRQF_TRIGGER_LOW); /* CARD0# */
  207 + set_irq_type(AU1100_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
  208 + set_irq_type(AU1100_GPIO1_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
  209 + set_irq_type(AU1100_GPIO4_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
  210 +#elif defined(CONFIG_MIPS_DB1000)
  211 + set_irq_type(AU1000_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
  212 + set_irq_type(AU1000_GPIO3_INT, IRQF_TRIGGER_LOW); /* CD1# */
  213 + set_irq_type(AU1000_GPIO2_INT, IRQF_TRIGGER_LOW); /* CARD0# */
  214 + set_irq_type(AU1000_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
  215 + set_irq_type(AU1000_GPIO1_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
  216 + set_irq_type(AU1000_GPIO4_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
203 217 #endif
204 218 return 0;
205 219 }
arch/mips/alchemy/devboards/db1x00/platform.c
... ... @@ -24,32 +24,46 @@
24 24 #include <asm/mach-au1x00/au1xxx.h>
25 25 #include "../platform.h"
26 26  
27   -#if defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || \
28   - defined(CONFIG_MIPS_DB1500) || defined(CONFIG_MIPS_DB1550)
29   -#define DB1XXX_HAS_PCMCIA
30   -#endif
31   -
32 27 /* DB1xxx PCMCIA interrupt sources:
33 28 * CD0/1 GPIO0/3
34 29 * STSCHG0/1 GPIO1/4
35 30 * CARD0/1 GPIO2/5
36 31 * Db1550: 0/1, 21/22, 3/5
37 32 */
38   -#ifndef CONFIG_MIPS_DB1550
39   -/* Db1000, Db1100, Db1500 */
40   -#define DB1XXX_PCMCIA_CD0 AU1000_GPIO_0
41   -#define DB1XXX_PCMCIA_STSCHG0 AU1000_GPIO_1
42   -#define DB1XXX_PCMCIA_CARD0 AU1000_GPIO_2
43   -#define DB1XXX_PCMCIA_CD1 AU1000_GPIO_3
44   -#define DB1XXX_PCMCIA_STSCHG1 AU1000_GPIO_4
45   -#define DB1XXX_PCMCIA_CARD1 AU1000_GPIO_5
  33 +
  34 +#define DB1XXX_HAS_PCMCIA
  35 +
  36 +#if defined(CONFIG_MIPS_DB1000)
  37 +#define DB1XXX_PCMCIA_CD0 AU1000_GPIO0_INT
  38 +#define DB1XXX_PCMCIA_STSCHG0 AU1000_GPIO1_INT
  39 +#define DB1XXX_PCMCIA_CARD0 AU1000_GPIO2_INT
  40 +#define DB1XXX_PCMCIA_CD1 AU1000_GPIO3_INT
  41 +#define DB1XXX_PCMCIA_STSCHG1 AU1000_GPIO4_INT
  42 +#define DB1XXX_PCMCIA_CARD1 AU1000_GPIO5_INT
  43 +#elif defined(CONFIG_MIPS_DB1100)
  44 +#define DB1XXX_PCMCIA_CD0 AU1100_GPIO0_INT
  45 +#define DB1XXX_PCMCIA_STSCHG0 AU1100_GPIO1_INT
  46 +#define DB1XXX_PCMCIA_CARD0 AU1100_GPIO2_INT
  47 +#define DB1XXX_PCMCIA_CD1 AU1100_GPIO3_INT
  48 +#define DB1XXX_PCMCIA_STSCHG1 AU1100_GPIO4_INT
  49 +#define DB1XXX_PCMCIA_CARD1 AU1100_GPIO5_INT
  50 +#elif defined(CONFIG_MIPS_DB1500)
  51 +#define DB1XXX_PCMCIA_CD0 AU1500_GPIO0_INT
  52 +#define DB1XXX_PCMCIA_STSCHG0 AU1500_GPIO1_INT
  53 +#define DB1XXX_PCMCIA_CARD0 AU1500_GPIO2_INT
  54 +#define DB1XXX_PCMCIA_CD1 AU1500_GPIO3_INT
  55 +#define DB1XXX_PCMCIA_STSCHG1 AU1500_GPIO4_INT
  56 +#define DB1XXX_PCMCIA_CARD1 AU1500_GPIO5_INT
  57 +#elif defined(CONFIG_MIPS_DB1550)
  58 +#define DB1XXX_PCMCIA_CD0 AU1550_GPIO0_INT
  59 +#define DB1XXX_PCMCIA_STSCHG0 AU1550_GPIO21_INT
  60 +#define DB1XXX_PCMCIA_CARD0 AU1550_GPIO3_INT
  61 +#define DB1XXX_PCMCIA_CD1 AU1550_GPIO1_INT
  62 +#define DB1XXX_PCMCIA_STSCHG1 AU1550_GPIO22_INT
  63 +#define DB1XXX_PCMCIA_CARD1 AU1550_GPIO5_INT
46 64 #else
47   -#define DB1XXX_PCMCIA_CD0 AU1000_GPIO_0
48   -#define DB1XXX_PCMCIA_STSCHG0 AU1500_GPIO_21
49   -#define DB1XXX_PCMCIA_CARD0 AU1000_GPIO_3
50   -#define DB1XXX_PCMCIA_CD1 AU1000_GPIO_1
51   -#define DB1XXX_PCMCIA_STSCHG1 AU1500_GPIO_22
52   -#define DB1XXX_PCMCIA_CARD1 AU1000_GPIO_5
  65 +/* other board: no PCMCIA */
  66 +#undef DB1XXX_HAS_PCMCIA
53 67 #endif
54 68  
55 69 static int __init db1xxx_dev_init(void)
arch/mips/alchemy/devboards/pb1000/board_setup.c
... ... @@ -186,7 +186,7 @@
186 186  
187 187 static int __init pb1000_init_irq(void)
188 188 {
189   - set_irq_type(AU1000_GPIO_15, IRQF_TRIGGER_LOW);
  189 + set_irq_type(AU1000_GPIO15_INT, IRQF_TRIGGER_LOW);
190 190 return 0;
191 191 }
192 192 arch_initcall(pb1000_init_irq);
arch/mips/alchemy/devboards/pb1100/board_setup.c
... ... @@ -147,10 +147,10 @@
147 147  
148 148 static int __init pb1100_init_irq(void)
149 149 {
150   - set_irq_type(AU1000_GPIO_9, IRQF_TRIGGER_LOW); /* PCCD# */
151   - set_irq_type(AU1000_GPIO_10, IRQF_TRIGGER_LOW); /* PCSTSCHG# */
152   - set_irq_type(AU1000_GPIO_11, IRQF_TRIGGER_LOW); /* PCCard# */
153   - set_irq_type(AU1000_GPIO_13, IRQF_TRIGGER_LOW); /* DC_IRQ# */
  150 + set_irq_type(AU1100_GPIO9_INT, IRQF_TRIGGER_LOW); /* PCCD# */
  151 + set_irq_type(AU1100_GPIO10_INT, IRQF_TRIGGER_LOW); /* PCSTSCHG# */
  152 + set_irq_type(AU1100_GPIO11_INT, IRQF_TRIGGER_LOW); /* PCCard# */
  153 + set_irq_type(AU1100_GPIO13_INT, IRQF_TRIGGER_LOW); /* DC_IRQ# */
154 154  
155 155 return 0;
156 156 }
arch/mips/alchemy/devboards/pb1100/platform.c
... ... @@ -33,9 +33,9 @@
33 33 PCMCIA_MEM_PSEUDO_PHYS + 0x00040000 - 1,
34 34 PCMCIA_IO_PSEUDO_PHYS,
35 35 PCMCIA_IO_PSEUDO_PHYS + 0x00001000 - 1,
36   - AU1000_GPIO_11, /* card */
37   - AU1000_GPIO_9, /* insert */
38   - /*AU1000_GPIO_10*/0, /* stschg */
  36 + AU1100_GPIO11_INT, /* card */
  37 + AU1100_GPIO9_INT, /* insert */
  38 + /*AU1100_GPIO10_INT*/0, /* stschg */
39 39 0, /* eject */
40 40 0); /* id */
41 41 return 0;
arch/mips/alchemy/devboards/pb1200/board_setup.c
... ... @@ -171,8 +171,8 @@
171 171 }
172 172 #endif
173 173  
174   - set_irq_type(AU1000_GPIO_7, IRQF_TRIGGER_LOW);
175   - bcsr_init_irq(PB1200_INT_BEGIN, PB1200_INT_END, AU1000_GPIO_7);
  174 + set_irq_type(AU1200_GPIO7_INT, IRQF_TRIGGER_LOW);
  175 + bcsr_init_irq(PB1200_INT_BEGIN, PB1200_INT_END, AU1200_GPIO7_INT);
176 176  
177 177 return 0;
178 178 }
arch/mips/alchemy/devboards/pb1500/board_setup.c
... ... @@ -35,8 +35,8 @@
35 35  
36 36  
37 37 char irq_tab_alchemy[][5] __initdata = {
38   - [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - HPT370 */
39   - [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */
  38 + [12] = { -1, AU1500_PCI_INTA, 0xff, 0xff, 0xff }, /* IDSEL 12 - HPT370 */
  39 + [13] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, AU1500_PCI_INTC, AU1500_PCI_INTD }, /* IDSEL 13 - PCI slot */
40 40 };
41 41  
42 42  
... ... @@ -155,14 +155,14 @@
155 155  
156 156 static int __init pb1500_init_irq(void)
157 157 {
158   - set_irq_type(AU1000_GPIO_9, IRQF_TRIGGER_LOW); /* CD0# */
159   - set_irq_type(AU1000_GPIO_10, IRQF_TRIGGER_LOW); /* CARD0 */
160   - set_irq_type(AU1000_GPIO_11, IRQF_TRIGGER_LOW); /* STSCHG0# */
161   - set_irq_type(AU1500_GPIO_204, IRQF_TRIGGER_HIGH);
162   - set_irq_type(AU1500_GPIO_201, IRQF_TRIGGER_LOW);
163   - set_irq_type(AU1500_GPIO_202, IRQF_TRIGGER_LOW);
164   - set_irq_type(AU1500_GPIO_203, IRQF_TRIGGER_LOW);
165   - set_irq_type(AU1500_GPIO_205, IRQF_TRIGGER_LOW);
  158 + set_irq_type(AU1500_GPIO9_INT, IRQF_TRIGGER_LOW); /* CD0# */
  159 + set_irq_type(AU1500_GPIO10_INT, IRQF_TRIGGER_LOW); /* CARD0 */
  160 + set_irq_type(AU1500_GPIO11_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
  161 + set_irq_type(AU1500_GPIO204_INT, IRQF_TRIGGER_HIGH);
  162 + set_irq_type(AU1500_GPIO201_INT, IRQF_TRIGGER_LOW);
  163 + set_irq_type(AU1500_GPIO202_INT, IRQF_TRIGGER_LOW);
  164 + set_irq_type(AU1500_GPIO203_INT, IRQF_TRIGGER_LOW);
  165 + set_irq_type(AU1500_GPIO205_INT, IRQF_TRIGGER_LOW);
166 166  
167 167 return 0;
168 168 }
arch/mips/alchemy/devboards/pb1500/platform.c
... ... @@ -32,9 +32,9 @@
32 32 PCMCIA_MEM_PSEUDO_PHYS + 0x00040000 - 1,
33 33 PCMCIA_IO_PSEUDO_PHYS,
34 34 PCMCIA_IO_PSEUDO_PHYS + 0x00001000 - 1,
35   - AU1000_GPIO_11, /* card */
36   - AU1000_GPIO_9, /* insert */
37   - /*AU1000_GPIO_10*/0, /* stschg */
  35 + AU1500_GPIO11_INT, /* card */
  36 + AU1500_GPIO9_INT, /* insert */
  37 + /*AU1500_GPIO10_INT*/0, /* stschg */
38 38 0, /* eject */
39 39 0); /* id */
40 40 return 0;
arch/mips/alchemy/devboards/pb1550/board_setup.c
... ... @@ -39,8 +39,8 @@
39 39  
40 40  
41 41 char irq_tab_alchemy[][5] __initdata = {
42   - [12] = { -1, INTB, INTC, INTD, INTA }, /* IDSEL 12 - PCI slot 2 (left) */
43   - [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot 1 (right) */
  42 + [12] = { -1, AU1550_PCI_INTB, AU1550_PCI_INTC, AU1550_PCI_INTD, AU1550_PCI_INTA }, /* IDSEL 12 - PCI slot 2 (left) */
  43 + [13] = { -1, AU1550_PCI_INTA, AU1550_PCI_INTB, AU1550_PCI_INTC, AU1550_PCI_INTD }, /* IDSEL 13 - PCI slot 1 (right) */
44 44 };
45 45  
46 46 const char *get_system_type(void)
... ... @@ -89,9 +89,9 @@
89 89  
90 90 static int __init pb1550_init_irq(void)
91 91 {
92   - set_irq_type(AU1000_GPIO_0, IRQF_TRIGGER_LOW);
93   - set_irq_type(AU1000_GPIO_1, IRQF_TRIGGER_LOW);
94   - set_irq_type(AU1500_GPIO_201_205, IRQF_TRIGGER_HIGH);
  92 + set_irq_type(AU1550_GPIO0_INT, IRQF_TRIGGER_LOW);
  93 + set_irq_type(AU1550_GPIO1_INT, IRQF_TRIGGER_LOW);
  94 + set_irq_type(AU1550_GPIO201_205_INT, IRQF_TRIGGER_HIGH);
95 95  
96 96 /* enable both PCMCIA card irqs in the shared line */
97 97 alchemy_gpio2_enable_int(201);
arch/mips/alchemy/devboards/pb1550/platform.c
... ... @@ -40,8 +40,8 @@
40 40 PCMCIA_MEM_PSEUDO_PHYS + 0x00040000 - 1,
41 41 PCMCIA_IO_PSEUDO_PHYS,
42 42 PCMCIA_IO_PSEUDO_PHYS + 0x00001000 - 1,
43   - AU1500_GPIO_201_205,
44   - AU1000_GPIO_0,
  43 + AU1550_GPIO201_205_INT,
  44 + AU1550_GPIO0_INT,
45 45 0,
46 46 0,
47 47 0);
... ... @@ -52,8 +52,8 @@
52 52 PCMCIA_MEM_PSEUDO_PHYS + 0x00840000 - 1,
53 53 PCMCIA_IO_PSEUDO_PHYS + 0x00800000,
54 54 PCMCIA_IO_PSEUDO_PHYS + 0x00801000 - 1,
55   - AU1500_GPIO_201_205,
56   - AU1000_GPIO_1,
  55 + AU1550_GPIO201_205_INT,
  56 + AU1550_GPIO1_INT,
57 57 0,
58 58 0,
59 59 1);
arch/mips/alchemy/mtx-1/board_setup.c
... ... @@ -37,14 +37,14 @@
37 37 #include <prom.h>
38 38  
39 39 char irq_tab_alchemy[][5] __initdata = {
40   - [0] = { -1, INTA, INTA, INTX, INTX }, /* IDSEL 00 - AdapterA-Slot0 (top) */
41   - [1] = { -1, INTB, INTA, INTX, INTX }, /* IDSEL 01 - AdapterA-Slot1 (bottom) */
42   - [2] = { -1, INTC, INTD, INTX, INTX }, /* IDSEL 02 - AdapterB-Slot0 (top) */
43   - [3] = { -1, INTD, INTC, INTX, INTX }, /* IDSEL 03 - AdapterB-Slot1 (bottom) */
44   - [4] = { -1, INTA, INTB, INTX, INTX }, /* IDSEL 04 - AdapterC-Slot0 (top) */
45   - [5] = { -1, INTB, INTA, INTX, INTX }, /* IDSEL 05 - AdapterC-Slot1 (bottom) */
46   - [6] = { -1, INTC, INTD, INTX, INTX }, /* IDSEL 06 - AdapterD-Slot0 (top) */
47   - [7] = { -1, INTD, INTC, INTX, INTX }, /* IDSEL 07 - AdapterD-Slot1 (bottom) */
  40 + [0] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTA, 0xff, 0xff }, /* IDSEL 00 - AdapterA-Slot0 (top) */
  41 + [1] = { -1, AU1500_PCI_INTB, AU1500_PCI_INTA, 0xff, 0xff }, /* IDSEL 01 - AdapterA-Slot1 (bottom) */
  42 + [2] = { -1, AU1500_PCI_INTC, AU1500_PCI_INTD, 0xff, 0xff }, /* IDSEL 02 - AdapterB-Slot0 (top) */
  43 + [3] = { -1, AU1500_PCI_INTD, AU1500_PCI_INTC, 0xff, 0xff }, /* IDSEL 03 - AdapterB-Slot1 (bottom) */
  44 + [4] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, 0xff, 0xff }, /* IDSEL 04 - AdapterC-Slot0 (top) */
  45 + [5] = { -1, AU1500_PCI_INTB, AU1500_PCI_INTA, 0xff, 0xff }, /* IDSEL 05 - AdapterC-Slot1 (bottom) */
  46 + [6] = { -1, AU1500_PCI_INTC, AU1500_PCI_INTD, 0xff, 0xff }, /* IDSEL 06 - AdapterD-Slot0 (top) */
  47 + [7] = { -1, AU1500_PCI_INTD, AU1500_PCI_INTC, 0xff, 0xff }, /* IDSEL 07 - AdapterD-Slot1 (bottom) */
48 48 };
49 49  
50 50 extern int (*board_pci_idsel)(unsigned int devsel, int assert);
... ... @@ -124,11 +124,11 @@
124 124  
125 125 static int __init mtx1_init_irq(void)
126 126 {
127   - set_irq_type(AU1500_GPIO_204, IRQF_TRIGGER_HIGH);
128   - set_irq_type(AU1500_GPIO_201, IRQF_TRIGGER_LOW);
129   - set_irq_type(AU1500_GPIO_202, IRQF_TRIGGER_LOW);
130   - set_irq_type(AU1500_GPIO_203, IRQF_TRIGGER_LOW);
131   - set_irq_type(AU1500_GPIO_205, IRQF_TRIGGER_LOW);
  127 + set_irq_type(AU1500_GPIO204_INT, IRQF_TRIGGER_HIGH);
  128 + set_irq_type(AU1500_GPIO201_INT, IRQF_TRIGGER_LOW);
  129 + set_irq_type(AU1500_GPIO202_INT, IRQF_TRIGGER_LOW);
  130 + set_irq_type(AU1500_GPIO203_INT, IRQF_TRIGGER_LOW);
  131 + set_irq_type(AU1500_GPIO205_INT, IRQF_TRIGGER_LOW);
132 132  
133 133 return 0;
134 134 }
arch/mips/alchemy/xxs1500/board_setup.c
... ... @@ -80,19 +80,19 @@
80 80  
81 81 static int __init xxs1500_init_irq(void)
82 82 {
83   - set_irq_type(AU1500_GPIO_204, IRQF_TRIGGER_HIGH);
84   - set_irq_type(AU1500_GPIO_201, IRQF_TRIGGER_LOW);
85   - set_irq_type(AU1500_GPIO_202, IRQF_TRIGGER_LOW);
86   - set_irq_type(AU1500_GPIO_203, IRQF_TRIGGER_LOW);
87   - set_irq_type(AU1500_GPIO_205, IRQF_TRIGGER_LOW);
88   - set_irq_type(AU1500_GPIO_207, IRQF_TRIGGER_LOW);
  83 + set_irq_type(AU1500_GPIO204_INT, IRQF_TRIGGER_HIGH);
  84 + set_irq_type(AU1500_GPIO201_INT, IRQF_TRIGGER_LOW);
  85 + set_irq_type(AU1500_GPIO202_INT, IRQF_TRIGGER_LOW);
  86 + set_irq_type(AU1500_GPIO203_INT, IRQF_TRIGGER_LOW);
  87 + set_irq_type(AU1500_GPIO205_INT, IRQF_TRIGGER_LOW);
  88 + set_irq_type(AU1500_GPIO207_INT, IRQF_TRIGGER_LOW);
89 89  
90   - set_irq_type(AU1000_GPIO_0, IRQF_TRIGGER_LOW);
91   - set_irq_type(AU1000_GPIO_1, IRQF_TRIGGER_LOW);
92   - set_irq_type(AU1000_GPIO_2, IRQF_TRIGGER_LOW);
93   - set_irq_type(AU1000_GPIO_3, IRQF_TRIGGER_LOW);
94   - set_irq_type(AU1000_GPIO_4, IRQF_TRIGGER_LOW); /* CF interrupt */
95   - set_irq_type(AU1000_GPIO_5, IRQF_TRIGGER_LOW);
  90 + set_irq_type(AU1500_GPIO0_INT, IRQF_TRIGGER_LOW);
  91 + set_irq_type(AU1500_GPIO1_INT, IRQF_TRIGGER_LOW);
  92 + set_irq_type(AU1500_GPIO2_INT, IRQF_TRIGGER_LOW);
  93 + set_irq_type(AU1500_GPIO3_INT, IRQF_TRIGGER_LOW);
  94 + set_irq_type(AU1500_GPIO4_INT, IRQF_TRIGGER_LOW); /* CF irq */
  95 + set_irq_type(AU1500_GPIO5_INT, IRQF_TRIGGER_LOW);
96 96  
97 97 return 0;
98 98 }
arch/mips/include/asm/mach-au1x00/au1000.h
... ... @@ -174,6 +174,333 @@
174 174 void save_au1xxx_intctl(void);
175 175 void restore_au1xxx_intctl(void);
176 176  
  177 +
  178 +/* SOC Interrupt numbers */
  179 +
  180 +#define AU1000_INTC0_INT_BASE (MIPS_CPU_IRQ_BASE + 8)
  181 +#define AU1000_INTC0_INT_LAST (AU1000_INTC0_INT_BASE + 31)
  182 +#define AU1000_INTC1_INT_BASE (AU1000_INTC0_INT_LAST + 1)
  183 +#define AU1000_INTC1_INT_LAST (AU1000_INTC1_INT_BASE + 31)
  184 +#define AU1000_MAX_INTR AU1000_INTC1_INT_LAST
  185 +
  186 +enum soc_au1000_ints {
  187 + AU1000_FIRST_INT = AU1000_INTC0_INT_BASE,
  188 + AU1000_UART0_INT = AU1000_FIRST_INT,
  189 + AU1000_UART1_INT,
  190 + AU1000_UART2_INT,
  191 + AU1000_UART3_INT,
  192 + AU1000_SSI0_INT,
  193 + AU1000_SSI1_INT,
  194 + AU1000_DMA_INT_BASE,
  195 +
  196 + AU1000_TOY_INT = AU1000_FIRST_INT + 14,
  197 + AU1000_TOY_MATCH0_INT,
  198 + AU1000_TOY_MATCH1_INT,
  199 + AU1000_TOY_MATCH2_INT,
  200 + AU1000_RTC_INT,
  201 + AU1000_RTC_MATCH0_INT,
  202 + AU1000_RTC_MATCH1_INT,
  203 + AU1000_RTC_MATCH2_INT,
  204 + AU1000_IRDA_TX_INT,
  205 + AU1000_IRDA_RX_INT,
  206 + AU1000_USB_DEV_REQ_INT,
  207 + AU1000_USB_DEV_SUS_INT,
  208 + AU1000_USB_HOST_INT,
  209 + AU1000_ACSYNC_INT,
  210 + AU1000_MAC0_DMA_INT,
  211 + AU1000_MAC1_DMA_INT,
  212 + AU1000_I2S_UO_INT,
  213 + AU1000_AC97C_INT,
  214 + AU1000_GPIO0_INT,
  215 + AU1000_GPIO1_INT,
  216 + AU1000_GPIO2_INT,
  217 + AU1000_GPIO3_INT,
  218 + AU1000_GPIO4_INT,
  219 + AU1000_GPIO5_INT,
  220 + AU1000_GPIO6_INT,
  221 + AU1000_GPIO7_INT,
  222 + AU1000_GPIO8_INT,
  223 + AU1000_GPIO9_INT,
  224 + AU1000_GPIO10_INT,
  225 + AU1000_GPIO11_INT,
  226 + AU1000_GPIO12_INT,
  227 + AU1000_GPIO13_INT,
  228 + AU1000_GPIO14_INT,
  229 + AU1000_GPIO15_INT,
  230 + AU1000_GPIO16_INT,
  231 + AU1000_GPIO17_INT,
  232 + AU1000_GPIO18_INT,
  233 + AU1000_GPIO19_INT,
  234 + AU1000_GPIO20_INT,
  235 + AU1000_GPIO21_INT,
  236 + AU1000_GPIO22_INT,
  237 + AU1000_GPIO23_INT,
  238 + AU1000_GPIO24_INT,
  239 + AU1000_GPIO25_INT,
  240 + AU1000_GPIO26_INT,
  241 + AU1000_GPIO27_INT,
  242 + AU1000_GPIO28_INT,
  243 + AU1000_GPIO29_INT,
  244 + AU1000_GPIO30_INT,
  245 + AU1000_GPIO31_INT,
  246 +};
  247 +
  248 +enum soc_au1100_ints {
  249 + AU1100_FIRST_INT = AU1000_INTC0_INT_BASE,
  250 + AU1100_UART0_INT = AU1100_FIRST_INT,
  251 + AU1100_UART1_INT,
  252 + AU1100_SD_INT,
  253 + AU1100_UART3_INT,
  254 + AU1100_SSI0_INT,
  255 + AU1100_SSI1_INT,
  256 + AU1100_DMA_INT_BASE,
  257 +
  258 + AU1100_TOY_INT = AU1100_FIRST_INT + 14,
  259 + AU1100_TOY_MATCH0_INT,
  260 + AU1100_TOY_MATCH1_INT,
  261 + AU1100_TOY_MATCH2_INT,
  262 + AU1100_RTC_INT,
  263 + AU1100_RTC_MATCH0_INT,
  264 + AU1100_RTC_MATCH1_INT,
  265 + AU1100_RTC_MATCH2_INT,
  266 + AU1100_IRDA_TX_INT,
  267 + AU1100_IRDA_RX_INT,
  268 + AU1100_USB_DEV_REQ_INT,
  269 + AU1100_USB_DEV_SUS_INT,
  270 + AU1100_USB_HOST_INT,
  271 + AU1100_ACSYNC_INT,
  272 + AU1100_MAC0_DMA_INT,
  273 + AU1100_GPIO208_215_INT,
  274 + AU1100_LCD_INT,
  275 + AU1100_AC97C_INT,
  276 + AU1100_GPIO0_INT,
  277 + AU1100_GPIO1_INT,
  278 + AU1100_GPIO2_INT,
  279 + AU1100_GPIO3_INT,
  280 + AU1100_GPIO4_INT,
  281 + AU1100_GPIO5_INT,
  282 + AU1100_GPIO6_INT,
  283 + AU1100_GPIO7_INT,
  284 + AU1100_GPIO8_INT,
  285 + AU1100_GPIO9_INT,
  286 + AU1100_GPIO10_INT,
  287 + AU1100_GPIO11_INT,
  288 + AU1100_GPIO12_INT,
  289 + AU1100_GPIO13_INT,
  290 + AU1100_GPIO14_INT,
  291 + AU1100_GPIO15_INT,
  292 + AU1100_GPIO16_INT,
  293 + AU1100_GPIO17_INT,
  294 + AU1100_GPIO18_INT,
  295 + AU1100_GPIO19_INT,
  296 + AU1100_GPIO20_INT,
  297 + AU1100_GPIO21_INT,
  298 + AU1100_GPIO22_INT,
  299 + AU1100_GPIO23_INT,
  300 + AU1100_GPIO24_INT,
  301 + AU1100_GPIO25_INT,
  302 + AU1100_GPIO26_INT,
  303 + AU1100_GPIO27_INT,
  304 + AU1100_GPIO28_INT,
  305 + AU1100_GPIO29_INT,
  306 + AU1100_GPIO30_INT,
  307 + AU1100_GPIO31_INT,
  308 +};
  309 +
  310 +enum soc_au1500_ints {
  311 + AU1500_FIRST_INT = AU1000_INTC0_INT_BASE,
  312 + AU1500_UART0_INT = AU1500_FIRST_INT,
  313 + AU1500_PCI_INTA,
  314 + AU1500_PCI_INTB,
  315 + AU1500_UART3_INT,
  316 + AU1500_PCI_INTC,
  317 + AU1500_PCI_INTD,
  318 + AU1500_DMA_INT_BASE,
  319 +
  320 + AU1500_TOY_INT = AU1500_FIRST_INT + 14,
  321 + AU1500_TOY_MATCH0_INT,
  322 + AU1500_TOY_MATCH1_INT,
  323 + AU1500_TOY_MATCH2_INT,
  324 + AU1500_RTC_INT,
  325 + AU1500_RTC_MATCH0_INT,
  326 + AU1500_RTC_MATCH1_INT,
  327 + AU1500_RTC_MATCH2_INT,
  328 + AU1500_PCI_ERR_INT,
  329 + AU1500_RESERVED_INT,
  330 + AU1500_USB_DEV_REQ_INT,
  331 + AU1500_USB_DEV_SUS_INT,
  332 + AU1500_USB_HOST_INT,
  333 + AU1500_ACSYNC_INT,
  334 + AU1500_MAC0_DMA_INT,
  335 + AU1500_MAC1_DMA_INT,
  336 + AU1500_AC97C_INT = AU1500_FIRST_INT + 31,
  337 + AU1500_GPIO0_INT,
  338 + AU1500_GPIO1_INT,
  339 + AU1500_GPIO2_INT,
  340 + AU1500_GPIO3_INT,
  341 + AU1500_GPIO4_INT,
  342 + AU1500_GPIO5_INT,
  343 + AU1500_GPIO6_INT,
  344 + AU1500_GPIO7_INT,
  345 + AU1500_GPIO8_INT,
  346 + AU1500_GPIO9_INT,
  347 + AU1500_GPIO10_INT,
  348 + AU1500_GPIO11_INT,
  349 + AU1500_GPIO12_INT,
  350 + AU1500_GPIO13_INT,
  351 + AU1500_GPIO14_INT,
  352 + AU1500_GPIO15_INT,
  353 + AU1500_GPIO200_INT,
  354 + AU1500_GPIO201_INT,
  355 + AU1500_GPIO202_INT,
  356 + AU1500_GPIO203_INT,
  357 + AU1500_GPIO20_INT,
  358 + AU1500_GPIO204_INT,
  359 + AU1500_GPIO205_INT,
  360 + AU1500_GPIO23_INT,
  361 + AU1500_GPIO24_INT,
  362 + AU1500_GPIO25_INT,
  363 + AU1500_GPIO26_INT,
  364 + AU1500_GPIO27_INT,
  365 + AU1500_GPIO28_INT,
  366 + AU1500_GPIO206_INT,
  367 + AU1500_GPIO207_INT,
  368 + AU1500_GPIO208_215_INT,
  369 +};
  370 +
  371 +enum soc_au1550_ints {
  372 + AU1550_FIRST_INT = AU1000_INTC0_INT_BASE,
  373 + AU1550_UART0_INT = AU1550_FIRST_INT,
  374 + AU1550_PCI_INTA,
  375 + AU1550_PCI_INTB,
  376 + AU1550_DDMA_INT,
  377 + AU1550_CRYPTO_INT,
  378 + AU1550_PCI_INTC,
  379 + AU1550_PCI_INTD,
  380 + AU1550_PCI_RST_INT,
  381 + AU1550_UART1_INT,
  382 + AU1550_UART3_INT,
  383 + AU1550_PSC0_INT,
  384 + AU1550_PSC1_INT,
  385 + AU1550_PSC2_INT,
  386 + AU1550_PSC3_INT,
  387 + AU1550_TOY_INT,
  388 + AU1550_TOY_MATCH0_INT,
  389 + AU1550_TOY_MATCH1_INT,
  390 + AU1550_TOY_MATCH2_INT,
  391 + AU1550_RTC_INT,
  392 + AU1550_RTC_MATCH0_INT,
  393 + AU1550_RTC_MATCH1_INT,
  394 + AU1550_RTC_MATCH2_INT,
  395 +
  396 + AU1550_NAND_INT = AU1550_FIRST_INT + 23,
  397 + AU1550_USB_DEV_REQ_INT,
  398 + AU1550_USB_DEV_SUS_INT,
  399 + AU1550_USB_HOST_INT,
  400 + AU1550_MAC0_DMA_INT,
  401 + AU1550_MAC1_DMA_INT,
  402 + AU1550_GPIO0_INT = AU1550_FIRST_INT + 32,
  403 + AU1550_GPIO1_INT,
  404 + AU1550_GPIO2_INT,
  405 + AU1550_GPIO3_INT,
  406 + AU1550_GPIO4_INT,
  407 + AU1550_GPIO5_INT,
  408 + AU1550_GPIO6_INT,
  409 + AU1550_GPIO7_INT,
  410 + AU1550_GPIO8_INT,
  411 + AU1550_GPIO9_INT,
  412 + AU1550_GPIO10_INT,
  413 + AU1550_GPIO11_INT,
  414 + AU1550_GPIO12_INT,
  415 + AU1550_GPIO13_INT,
  416 + AU1550_GPIO14_INT,
  417 + AU1550_GPIO15_INT,
  418 + AU1550_GPIO200_INT,
  419 + AU1550_GPIO201_205_INT, /* Logical or of GPIO201:205 */
  420 + AU1550_GPIO16_INT,
  421 + AU1550_GPIO17_INT,
  422 + AU1550_GPIO20_INT,
  423 + AU1550_GPIO21_INT,
  424 + AU1550_GPIO22_INT,
  425 + AU1550_GPIO23_INT,
  426 + AU1550_GPIO24_INT,
  427 + AU1550_GPIO25_INT,
  428 + AU1550_GPIO26_INT,
  429 + AU1550_GPIO27_INT,
  430 + AU1550_GPIO28_INT,
  431 + AU1550_GPIO206_INT,
  432 + AU1550_GPIO207_INT,
  433 + AU1550_GPIO208_215_INT, /* Logical or of GPIO208:215 */
  434 +};
  435 +
  436 +enum soc_au1200_ints {
  437 + AU1200_FIRST_INT = AU1000_INTC0_INT_BASE,
  438 + AU1200_UART0_INT = AU1200_FIRST_INT,
  439 + AU1200_SWT_INT,
  440 + AU1200_SD_INT,
  441 + AU1200_DDMA_INT,
  442 + AU1200_MAE_BE_INT,
  443 + AU1200_GPIO200_INT,
  444 + AU1200_GPIO201_INT,
  445 + AU1200_GPIO202_INT,
  446 + AU1200_UART1_INT,
  447 + AU1200_MAE_FE_INT,
  448 + AU1200_PSC0_INT,
  449 + AU1200_PSC1_INT,
  450 + AU1200_AES_INT,
  451 + AU1200_CAMERA_INT,
  452 + AU1200_TOY_INT,
  453 + AU1200_TOY_MATCH0_INT,
  454 + AU1200_TOY_MATCH1_INT,
  455 + AU1200_TOY_MATCH2_INT,
  456 + AU1200_RTC_INT,
  457 + AU1200_RTC_MATCH0_INT,
  458 + AU1200_RTC_MATCH1_INT,
  459 + AU1200_RTC_MATCH2_INT,
  460 + AU1200_GPIO203_INT,
  461 + AU1200_NAND_INT,
  462 + AU1200_GPIO204_INT,
  463 + AU1200_GPIO205_INT,
  464 + AU1200_GPIO206_INT,
  465 + AU1200_GPIO207_INT,
  466 + AU1200_GPIO208_215_INT, /* Logical OR of 208:215 */
  467 + AU1200_USB_INT,
  468 + AU1200_LCD_INT,
  469 + AU1200_MAE_BOTH_INT,
  470 + AU1200_GPIO0_INT,
  471 + AU1200_GPIO1_INT,
  472 + AU1200_GPIO2_INT,
  473 + AU1200_GPIO3_INT,
  474 + AU1200_GPIO4_INT,
  475 + AU1200_GPIO5_INT,
  476 + AU1200_GPIO6_INT,
  477 + AU1200_GPIO7_INT,
  478 + AU1200_GPIO8_INT,
  479 + AU1200_GPIO9_INT,
  480 + AU1200_GPIO10_INT,
  481 + AU1200_GPIO11_INT,
  482 + AU1200_GPIO12_INT,
  483 + AU1200_GPIO13_INT,
  484 + AU1200_GPIO14_INT,
  485 + AU1200_GPIO15_INT,
  486 + AU1200_GPIO16_INT,
  487 + AU1200_GPIO17_INT,
  488 + AU1200_GPIO18_INT,
  489 + AU1200_GPIO19_INT,
  490 + AU1200_GPIO20_INT,
  491 + AU1200_GPIO21_INT,
  492 + AU1200_GPIO22_INT,
  493 + AU1200_GPIO23_INT,
  494 + AU1200_GPIO24_INT,
  495 + AU1200_GPIO25_INT,
  496 + AU1200_GPIO26_INT,
  497 + AU1200_GPIO27_INT,
  498 + AU1200_GPIO28_INT,
  499 + AU1200_GPIO29_INT,
  500 + AU1200_GPIO30_INT,
  501 + AU1200_GPIO31_INT,
  502 +};
  503 +
177 504 #endif /* !defined (_LANGUAGE_ASSEMBLY) */
178 505  
179 506 /*
180 507  
181 508  
... ... @@ -565,71 +892,10 @@
565 892  
566 893 #define IC1_TESTBIT 0xB1800080
567 894  
568   -/* Interrupt Numbers */
  895 +
569 896 /* Au1000 */
570 897 #ifdef CONFIG_SOC_AU1000
571   -enum soc_au1000_ints {
572   - AU1000_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
573   - AU1000_UART0_INT = AU1000_FIRST_INT,
574   - AU1000_UART1_INT, /* au1000 */
575   - AU1000_UART2_INT, /* au1000 */
576   - AU1000_UART3_INT,
577   - AU1000_SSI0_INT, /* au1000 */
578   - AU1000_SSI1_INT, /* au1000 */
579   - AU1000_DMA_INT_BASE,
580 898  
581   - AU1000_TOY_INT = AU1000_FIRST_INT + 14,
582   - AU1000_TOY_MATCH0_INT,
583   - AU1000_TOY_MATCH1_INT,
584   - AU1000_TOY_MATCH2_INT,
585   - AU1000_RTC_INT,
586   - AU1000_RTC_MATCH0_INT,
587   - AU1000_RTC_MATCH1_INT,
588   - AU1000_RTC_MATCH2_INT,
589   - AU1000_IRDA_TX_INT, /* au1000 */
590   - AU1000_IRDA_RX_INT, /* au1000 */
591   - AU1000_USB_DEV_REQ_INT,
592   - AU1000_USB_DEV_SUS_INT,
593   - AU1000_USB_HOST_INT,
594   - AU1000_ACSYNC_INT,
595   - AU1000_MAC0_DMA_INT,
596   - AU1000_MAC1_DMA_INT,
597   - AU1000_I2S_UO_INT, /* au1000 */
598   - AU1000_AC97C_INT,
599   - AU1000_GPIO_0,
600   - AU1000_GPIO_1,
601   - AU1000_GPIO_2,
602   - AU1000_GPIO_3,
603   - AU1000_GPIO_4,
604   - AU1000_GPIO_5,
605   - AU1000_GPIO_6,
606   - AU1000_GPIO_7,
607   - AU1000_GPIO_8,
608   - AU1000_GPIO_9,
609   - AU1000_GPIO_10,
610   - AU1000_GPIO_11,
611   - AU1000_GPIO_12,
612   - AU1000_GPIO_13,
613   - AU1000_GPIO_14,
614   - AU1000_GPIO_15,
615   - AU1000_GPIO_16,
616   - AU1000_GPIO_17,
617   - AU1000_GPIO_18,
618   - AU1000_GPIO_19,
619   - AU1000_GPIO_20,
620   - AU1000_GPIO_21,
621   - AU1000_GPIO_22,
622   - AU1000_GPIO_23,
623   - AU1000_GPIO_24,
624   - AU1000_GPIO_25,
625   - AU1000_GPIO_26,
626   - AU1000_GPIO_27,
627   - AU1000_GPIO_28,
628   - AU1000_GPIO_29,
629   - AU1000_GPIO_30,
630   - AU1000_GPIO_31,
631   -};
632   -
633 899 #define UART0_ADDR 0xB1100000
634 900 #define UART1_ADDR 0xB1200000
635 901 #define UART2_ADDR 0xB1300000
... ... @@ -637,6 +903,7 @@
637 903  
638 904 #define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */
639 905 #define USB_HOST_CONFIG 0xB017FFFC
  906 +#define FOR_PLATFORM_C_USB_HOST_INT AU1000_USB_HOST_INT
640 907  
641 908 #define AU1000_ETH0_BASE 0xB0500000
642 909 #define AU1000_ETH1_BASE 0xB0510000
643 910  
644 911  
... ... @@ -647,78 +914,13 @@
647 914  
648 915 /* Au1500 */
649 916 #ifdef CONFIG_SOC_AU1500
650   -enum soc_au1500_ints {
651   - AU1500_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
652   - AU1500_UART0_INT = AU1500_FIRST_INT,
653   - AU1000_PCI_INTA, /* au1500 */
654   - AU1000_PCI_INTB, /* au1500 */
655   - AU1500_UART3_INT,
656   - AU1000_PCI_INTC, /* au1500 */
657   - AU1000_PCI_INTD, /* au1500 */
658   - AU1000_DMA_INT_BASE,
659 917  
660   - AU1000_TOY_INT = AU1500_FIRST_INT + 14,
661   - AU1000_TOY_MATCH0_INT,
662   - AU1000_TOY_MATCH1_INT,
663   - AU1000_TOY_MATCH2_INT,
664   - AU1000_RTC_INT,
665   - AU1000_RTC_MATCH0_INT,
666   - AU1000_RTC_MATCH1_INT,
667   - AU1000_RTC_MATCH2_INT,
668   - AU1500_PCI_ERR_INT,
669   - AU1500_RESERVED_INT,
670   - AU1000_USB_DEV_REQ_INT,
671   - AU1000_USB_DEV_SUS_INT,
672   - AU1000_USB_HOST_INT,
673   - AU1000_ACSYNC_INT,
674   - AU1500_MAC0_DMA_INT,
675   - AU1500_MAC1_DMA_INT,
676   - AU1000_AC97C_INT = AU1500_FIRST_INT + 31,
677   - AU1000_GPIO_0,
678   - AU1000_GPIO_1,
679   - AU1000_GPIO_2,
680   - AU1000_GPIO_3,
681   - AU1000_GPIO_4,
682   - AU1000_GPIO_5,
683   - AU1000_GPIO_6,
684   - AU1000_GPIO_7,
685   - AU1000_GPIO_8,
686   - AU1000_GPIO_9,
687   - AU1000_GPIO_10,
688   - AU1000_GPIO_11,
689   - AU1000_GPIO_12,
690   - AU1000_GPIO_13,
691   - AU1000_GPIO_14,
692   - AU1000_GPIO_15,
693   - AU1500_GPIO_200,
694   - AU1500_GPIO_201,
695   - AU1500_GPIO_202,
696   - AU1500_GPIO_203,
697   - AU1500_GPIO_20,
698   - AU1500_GPIO_204,
699   - AU1500_GPIO_205,
700   - AU1500_GPIO_23,
701   - AU1500_GPIO_24,
702   - AU1500_GPIO_25,
703   - AU1500_GPIO_26,
704   - AU1500_GPIO_27,
705   - AU1500_GPIO_28,
706   - AU1500_GPIO_206,
707   - AU1500_GPIO_207,
708   - AU1500_GPIO_208_215,
709   -};
710   -
711   -/* shortcuts */
712   -#define INTA AU1000_PCI_INTA
713   -#define INTB AU1000_PCI_INTB
714   -#define INTC AU1000_PCI_INTC
715   -#define INTD AU1000_PCI_INTD
716   -
717 918 #define UART0_ADDR 0xB1100000
718 919 #define UART3_ADDR 0xB1400000
719 920  
720 921 #define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */
721 922 #define USB_HOST_CONFIG 0xB017fffc
  923 +#define FOR_PLATFORM_C_USB_HOST_INT AU1500_USB_HOST_INT
722 924  
723 925 #define AU1500_ETH0_BASE 0xB1500000
724 926 #define AU1500_ETH1_BASE 0xB1510000
725 927  
726 928  
... ... @@ -729,74 +931,14 @@
729 931  
730 932 /* Au1100 */
731 933 #ifdef CONFIG_SOC_AU1100
732   -enum soc_au1100_ints {
733   - AU1100_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
734   - AU1100_UART0_INT = AU1100_FIRST_INT,
735   - AU1100_UART1_INT,
736   - AU1100_SD_INT,
737   - AU1100_UART3_INT,
738   - AU1000_SSI0_INT,
739   - AU1000_SSI1_INT,
740   - AU1000_DMA_INT_BASE,
741 934  
742   - AU1000_TOY_INT = AU1100_FIRST_INT + 14,
743   - AU1000_TOY_MATCH0_INT,
744   - AU1000_TOY_MATCH1_INT,
745   - AU1000_TOY_MATCH2_INT,
746   - AU1000_RTC_INT,
747   - AU1000_RTC_MATCH0_INT,
748   - AU1000_RTC_MATCH1_INT,
749   - AU1000_RTC_MATCH2_INT,
750   - AU1000_IRDA_TX_INT,
751   - AU1000_IRDA_RX_INT,
752   - AU1000_USB_DEV_REQ_INT,
753   - AU1000_USB_DEV_SUS_INT,
754   - AU1000_USB_HOST_INT,
755   - AU1000_ACSYNC_INT,
756   - AU1100_MAC0_DMA_INT,
757   - AU1100_GPIO_208_215,
758   - AU1100_LCD_INT,
759   - AU1000_AC97C_INT,
760   - AU1000_GPIO_0,
761   - AU1000_GPIO_1,
762   - AU1000_GPIO_2,
763   - AU1000_GPIO_3,
764   - AU1000_GPIO_4,
765   - AU1000_GPIO_5,
766   - AU1000_GPIO_6,
767   - AU1000_GPIO_7,
768   - AU1000_GPIO_8,
769   - AU1000_GPIO_9,
770   - AU1000_GPIO_10,
771   - AU1000_GPIO_11,
772   - AU1000_GPIO_12,
773   - AU1000_GPIO_13,
774   - AU1000_GPIO_14,
775   - AU1000_GPIO_15,
776   - AU1000_GPIO_16,
777   - AU1000_GPIO_17,
778   - AU1000_GPIO_18,
779   - AU1000_GPIO_19,
780   - AU1000_GPIO_20,
781   - AU1000_GPIO_21,
782   - AU1000_GPIO_22,
783   - AU1000_GPIO_23,
784   - AU1000_GPIO_24,
785   - AU1000_GPIO_25,
786   - AU1000_GPIO_26,
787   - AU1000_GPIO_27,
788   - AU1000_GPIO_28,
789   - AU1000_GPIO_29,
790   - AU1000_GPIO_30,
791   - AU1000_GPIO_31,
792   -};
793   -
794 935 #define UART0_ADDR 0xB1100000
795 936 #define UART1_ADDR 0xB1200000
796 937 #define UART3_ADDR 0xB1400000
797 938  
798 939 #define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */
799 940 #define USB_HOST_CONFIG 0xB017FFFC
  941 +#define FOR_PLATFORM_C_USB_HOST_INT AU1100_USB_HOST_INT
800 942  
801 943 #define AU1100_ETH0_BASE 0xB0500000
802 944 #define AU1100_MAC0_ENABLE 0xB0520000
... ... @@ -804,80 +946,6 @@
804 946 #endif /* CONFIG_SOC_AU1100 */
805 947  
806 948 #ifdef CONFIG_SOC_AU1550
807   -enum soc_au1550_ints {
808   - AU1550_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
809   - AU1550_UART0_INT = AU1550_FIRST_INT,
810   - AU1550_PCI_INTA,
811   - AU1550_PCI_INTB,
812   - AU1550_DDMA_INT,
813   - AU1550_CRYPTO_INT,
814   - AU1550_PCI_INTC,
815   - AU1550_PCI_INTD,
816   - AU1550_PCI_RST_INT,
817   - AU1550_UART1_INT,
818   - AU1550_UART3_INT,
819   - AU1550_PSC0_INT,
820   - AU1550_PSC1_INT,
821   - AU1550_PSC2_INT,
822   - AU1550_PSC3_INT,
823   - AU1000_TOY_INT,
824   - AU1000_TOY_MATCH0_INT,
825   - AU1000_TOY_MATCH1_INT,
826   - AU1000_TOY_MATCH2_INT,
827   - AU1000_RTC_INT,
828   - AU1000_RTC_MATCH0_INT,
829   - AU1000_RTC_MATCH1_INT,
830   - AU1000_RTC_MATCH2_INT,
831   -
832   - AU1550_NAND_INT = AU1550_FIRST_INT + 23,
833   - AU1550_USB_DEV_REQ_INT,
834   - AU1000_USB_DEV_REQ_INT = AU1550_USB_DEV_REQ_INT,
835   - AU1550_USB_DEV_SUS_INT,
836   - AU1000_USB_DEV_SUS_INT = AU1550_USB_DEV_SUS_INT,
837   - AU1550_USB_HOST_INT,
838   - AU1000_USB_HOST_INT = AU1550_USB_HOST_INT,
839   - AU1550_MAC0_DMA_INT,
840   - AU1550_MAC1_DMA_INT,
841   - AU1000_GPIO_0 = AU1550_FIRST_INT + 32,
842   - AU1000_GPIO_1,
843   - AU1000_GPIO_2,
844   - AU1000_GPIO_3,
845   - AU1000_GPIO_4,
846   - AU1000_GPIO_5,
847   - AU1000_GPIO_6,
848   - AU1000_GPIO_7,
849   - AU1000_GPIO_8,
850   - AU1000_GPIO_9,
851   - AU1000_GPIO_10,
852   - AU1000_GPIO_11,
853   - AU1000_GPIO_12,
854   - AU1000_GPIO_13,
855   - AU1000_GPIO_14,
856   - AU1000_GPIO_15,
857   - AU1550_GPIO_200,
858   - AU1500_GPIO_201_205, /* Logical or of GPIO201:205 */
859   - AU1500_GPIO_16,
860   - AU1500_GPIO_17,
861   - AU1500_GPIO_20,
862   - AU1500_GPIO_21,
863   - AU1500_GPIO_22,
864   - AU1500_GPIO_23,
865   - AU1500_GPIO_24,
866   - AU1500_GPIO_25,
867   - AU1500_GPIO_26,
868   - AU1500_GPIO_27,
869   - AU1500_GPIO_28,
870   - AU1500_GPIO_206,
871   - AU1500_GPIO_207,
872   - AU1500_GPIO_208_218, /* Logical or of GPIO208:218 */
873   -};
874   -
875   -/* shortcuts */
876   -#define INTA AU1550_PCI_INTA
877   -#define INTB AU1550_PCI_INTB
878   -#define INTC AU1550_PCI_INTC
879   -#define INTD AU1550_PCI_INTD
880   -
881 949 #define UART0_ADDR 0xB1100000
882 950 #define UART1_ADDR 0xB1200000
883 951 #define UART3_ADDR 0xB1400000
... ... @@ -885,6 +953,7 @@
885 953 #define USB_OHCI_BASE 0x14020000 /* phys addr for ioremap */
886 954 #define USB_OHCI_LEN 0x00060000
887 955 #define USB_HOST_CONFIG 0xB4027ffc
  956 +#define FOR_PLATFORM_C_USB_HOST_INT AU1550_USB_HOST_INT
888 957  
889 958 #define AU1550_ETH0_BASE 0xB0500000
890 959 #define AU1550_ETH1_BASE 0xB0510000
891 960  
... ... @@ -893,75 +962,8 @@
893 962 #define NUM_ETH_INTERFACES 2
894 963 #endif /* CONFIG_SOC_AU1550 */
895 964  
  965 +
896 966 #ifdef CONFIG_SOC_AU1200
897   -enum soc_au1200_ints {
898   - AU1200_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
899   - AU1200_UART0_INT = AU1200_FIRST_INT,
900   - AU1200_SWT_INT,
901   - AU1200_SD_INT,
902   - AU1200_DDMA_INT,
903   - AU1200_MAE_BE_INT,
904   - AU1200_GPIO_200,
905   - AU1200_GPIO_201,
906   - AU1200_GPIO_202,
907   - AU1200_UART1_INT,
908   - AU1200_MAE_FE_INT,
909   - AU1200_PSC0_INT,
910   - AU1200_PSC1_INT,
911   - AU1200_AES_INT,
912   - AU1200_CAMERA_INT,
913   - AU1000_TOY_INT,
914   - AU1000_TOY_MATCH0_INT,
915   - AU1000_TOY_MATCH1_INT,
916   - AU1000_TOY_MATCH2_INT,
917   - AU1000_RTC_INT,
918   - AU1000_RTC_MATCH0_INT,
919   - AU1000_RTC_MATCH1_INT,
920   - AU1000_RTC_MATCH2_INT,
921   - AU1200_GPIO_203,
922   - AU1200_NAND_INT,
923   - AU1200_GPIO_204,
924   - AU1200_GPIO_205,
925   - AU1200_GPIO_206,
926   - AU1200_GPIO_207,
927   - AU1200_GPIO_208_215, /* Logical OR of 208:215 */
928   - AU1200_USB_INT,
929   - AU1000_USB_HOST_INT = AU1200_USB_INT,
930   - AU1200_LCD_INT,
931   - AU1200_MAE_BOTH_INT,
932   - AU1000_GPIO_0,
933   - AU1000_GPIO_1,
934   - AU1000_GPIO_2,
935   - AU1000_GPIO_3,
936   - AU1000_GPIO_4,
937   - AU1000_GPIO_5,
938   - AU1000_GPIO_6,
939   - AU1000_GPIO_7,
940   - AU1000_GPIO_8,
941   - AU1000_GPIO_9,
942   - AU1000_GPIO_10,
943   - AU1000_GPIO_11,
944   - AU1000_GPIO_12,
945   - AU1000_GPIO_13,
946   - AU1000_GPIO_14,
947   - AU1000_GPIO_15,
948   - AU1000_GPIO_16,
949   - AU1000_GPIO_17,
950   - AU1000_GPIO_18,
951   - AU1000_GPIO_19,
952   - AU1000_GPIO_20,
953   - AU1000_GPIO_21,
954   - AU1000_GPIO_22,
955   - AU1000_GPIO_23,
956   - AU1000_GPIO_24,
957   - AU1000_GPIO_25,
958   - AU1000_GPIO_26,
959   - AU1000_GPIO_27,
960   - AU1000_GPIO_28,
961   - AU1000_GPIO_29,
962   - AU1000_GPIO_30,
963   - AU1000_GPIO_31,
964   -};
965 967  
966 968 #define UART0_ADDR 0xB1100000
967 969 #define UART1_ADDR 0xB1200000
968 970  
... ... @@ -990,15 +992,9 @@
990 992 #define USBMSRMCFG_RDCOMB 30
991 993 #define USBMSRMCFG_PFEN 31
992 994  
993   -#endif /* CONFIG_SOC_AU1200 */
  995 +#define FOR_PLATFORM_C_USB_HOST_INT AU1200_USB_INT
994 996  
995   -#define AU1000_INTC0_INT_BASE (MIPS_CPU_IRQ_BASE + 8)
996   -#define AU1000_INTC0_INT_LAST (AU1000_INTC0_INT_BASE + 31)
997   -#define AU1000_INTC1_INT_BASE (AU1000_INTC0_INT_BASE + 32)
998   -#define AU1000_INTC1_INT_LAST (AU1000_INTC1_INT_BASE + 31)
999   -
1000   -#define AU1000_MAX_INTR AU1000_INTC1_INT_LAST
1001   -#define INTX 0xFF /* not valid */
  997 +#endif /* CONFIG_SOC_AU1200 */
1002 998  
1003 999 /* Programmable Counters 0 and 1 */
1004 1000 #define SYS_BASE 0xB1900000
arch/mips/include/asm/mach-au1x00/gpio-au1000.h
... ... @@ -35,15 +35,13 @@
35 35 return -ENXIO;
36 36 }
37 37  
38   -#ifdef CONFIG_SOC_AU1000
39 38 static inline int au1000_irq_to_gpio(int irq)
40 39 {
41   - if ((irq >= AU1000_GPIO_0) && (irq <= AU1000_GPIO_31))
42   - return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO_0) + 0;
  40 + if ((irq >= AU1000_GPIO0_INT) && (irq <= AU1000_GPIO31_INT))
  41 + return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO0_INT) + 0;
43 42  
44 43 return -ENXIO;
45 44 }
46   -#endif
47 45  
48 46 static inline int au1500_gpio1_to_irq(int gpio)
49 47 {
50 48  
51 49  
... ... @@ -71,27 +69,25 @@
71 69 return -ENXIO;
72 70 }
73 71  
74   -#ifdef CONFIG_SOC_AU1500
75 72 static inline int au1500_irq_to_gpio(int irq)
76 73 {
77 74 switch (irq) {
78   - case AU1000_GPIO_0 ... AU1000_GPIO_15:
79   - case AU1500_GPIO_20:
80   - case AU1500_GPIO_23 ... AU1500_GPIO_28:
81   - return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO_0) + 0;
82   - case AU1500_GPIO_200 ... AU1500_GPIO_203:
83   - return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO_200) + 0;
84   - case AU1500_GPIO_204 ... AU1500_GPIO_205:
85   - return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO_204) + 4;
86   - case AU1500_GPIO_206 ... AU1500_GPIO_207:
87   - return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO_206) + 6;
88   - case AU1500_GPIO_208_215:
  75 + case AU1500_GPIO0_INT ... AU1500_GPIO15_INT:
  76 + case AU1500_GPIO20_INT:
  77 + case AU1500_GPIO23_INT ... AU1500_GPIO28_INT:
  78 + return ALCHEMY_GPIO1_BASE + (irq - AU1500_GPIO0_INT) + 0;
  79 + case AU1500_GPIO200_INT ... AU1500_GPIO203_INT:
  80 + return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO200_INT) + 0;
  81 + case AU1500_GPIO204_INT ... AU1500_GPIO205_INT:
  82 + return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO204_INT) + 4;
  83 + case AU1500_GPIO206_INT ... AU1500_GPIO207_INT:
  84 + return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO206_INT) + 6;
  85 + case AU1500_GPIO208_215_INT:
89 86 return ALCHEMY_GPIO2_BASE + 8;
90 87 }
91 88  
92 89 return -ENXIO;
93 90 }
94   -#endif
95 91  
96 92 static inline int au1100_gpio1_to_irq(int gpio)
97 93 {
98 94  
99 95  
... ... @@ -108,19 +104,17 @@
108 104 return -ENXIO;
109 105 }
110 106  
111   -#ifdef CONFIG_SOC_AU1100
112 107 static inline int au1100_irq_to_gpio(int irq)
113 108 {
114 109 switch (irq) {
115   - case AU1000_GPIO_0 ... AU1000_GPIO_31:
116   - return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO_0) + 0;
117   - case AU1100_GPIO_208_215:
  110 + case AU1100_GPIO0_INT ... AU1100_GPIO31_INT:
  111 + return ALCHEMY_GPIO1_BASE + (irq - AU1100_GPIO0_INT) + 0;
  112 + case AU1100_GPIO208_215_INT:
118 113 return ALCHEMY_GPIO2_BASE + 8;
119 114 }
120 115  
121 116 return -ENXIO;
122 117 }
123   -#endif
124 118  
125 119 static inline int au1550_gpio1_to_irq(int gpio)
126 120 {
127 121  
128 122  
... ... @@ -149,24 +143,22 @@
149 143 return -ENXIO;
150 144 }
151 145  
152   -#ifdef CONFIG_SOC_AU1550
153 146 static inline int au1550_irq_to_gpio(int irq)
154 147 {
155 148 switch (irq) {
156   - case AU1000_GPIO_0 ... AU1000_GPIO_15:
157   - return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO_0) + 0;
158   - case AU1550_GPIO_200:
159   - case AU1500_GPIO_201_205:
160   - return ALCHEMY_GPIO2_BASE + (irq - AU1550_GPIO_200) + 0;
161   - case AU1500_GPIO_16 ... AU1500_GPIO_28:
162   - return ALCHEMY_GPIO1_BASE + (irq - AU1500_GPIO_16) + 16;
163   - case AU1500_GPIO_206 ... AU1500_GPIO_208_218:
164   - return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO_206) + 6;
  149 + case AU1550_GPIO0_INT ... AU1550_GPIO15_INT:
  150 + return ALCHEMY_GPIO1_BASE + (irq - AU1550_GPIO0_INT) + 0;
  151 + case AU1550_GPIO200_INT:
  152 + case AU1550_GPIO201_205_INT:
  153 + return ALCHEMY_GPIO2_BASE + (irq - AU1550_GPIO200_INT) + 0;
  154 + case AU1550_GPIO16_INT ... AU1550_GPIO28_INT:
  155 + return ALCHEMY_GPIO1_BASE + (irq - AU1550_GPIO16_INT) + 16;
  156 + case AU1550_GPIO206_INT ... AU1550_GPIO208_215_INT:
  157 + return ALCHEMY_GPIO2_BASE + (irq - AU1550_GPIO206_INT) + 6;
165 158 }
166 159  
167 160 return -ENXIO;
168 161 }
169   -#endif
170 162  
171 163 static inline int au1200_gpio1_to_irq(int gpio)
172 164 {
173 165  
174 166  
175 167  
... ... @@ -187,23 +179,21 @@
187 179 return -ENXIO;
188 180 }
189 181  
190   -#ifdef CONFIG_SOC_AU1200
191 182 static inline int au1200_irq_to_gpio(int irq)
192 183 {
193 184 switch (irq) {
194   - case AU1000_GPIO_0 ... AU1000_GPIO_31:
195   - return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO_0) + 0;
196   - case AU1200_GPIO_200 ... AU1200_GPIO_202:
197   - return ALCHEMY_GPIO2_BASE + (irq - AU1200_GPIO_200) + 0;
198   - case AU1200_GPIO_203:
  185 + case AU1200_GPIO0_INT ... AU1200_GPIO31_INT:
  186 + return ALCHEMY_GPIO1_BASE + (irq - AU1200_GPIO0_INT) + 0;
  187 + case AU1200_GPIO200_INT ... AU1200_GPIO202_INT:
  188 + return ALCHEMY_GPIO2_BASE + (irq - AU1200_GPIO200_INT) + 0;
  189 + case AU1200_GPIO203_INT:
199 190 return ALCHEMY_GPIO2_BASE + 3;
200   - case AU1200_GPIO_204 ... AU1200_GPIO_208_215:
201   - return ALCHEMY_GPIO2_BASE + (irq - AU1200_GPIO_204) + 4;
  191 + case AU1200_GPIO204_INT ... AU1200_GPIO208_215_INT:
  192 + return ALCHEMY_GPIO2_BASE + (irq - AU1200_GPIO204_INT) + 4;
202 193 }
203 194  
204 195 return -ENXIO;
205 196 }
206   -#endif
207 197  
208 198 /*
209 199 * GPIO1 block macros for common linux gpio functions.