diff options
Diffstat (limited to 'arch/mips/include/asm/mach-au1x00/au1000.h')
-rw-r--r-- | arch/mips/include/asm/mach-au1x00/au1000.h | 913 |
1 files changed, 417 insertions, 496 deletions
diff --git a/arch/mips/include/asm/mach-au1x00/au1000.h b/arch/mips/include/asm/mach-au1x00/au1000.h index 854e95f1b07c..a6976619160a 100644 --- a/arch/mips/include/asm/mach-au1x00/au1000.h +++ b/arch/mips/include/asm/mach-au1x00/au1000.h | |||
@@ -130,6 +130,56 @@ static inline int au1xxx_cpu_needs_config_od(void) | |||
130 | return 0; | 130 | return 0; |
131 | } | 131 | } |
132 | 132 | ||
133 | #define ALCHEMY_CPU_UNKNOWN -1 | ||
134 | #define ALCHEMY_CPU_AU1000 0 | ||
135 | #define ALCHEMY_CPU_AU1500 1 | ||
136 | #define ALCHEMY_CPU_AU1100 2 | ||
137 | #define ALCHEMY_CPU_AU1550 3 | ||
138 | #define ALCHEMY_CPU_AU1200 4 | ||
139 | |||
140 | static inline int alchemy_get_cputype(void) | ||
141 | { | ||
142 | switch (read_c0_prid() & 0xffff0000) { | ||
143 | case 0x00030000: | ||
144 | return ALCHEMY_CPU_AU1000; | ||
145 | break; | ||
146 | case 0x01030000: | ||
147 | return ALCHEMY_CPU_AU1500; | ||
148 | break; | ||
149 | case 0x02030000: | ||
150 | return ALCHEMY_CPU_AU1100; | ||
151 | break; | ||
152 | case 0x03030000: | ||
153 | return ALCHEMY_CPU_AU1550; | ||
154 | break; | ||
155 | case 0x04030000: | ||
156 | case 0x05030000: | ||
157 | return ALCHEMY_CPU_AU1200; | ||
158 | break; | ||
159 | } | ||
160 | |||
161 | return ALCHEMY_CPU_UNKNOWN; | ||
162 | } | ||
163 | |||
164 | static inline void alchemy_uart_putchar(u32 uart_phys, u8 c) | ||
165 | { | ||
166 | void __iomem *base = (void __iomem *)KSEG1ADDR(uart_phys); | ||
167 | int timeout, i; | ||
168 | |||
169 | /* check LSR TX_EMPTY bit */ | ||
170 | timeout = 0xffffff; | ||
171 | do { | ||
172 | if (__raw_readl(base + 0x1c) & 0x20) | ||
173 | break; | ||
174 | /* slow down */ | ||
175 | for (i = 10000; i; i--) | ||
176 | asm volatile ("nop"); | ||
177 | } while (--timeout); | ||
178 | |||
179 | __raw_writel(c, base + 0x04); /* tx */ | ||
180 | wmb(); | ||
181 | } | ||
182 | |||
133 | /* arch/mips/au1000/common/clocks.c */ | 183 | /* arch/mips/au1000/common/clocks.c */ |
134 | extern void set_au1x00_speed(unsigned int new_freq); | 184 | extern void set_au1x00_speed(unsigned int new_freq); |
135 | extern unsigned int get_au1x00_speed(void); | 185 | extern unsigned int get_au1x00_speed(void); |
@@ -138,25 +188,336 @@ extern unsigned long get_au1x00_uart_baud_base(void); | |||
138 | extern unsigned long au1xxx_calc_clock(void); | 188 | extern unsigned long au1xxx_calc_clock(void); |
139 | 189 | ||
140 | /* PM: arch/mips/alchemy/common/sleeper.S, power.c, irq.c */ | 190 | /* PM: arch/mips/alchemy/common/sleeper.S, power.c, irq.c */ |
141 | void au1xxx_save_and_sleep(void); | 191 | void alchemy_sleep_au1000(void); |
192 | void alchemy_sleep_au1550(void); | ||
142 | void au_sleep(void); | 193 | void au_sleep(void); |
143 | void save_au1xxx_intctl(void); | ||
144 | void restore_au1xxx_intctl(void); | ||
145 | 194 | ||
146 | /* | 195 | |
147 | * Every board describes its IRQ mapping with this table. | 196 | /* SOC Interrupt numbers */ |
148 | */ | 197 | |
149 | struct au1xxx_irqmap { | 198 | #define AU1000_INTC0_INT_BASE (MIPS_CPU_IRQ_BASE + 8) |
150 | int im_irq; | 199 | #define AU1000_INTC0_INT_LAST (AU1000_INTC0_INT_BASE + 31) |
151 | int im_type; | 200 | #define AU1000_INTC1_INT_BASE (AU1000_INTC0_INT_LAST + 1) |
152 | int im_request; | 201 | #define AU1000_INTC1_INT_LAST (AU1000_INTC1_INT_BASE + 31) |
202 | #define AU1000_MAX_INTR AU1000_INTC1_INT_LAST | ||
203 | |||
204 | enum soc_au1000_ints { | ||
205 | AU1000_FIRST_INT = AU1000_INTC0_INT_BASE, | ||
206 | AU1000_UART0_INT = AU1000_FIRST_INT, | ||
207 | AU1000_UART1_INT, | ||
208 | AU1000_UART2_INT, | ||
209 | AU1000_UART3_INT, | ||
210 | AU1000_SSI0_INT, | ||
211 | AU1000_SSI1_INT, | ||
212 | AU1000_DMA_INT_BASE, | ||
213 | |||
214 | AU1000_TOY_INT = AU1000_FIRST_INT + 14, | ||
215 | AU1000_TOY_MATCH0_INT, | ||
216 | AU1000_TOY_MATCH1_INT, | ||
217 | AU1000_TOY_MATCH2_INT, | ||
218 | AU1000_RTC_INT, | ||
219 | AU1000_RTC_MATCH0_INT, | ||
220 | AU1000_RTC_MATCH1_INT, | ||
221 | AU1000_RTC_MATCH2_INT, | ||
222 | AU1000_IRDA_TX_INT, | ||
223 | AU1000_IRDA_RX_INT, | ||
224 | AU1000_USB_DEV_REQ_INT, | ||
225 | AU1000_USB_DEV_SUS_INT, | ||
226 | AU1000_USB_HOST_INT, | ||
227 | AU1000_ACSYNC_INT, | ||
228 | AU1000_MAC0_DMA_INT, | ||
229 | AU1000_MAC1_DMA_INT, | ||
230 | AU1000_I2S_UO_INT, | ||
231 | AU1000_AC97C_INT, | ||
232 | AU1000_GPIO0_INT, | ||
233 | AU1000_GPIO1_INT, | ||
234 | AU1000_GPIO2_INT, | ||
235 | AU1000_GPIO3_INT, | ||
236 | AU1000_GPIO4_INT, | ||
237 | AU1000_GPIO5_INT, | ||
238 | AU1000_GPIO6_INT, | ||
239 | AU1000_GPIO7_INT, | ||
240 | AU1000_GPIO8_INT, | ||
241 | AU1000_GPIO9_INT, | ||
242 | AU1000_GPIO10_INT, | ||
243 | AU1000_GPIO11_INT, | ||
244 | AU1000_GPIO12_INT, | ||
245 | AU1000_GPIO13_INT, | ||
246 | AU1000_GPIO14_INT, | ||
247 | AU1000_GPIO15_INT, | ||
248 | AU1000_GPIO16_INT, | ||
249 | AU1000_GPIO17_INT, | ||
250 | AU1000_GPIO18_INT, | ||
251 | AU1000_GPIO19_INT, | ||
252 | AU1000_GPIO20_INT, | ||
253 | AU1000_GPIO21_INT, | ||
254 | AU1000_GPIO22_INT, | ||
255 | AU1000_GPIO23_INT, | ||
256 | AU1000_GPIO24_INT, | ||
257 | AU1000_GPIO25_INT, | ||
258 | AU1000_GPIO26_INT, | ||
259 | AU1000_GPIO27_INT, | ||
260 | AU1000_GPIO28_INT, | ||
261 | AU1000_GPIO29_INT, | ||
262 | AU1000_GPIO30_INT, | ||
263 | AU1000_GPIO31_INT, | ||
264 | }; | ||
265 | |||
266 | enum soc_au1100_ints { | ||
267 | AU1100_FIRST_INT = AU1000_INTC0_INT_BASE, | ||
268 | AU1100_UART0_INT = AU1100_FIRST_INT, | ||
269 | AU1100_UART1_INT, | ||
270 | AU1100_SD_INT, | ||
271 | AU1100_UART3_INT, | ||
272 | AU1100_SSI0_INT, | ||
273 | AU1100_SSI1_INT, | ||
274 | AU1100_DMA_INT_BASE, | ||
275 | |||
276 | AU1100_TOY_INT = AU1100_FIRST_INT + 14, | ||
277 | AU1100_TOY_MATCH0_INT, | ||
278 | AU1100_TOY_MATCH1_INT, | ||
279 | AU1100_TOY_MATCH2_INT, | ||
280 | AU1100_RTC_INT, | ||
281 | AU1100_RTC_MATCH0_INT, | ||
282 | AU1100_RTC_MATCH1_INT, | ||
283 | AU1100_RTC_MATCH2_INT, | ||
284 | AU1100_IRDA_TX_INT, | ||
285 | AU1100_IRDA_RX_INT, | ||
286 | AU1100_USB_DEV_REQ_INT, | ||
287 | AU1100_USB_DEV_SUS_INT, | ||
288 | AU1100_USB_HOST_INT, | ||
289 | AU1100_ACSYNC_INT, | ||
290 | AU1100_MAC0_DMA_INT, | ||
291 | AU1100_GPIO208_215_INT, | ||
292 | AU1100_LCD_INT, | ||
293 | AU1100_AC97C_INT, | ||
294 | AU1100_GPIO0_INT, | ||
295 | AU1100_GPIO1_INT, | ||
296 | AU1100_GPIO2_INT, | ||
297 | AU1100_GPIO3_INT, | ||
298 | AU1100_GPIO4_INT, | ||
299 | AU1100_GPIO5_INT, | ||
300 | AU1100_GPIO6_INT, | ||
301 | AU1100_GPIO7_INT, | ||
302 | AU1100_GPIO8_INT, | ||
303 | AU1100_GPIO9_INT, | ||
304 | AU1100_GPIO10_INT, | ||
305 | AU1100_GPIO11_INT, | ||
306 | AU1100_GPIO12_INT, | ||
307 | AU1100_GPIO13_INT, | ||
308 | AU1100_GPIO14_INT, | ||
309 | AU1100_GPIO15_INT, | ||
310 | AU1100_GPIO16_INT, | ||
311 | AU1100_GPIO17_INT, | ||
312 | AU1100_GPIO18_INT, | ||
313 | AU1100_GPIO19_INT, | ||
314 | AU1100_GPIO20_INT, | ||
315 | AU1100_GPIO21_INT, | ||
316 | AU1100_GPIO22_INT, | ||
317 | AU1100_GPIO23_INT, | ||
318 | AU1100_GPIO24_INT, | ||
319 | AU1100_GPIO25_INT, | ||
320 | AU1100_GPIO26_INT, | ||
321 | AU1100_GPIO27_INT, | ||
322 | AU1100_GPIO28_INT, | ||
323 | AU1100_GPIO29_INT, | ||
324 | AU1100_GPIO30_INT, | ||
325 | AU1100_GPIO31_INT, | ||
326 | }; | ||
327 | |||
328 | enum soc_au1500_ints { | ||
329 | AU1500_FIRST_INT = AU1000_INTC0_INT_BASE, | ||
330 | AU1500_UART0_INT = AU1500_FIRST_INT, | ||
331 | AU1500_PCI_INTA, | ||
332 | AU1500_PCI_INTB, | ||
333 | AU1500_UART3_INT, | ||
334 | AU1500_PCI_INTC, | ||
335 | AU1500_PCI_INTD, | ||
336 | AU1500_DMA_INT_BASE, | ||
337 | |||
338 | AU1500_TOY_INT = AU1500_FIRST_INT + 14, | ||
339 | AU1500_TOY_MATCH0_INT, | ||
340 | AU1500_TOY_MATCH1_INT, | ||
341 | AU1500_TOY_MATCH2_INT, | ||
342 | AU1500_RTC_INT, | ||
343 | AU1500_RTC_MATCH0_INT, | ||
344 | AU1500_RTC_MATCH1_INT, | ||
345 | AU1500_RTC_MATCH2_INT, | ||
346 | AU1500_PCI_ERR_INT, | ||
347 | AU1500_RESERVED_INT, | ||
348 | AU1500_USB_DEV_REQ_INT, | ||
349 | AU1500_USB_DEV_SUS_INT, | ||
350 | AU1500_USB_HOST_INT, | ||
351 | AU1500_ACSYNC_INT, | ||
352 | AU1500_MAC0_DMA_INT, | ||
353 | AU1500_MAC1_DMA_INT, | ||
354 | AU1500_AC97C_INT = AU1500_FIRST_INT + 31, | ||
355 | AU1500_GPIO0_INT, | ||
356 | AU1500_GPIO1_INT, | ||
357 | AU1500_GPIO2_INT, | ||
358 | AU1500_GPIO3_INT, | ||
359 | AU1500_GPIO4_INT, | ||
360 | AU1500_GPIO5_INT, | ||
361 | AU1500_GPIO6_INT, | ||
362 | AU1500_GPIO7_INT, | ||
363 | AU1500_GPIO8_INT, | ||
364 | AU1500_GPIO9_INT, | ||
365 | AU1500_GPIO10_INT, | ||
366 | AU1500_GPIO11_INT, | ||
367 | AU1500_GPIO12_INT, | ||
368 | AU1500_GPIO13_INT, | ||
369 | AU1500_GPIO14_INT, | ||
370 | AU1500_GPIO15_INT, | ||
371 | AU1500_GPIO200_INT, | ||
372 | AU1500_GPIO201_INT, | ||
373 | AU1500_GPIO202_INT, | ||
374 | AU1500_GPIO203_INT, | ||
375 | AU1500_GPIO20_INT, | ||
376 | AU1500_GPIO204_INT, | ||
377 | AU1500_GPIO205_INT, | ||
378 | AU1500_GPIO23_INT, | ||
379 | AU1500_GPIO24_INT, | ||
380 | AU1500_GPIO25_INT, | ||
381 | AU1500_GPIO26_INT, | ||
382 | AU1500_GPIO27_INT, | ||
383 | AU1500_GPIO28_INT, | ||
384 | AU1500_GPIO206_INT, | ||
385 | AU1500_GPIO207_INT, | ||
386 | AU1500_GPIO208_215_INT, | ||
153 | }; | 387 | }; |
154 | 388 | ||
155 | /* core calls this function to let boards initialize other IRQ sources */ | 389 | enum soc_au1550_ints { |
156 | void board_init_irq(void); | 390 | AU1550_FIRST_INT = AU1000_INTC0_INT_BASE, |
391 | AU1550_UART0_INT = AU1550_FIRST_INT, | ||
392 | AU1550_PCI_INTA, | ||
393 | AU1550_PCI_INTB, | ||
394 | AU1550_DDMA_INT, | ||
395 | AU1550_CRYPTO_INT, | ||
396 | AU1550_PCI_INTC, | ||
397 | AU1550_PCI_INTD, | ||
398 | AU1550_PCI_RST_INT, | ||
399 | AU1550_UART1_INT, | ||
400 | AU1550_UART3_INT, | ||
401 | AU1550_PSC0_INT, | ||
402 | AU1550_PSC1_INT, | ||
403 | AU1550_PSC2_INT, | ||
404 | AU1550_PSC3_INT, | ||
405 | AU1550_TOY_INT, | ||
406 | AU1550_TOY_MATCH0_INT, | ||
407 | AU1550_TOY_MATCH1_INT, | ||
408 | AU1550_TOY_MATCH2_INT, | ||
409 | AU1550_RTC_INT, | ||
410 | AU1550_RTC_MATCH0_INT, | ||
411 | AU1550_RTC_MATCH1_INT, | ||
412 | AU1550_RTC_MATCH2_INT, | ||
413 | |||
414 | AU1550_NAND_INT = AU1550_FIRST_INT + 23, | ||
415 | AU1550_USB_DEV_REQ_INT, | ||
416 | AU1550_USB_DEV_SUS_INT, | ||
417 | AU1550_USB_HOST_INT, | ||
418 | AU1550_MAC0_DMA_INT, | ||
419 | AU1550_MAC1_DMA_INT, | ||
420 | AU1550_GPIO0_INT = AU1550_FIRST_INT + 32, | ||
421 | AU1550_GPIO1_INT, | ||
422 | AU1550_GPIO2_INT, | ||
423 | AU1550_GPIO3_INT, | ||
424 | AU1550_GPIO4_INT, | ||
425 | AU1550_GPIO5_INT, | ||
426 | AU1550_GPIO6_INT, | ||
427 | AU1550_GPIO7_INT, | ||
428 | AU1550_GPIO8_INT, | ||
429 | AU1550_GPIO9_INT, | ||
430 | AU1550_GPIO10_INT, | ||
431 | AU1550_GPIO11_INT, | ||
432 | AU1550_GPIO12_INT, | ||
433 | AU1550_GPIO13_INT, | ||
434 | AU1550_GPIO14_INT, | ||
435 | AU1550_GPIO15_INT, | ||
436 | AU1550_GPIO200_INT, | ||
437 | AU1550_GPIO201_205_INT, /* Logical or of GPIO201:205 */ | ||
438 | AU1550_GPIO16_INT, | ||
439 | AU1550_GPIO17_INT, | ||
440 | AU1550_GPIO20_INT, | ||
441 | AU1550_GPIO21_INT, | ||
442 | AU1550_GPIO22_INT, | ||
443 | AU1550_GPIO23_INT, | ||
444 | AU1550_GPIO24_INT, | ||
445 | AU1550_GPIO25_INT, | ||
446 | AU1550_GPIO26_INT, | ||
447 | AU1550_GPIO27_INT, | ||
448 | AU1550_GPIO28_INT, | ||
449 | AU1550_GPIO206_INT, | ||
450 | AU1550_GPIO207_INT, | ||
451 | AU1550_GPIO208_215_INT, /* Logical or of GPIO208:215 */ | ||
452 | }; | ||
157 | 453 | ||
158 | /* boards call this to register additional (GPIO) interrupts */ | 454 | enum soc_au1200_ints { |
159 | void au1xxx_setup_irqmap(struct au1xxx_irqmap *map, int count); | 455 | AU1200_FIRST_INT = AU1000_INTC0_INT_BASE, |
456 | AU1200_UART0_INT = AU1200_FIRST_INT, | ||
457 | AU1200_SWT_INT, | ||
458 | AU1200_SD_INT, | ||
459 | AU1200_DDMA_INT, | ||
460 | AU1200_MAE_BE_INT, | ||
461 | AU1200_GPIO200_INT, | ||
462 | AU1200_GPIO201_INT, | ||
463 | AU1200_GPIO202_INT, | ||
464 | AU1200_UART1_INT, | ||
465 | AU1200_MAE_FE_INT, | ||
466 | AU1200_PSC0_INT, | ||
467 | AU1200_PSC1_INT, | ||
468 | AU1200_AES_INT, | ||
469 | AU1200_CAMERA_INT, | ||
470 | AU1200_TOY_INT, | ||
471 | AU1200_TOY_MATCH0_INT, | ||
472 | AU1200_TOY_MATCH1_INT, | ||
473 | AU1200_TOY_MATCH2_INT, | ||
474 | AU1200_RTC_INT, | ||
475 | AU1200_RTC_MATCH0_INT, | ||
476 | AU1200_RTC_MATCH1_INT, | ||
477 | AU1200_RTC_MATCH2_INT, | ||
478 | AU1200_GPIO203_INT, | ||
479 | AU1200_NAND_INT, | ||
480 | AU1200_GPIO204_INT, | ||
481 | AU1200_GPIO205_INT, | ||
482 | AU1200_GPIO206_INT, | ||
483 | AU1200_GPIO207_INT, | ||
484 | AU1200_GPIO208_215_INT, /* Logical OR of 208:215 */ | ||
485 | AU1200_USB_INT, | ||
486 | AU1200_LCD_INT, | ||
487 | AU1200_MAE_BOTH_INT, | ||
488 | AU1200_GPIO0_INT, | ||
489 | AU1200_GPIO1_INT, | ||
490 | AU1200_GPIO2_INT, | ||
491 | AU1200_GPIO3_INT, | ||
492 | AU1200_GPIO4_INT, | ||
493 | AU1200_GPIO5_INT, | ||
494 | AU1200_GPIO6_INT, | ||
495 | AU1200_GPIO7_INT, | ||
496 | AU1200_GPIO8_INT, | ||
497 | AU1200_GPIO9_INT, | ||
498 | AU1200_GPIO10_INT, | ||
499 | AU1200_GPIO11_INT, | ||
500 | AU1200_GPIO12_INT, | ||
501 | AU1200_GPIO13_INT, | ||
502 | AU1200_GPIO14_INT, | ||
503 | AU1200_GPIO15_INT, | ||
504 | AU1200_GPIO16_INT, | ||
505 | AU1200_GPIO17_INT, | ||
506 | AU1200_GPIO18_INT, | ||
507 | AU1200_GPIO19_INT, | ||
508 | AU1200_GPIO20_INT, | ||
509 | AU1200_GPIO21_INT, | ||
510 | AU1200_GPIO22_INT, | ||
511 | AU1200_GPIO23_INT, | ||
512 | AU1200_GPIO24_INT, | ||
513 | AU1200_GPIO25_INT, | ||
514 | AU1200_GPIO26_INT, | ||
515 | AU1200_GPIO27_INT, | ||
516 | AU1200_GPIO28_INT, | ||
517 | AU1200_GPIO29_INT, | ||
518 | AU1200_GPIO30_INT, | ||
519 | AU1200_GPIO31_INT, | ||
520 | }; | ||
160 | 521 | ||
161 | #endif /* !defined (_LANGUAGE_ASSEMBLY) */ | 522 | #endif /* !defined (_LANGUAGE_ASSEMBLY) */ |
162 | 523 | ||
@@ -473,6 +834,38 @@ void au1xxx_setup_irqmap(struct au1xxx_irqmap *map, int count); | |||
473 | #define MEM_STNAND_DATA 0x20 | 834 | #define MEM_STNAND_DATA 0x20 |
474 | #endif | 835 | #endif |
475 | 836 | ||
837 | |||
838 | /* Interrupt Controller register offsets */ | ||
839 | #define IC_CFG0RD 0x40 | ||
840 | #define IC_CFG0SET 0x40 | ||
841 | #define IC_CFG0CLR 0x44 | ||
842 | #define IC_CFG1RD 0x48 | ||
843 | #define IC_CFG1SET 0x48 | ||
844 | #define IC_CFG1CLR 0x4C | ||
845 | #define IC_CFG2RD 0x50 | ||
846 | #define IC_CFG2SET 0x50 | ||
847 | #define IC_CFG2CLR 0x54 | ||
848 | #define IC_REQ0INT 0x54 | ||
849 | #define IC_SRCRD 0x58 | ||
850 | #define IC_SRCSET 0x58 | ||
851 | #define IC_SRCCLR 0x5C | ||
852 | #define IC_REQ1INT 0x5C | ||
853 | #define IC_ASSIGNRD 0x60 | ||
854 | #define IC_ASSIGNSET 0x60 | ||
855 | #define IC_ASSIGNCLR 0x64 | ||
856 | #define IC_WAKERD 0x68 | ||
857 | #define IC_WAKESET 0x68 | ||
858 | #define IC_WAKECLR 0x6C | ||
859 | #define IC_MASKRD 0x70 | ||
860 | #define IC_MASKSET 0x70 | ||
861 | #define IC_MASKCLR 0x74 | ||
862 | #define IC_RISINGRD 0x78 | ||
863 | #define IC_RISINGCLR 0x78 | ||
864 | #define IC_FALLINGRD 0x7C | ||
865 | #define IC_FALLINGCLR 0x7C | ||
866 | #define IC_TESTBIT 0x80 | ||
867 | |||
868 | |||
476 | /* Interrupt Controller 0 */ | 869 | /* Interrupt Controller 0 */ |
477 | #define IC0_CFG0RD 0xB0400040 | 870 | #define IC0_CFG0RD 0xB0400040 |
478 | #define IC0_CFG0SET 0xB0400040 | 871 | #define IC0_CFG0SET 0xB0400040 |
@@ -549,78 +942,16 @@ void au1xxx_setup_irqmap(struct au1xxx_irqmap *map, int count); | |||
549 | 942 | ||
550 | #define IC1_TESTBIT 0xB1800080 | 943 | #define IC1_TESTBIT 0xB1800080 |
551 | 944 | ||
552 | /* Interrupt Numbers */ | 945 | |
553 | /* Au1000 */ | 946 | /* Au1000 */ |
554 | #ifdef CONFIG_SOC_AU1000 | 947 | #ifdef CONFIG_SOC_AU1000 |
555 | enum soc_au1000_ints { | ||
556 | AU1000_FIRST_INT = MIPS_CPU_IRQ_BASE + 8, | ||
557 | AU1000_UART0_INT = AU1000_FIRST_INT, | ||
558 | AU1000_UART1_INT, /* au1000 */ | ||
559 | AU1000_UART2_INT, /* au1000 */ | ||
560 | AU1000_UART3_INT, | ||
561 | AU1000_SSI0_INT, /* au1000 */ | ||
562 | AU1000_SSI1_INT, /* au1000 */ | ||
563 | AU1000_DMA_INT_BASE, | ||
564 | |||
565 | AU1000_TOY_INT = AU1000_FIRST_INT + 14, | ||
566 | AU1000_TOY_MATCH0_INT, | ||
567 | AU1000_TOY_MATCH1_INT, | ||
568 | AU1000_TOY_MATCH2_INT, | ||
569 | AU1000_RTC_INT, | ||
570 | AU1000_RTC_MATCH0_INT, | ||
571 | AU1000_RTC_MATCH1_INT, | ||
572 | AU1000_RTC_MATCH2_INT, | ||
573 | AU1000_IRDA_TX_INT, /* au1000 */ | ||
574 | AU1000_IRDA_RX_INT, /* au1000 */ | ||
575 | AU1000_USB_DEV_REQ_INT, | ||
576 | AU1000_USB_DEV_SUS_INT, | ||
577 | AU1000_USB_HOST_INT, | ||
578 | AU1000_ACSYNC_INT, | ||
579 | AU1000_MAC0_DMA_INT, | ||
580 | AU1000_MAC1_DMA_INT, | ||
581 | AU1000_I2S_UO_INT, /* au1000 */ | ||
582 | AU1000_AC97C_INT, | ||
583 | AU1000_GPIO_0, | ||
584 | AU1000_GPIO_1, | ||
585 | AU1000_GPIO_2, | ||
586 | AU1000_GPIO_3, | ||
587 | AU1000_GPIO_4, | ||
588 | AU1000_GPIO_5, | ||
589 | AU1000_GPIO_6, | ||
590 | AU1000_GPIO_7, | ||
591 | AU1000_GPIO_8, | ||
592 | AU1000_GPIO_9, | ||
593 | AU1000_GPIO_10, | ||
594 | AU1000_GPIO_11, | ||
595 | AU1000_GPIO_12, | ||
596 | AU1000_GPIO_13, | ||
597 | AU1000_GPIO_14, | ||
598 | AU1000_GPIO_15, | ||
599 | AU1000_GPIO_16, | ||
600 | AU1000_GPIO_17, | ||
601 | AU1000_GPIO_18, | ||
602 | AU1000_GPIO_19, | ||
603 | AU1000_GPIO_20, | ||
604 | AU1000_GPIO_21, | ||
605 | AU1000_GPIO_22, | ||
606 | AU1000_GPIO_23, | ||
607 | AU1000_GPIO_24, | ||
608 | AU1000_GPIO_25, | ||
609 | AU1000_GPIO_26, | ||
610 | AU1000_GPIO_27, | ||
611 | AU1000_GPIO_28, | ||
612 | AU1000_GPIO_29, | ||
613 | AU1000_GPIO_30, | ||
614 | AU1000_GPIO_31, | ||
615 | }; | ||
616 | 948 | ||
617 | #define UART0_ADDR 0xB1100000 | 949 | #define UART0_ADDR 0xB1100000 |
618 | #define UART1_ADDR 0xB1200000 | ||
619 | #define UART2_ADDR 0xB1300000 | ||
620 | #define UART3_ADDR 0xB1400000 | 950 | #define UART3_ADDR 0xB1400000 |
621 | 951 | ||
622 | #define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */ | 952 | #define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */ |
623 | #define USB_HOST_CONFIG 0xB017FFFC | 953 | #define USB_HOST_CONFIG 0xB017FFFC |
954 | #define FOR_PLATFORM_C_USB_HOST_INT AU1000_USB_HOST_INT | ||
624 | 955 | ||
625 | #define AU1000_ETH0_BASE 0xB0500000 | 956 | #define AU1000_ETH0_BASE 0xB0500000 |
626 | #define AU1000_ETH1_BASE 0xB0510000 | 957 | #define AU1000_ETH1_BASE 0xB0510000 |
@@ -631,78 +962,13 @@ enum soc_au1000_ints { | |||
631 | 962 | ||
632 | /* Au1500 */ | 963 | /* Au1500 */ |
633 | #ifdef CONFIG_SOC_AU1500 | 964 | #ifdef CONFIG_SOC_AU1500 |
634 | enum soc_au1500_ints { | ||
635 | AU1500_FIRST_INT = MIPS_CPU_IRQ_BASE + 8, | ||
636 | AU1500_UART0_INT = AU1500_FIRST_INT, | ||
637 | AU1000_PCI_INTA, /* au1500 */ | ||
638 | AU1000_PCI_INTB, /* au1500 */ | ||
639 | AU1500_UART3_INT, | ||
640 | AU1000_PCI_INTC, /* au1500 */ | ||
641 | AU1000_PCI_INTD, /* au1500 */ | ||
642 | AU1000_DMA_INT_BASE, | ||
643 | |||
644 | AU1000_TOY_INT = AU1500_FIRST_INT + 14, | ||
645 | AU1000_TOY_MATCH0_INT, | ||
646 | AU1000_TOY_MATCH1_INT, | ||
647 | AU1000_TOY_MATCH2_INT, | ||
648 | AU1000_RTC_INT, | ||
649 | AU1000_RTC_MATCH0_INT, | ||
650 | AU1000_RTC_MATCH1_INT, | ||
651 | AU1000_RTC_MATCH2_INT, | ||
652 | AU1500_PCI_ERR_INT, | ||
653 | AU1500_RESERVED_INT, | ||
654 | AU1000_USB_DEV_REQ_INT, | ||
655 | AU1000_USB_DEV_SUS_INT, | ||
656 | AU1000_USB_HOST_INT, | ||
657 | AU1000_ACSYNC_INT, | ||
658 | AU1500_MAC0_DMA_INT, | ||
659 | AU1500_MAC1_DMA_INT, | ||
660 | AU1000_AC97C_INT = AU1500_FIRST_INT + 31, | ||
661 | AU1000_GPIO_0, | ||
662 | AU1000_GPIO_1, | ||
663 | AU1000_GPIO_2, | ||
664 | AU1000_GPIO_3, | ||
665 | AU1000_GPIO_4, | ||
666 | AU1000_GPIO_5, | ||
667 | AU1000_GPIO_6, | ||
668 | AU1000_GPIO_7, | ||
669 | AU1000_GPIO_8, | ||
670 | AU1000_GPIO_9, | ||
671 | AU1000_GPIO_10, | ||
672 | AU1000_GPIO_11, | ||
673 | AU1000_GPIO_12, | ||
674 | AU1000_GPIO_13, | ||
675 | AU1000_GPIO_14, | ||
676 | AU1000_GPIO_15, | ||
677 | AU1500_GPIO_200, | ||
678 | AU1500_GPIO_201, | ||
679 | AU1500_GPIO_202, | ||
680 | AU1500_GPIO_203, | ||
681 | AU1500_GPIO_20, | ||
682 | AU1500_GPIO_204, | ||
683 | AU1500_GPIO_205, | ||
684 | AU1500_GPIO_23, | ||
685 | AU1500_GPIO_24, | ||
686 | AU1500_GPIO_25, | ||
687 | AU1500_GPIO_26, | ||
688 | AU1500_GPIO_27, | ||
689 | AU1500_GPIO_28, | ||
690 | AU1500_GPIO_206, | ||
691 | AU1500_GPIO_207, | ||
692 | AU1500_GPIO_208_215, | ||
693 | }; | ||
694 | |||
695 | /* shortcuts */ | ||
696 | #define INTA AU1000_PCI_INTA | ||
697 | #define INTB AU1000_PCI_INTB | ||
698 | #define INTC AU1000_PCI_INTC | ||
699 | #define INTD AU1000_PCI_INTD | ||
700 | 965 | ||
701 | #define UART0_ADDR 0xB1100000 | 966 | #define UART0_ADDR 0xB1100000 |
702 | #define UART3_ADDR 0xB1400000 | 967 | #define UART3_ADDR 0xB1400000 |
703 | 968 | ||
704 | #define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */ | 969 | #define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */ |
705 | #define USB_HOST_CONFIG 0xB017fffc | 970 | #define USB_HOST_CONFIG 0xB017fffc |
971 | #define FOR_PLATFORM_C_USB_HOST_INT AU1500_USB_HOST_INT | ||
706 | 972 | ||
707 | #define AU1500_ETH0_BASE 0xB1500000 | 973 | #define AU1500_ETH0_BASE 0xB1500000 |
708 | #define AU1500_ETH1_BASE 0xB1510000 | 974 | #define AU1500_ETH1_BASE 0xB1510000 |
@@ -713,74 +979,13 @@ enum soc_au1500_ints { | |||
713 | 979 | ||
714 | /* Au1100 */ | 980 | /* Au1100 */ |
715 | #ifdef CONFIG_SOC_AU1100 | 981 | #ifdef CONFIG_SOC_AU1100 |
716 | enum soc_au1100_ints { | ||
717 | AU1100_FIRST_INT = MIPS_CPU_IRQ_BASE + 8, | ||
718 | AU1100_UART0_INT = AU1100_FIRST_INT, | ||
719 | AU1100_UART1_INT, | ||
720 | AU1100_SD_INT, | ||
721 | AU1100_UART3_INT, | ||
722 | AU1000_SSI0_INT, | ||
723 | AU1000_SSI1_INT, | ||
724 | AU1000_DMA_INT_BASE, | ||
725 | |||
726 | AU1000_TOY_INT = AU1100_FIRST_INT + 14, | ||
727 | AU1000_TOY_MATCH0_INT, | ||
728 | AU1000_TOY_MATCH1_INT, | ||
729 | AU1000_TOY_MATCH2_INT, | ||
730 | AU1000_RTC_INT, | ||
731 | AU1000_RTC_MATCH0_INT, | ||
732 | AU1000_RTC_MATCH1_INT, | ||
733 | AU1000_RTC_MATCH2_INT, | ||
734 | AU1000_IRDA_TX_INT, | ||
735 | AU1000_IRDA_RX_INT, | ||
736 | AU1000_USB_DEV_REQ_INT, | ||
737 | AU1000_USB_DEV_SUS_INT, | ||
738 | AU1000_USB_HOST_INT, | ||
739 | AU1000_ACSYNC_INT, | ||
740 | AU1100_MAC0_DMA_INT, | ||
741 | AU1100_GPIO_208_215, | ||
742 | AU1100_LCD_INT, | ||
743 | AU1000_AC97C_INT, | ||
744 | AU1000_GPIO_0, | ||
745 | AU1000_GPIO_1, | ||
746 | AU1000_GPIO_2, | ||
747 | AU1000_GPIO_3, | ||
748 | AU1000_GPIO_4, | ||
749 | AU1000_GPIO_5, | ||
750 | AU1000_GPIO_6, | ||
751 | AU1000_GPIO_7, | ||
752 | AU1000_GPIO_8, | ||
753 | AU1000_GPIO_9, | ||
754 | AU1000_GPIO_10, | ||
755 | AU1000_GPIO_11, | ||
756 | AU1000_GPIO_12, | ||
757 | AU1000_GPIO_13, | ||
758 | AU1000_GPIO_14, | ||
759 | AU1000_GPIO_15, | ||
760 | AU1000_GPIO_16, | ||
761 | AU1000_GPIO_17, | ||
762 | AU1000_GPIO_18, | ||
763 | AU1000_GPIO_19, | ||
764 | AU1000_GPIO_20, | ||
765 | AU1000_GPIO_21, | ||
766 | AU1000_GPIO_22, | ||
767 | AU1000_GPIO_23, | ||
768 | AU1000_GPIO_24, | ||
769 | AU1000_GPIO_25, | ||
770 | AU1000_GPIO_26, | ||
771 | AU1000_GPIO_27, | ||
772 | AU1000_GPIO_28, | ||
773 | AU1000_GPIO_29, | ||
774 | AU1000_GPIO_30, | ||
775 | AU1000_GPIO_31, | ||
776 | }; | ||
777 | 982 | ||
778 | #define UART0_ADDR 0xB1100000 | 983 | #define UART0_ADDR 0xB1100000 |
779 | #define UART1_ADDR 0xB1200000 | ||
780 | #define UART3_ADDR 0xB1400000 | 984 | #define UART3_ADDR 0xB1400000 |
781 | 985 | ||
782 | #define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */ | 986 | #define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */ |
783 | #define USB_HOST_CONFIG 0xB017FFFC | 987 | #define USB_HOST_CONFIG 0xB017FFFC |
988 | #define FOR_PLATFORM_C_USB_HOST_INT AU1100_USB_HOST_INT | ||
784 | 989 | ||
785 | #define AU1100_ETH0_BASE 0xB0500000 | 990 | #define AU1100_ETH0_BASE 0xB0500000 |
786 | #define AU1100_MAC0_ENABLE 0xB0520000 | 991 | #define AU1100_MAC0_ENABLE 0xB0520000 |
@@ -788,87 +993,12 @@ enum soc_au1100_ints { | |||
788 | #endif /* CONFIG_SOC_AU1100 */ | 993 | #endif /* CONFIG_SOC_AU1100 */ |
789 | 994 | ||
790 | #ifdef CONFIG_SOC_AU1550 | 995 | #ifdef CONFIG_SOC_AU1550 |
791 | enum soc_au1550_ints { | ||
792 | AU1550_FIRST_INT = MIPS_CPU_IRQ_BASE + 8, | ||
793 | AU1550_UART0_INT = AU1550_FIRST_INT, | ||
794 | AU1550_PCI_INTA, | ||
795 | AU1550_PCI_INTB, | ||
796 | AU1550_DDMA_INT, | ||
797 | AU1550_CRYPTO_INT, | ||
798 | AU1550_PCI_INTC, | ||
799 | AU1550_PCI_INTD, | ||
800 | AU1550_PCI_RST_INT, | ||
801 | AU1550_UART1_INT, | ||
802 | AU1550_UART3_INT, | ||
803 | AU1550_PSC0_INT, | ||
804 | AU1550_PSC1_INT, | ||
805 | AU1550_PSC2_INT, | ||
806 | AU1550_PSC3_INT, | ||
807 | AU1000_TOY_INT, | ||
808 | AU1000_TOY_MATCH0_INT, | ||
809 | AU1000_TOY_MATCH1_INT, | ||
810 | AU1000_TOY_MATCH2_INT, | ||
811 | AU1000_RTC_INT, | ||
812 | AU1000_RTC_MATCH0_INT, | ||
813 | AU1000_RTC_MATCH1_INT, | ||
814 | AU1000_RTC_MATCH2_INT, | ||
815 | |||
816 | AU1550_NAND_INT = AU1550_FIRST_INT + 23, | ||
817 | AU1550_USB_DEV_REQ_INT, | ||
818 | AU1000_USB_DEV_REQ_INT = AU1550_USB_DEV_REQ_INT, | ||
819 | AU1550_USB_DEV_SUS_INT, | ||
820 | AU1000_USB_DEV_SUS_INT = AU1550_USB_DEV_SUS_INT, | ||
821 | AU1550_USB_HOST_INT, | ||
822 | AU1000_USB_HOST_INT = AU1550_USB_HOST_INT, | ||
823 | AU1550_MAC0_DMA_INT, | ||
824 | AU1550_MAC1_DMA_INT, | ||
825 | AU1000_GPIO_0 = AU1550_FIRST_INT + 32, | ||
826 | AU1000_GPIO_1, | ||
827 | AU1000_GPIO_2, | ||
828 | AU1000_GPIO_3, | ||
829 | AU1000_GPIO_4, | ||
830 | AU1000_GPIO_5, | ||
831 | AU1000_GPIO_6, | ||
832 | AU1000_GPIO_7, | ||
833 | AU1000_GPIO_8, | ||
834 | AU1000_GPIO_9, | ||
835 | AU1000_GPIO_10, | ||
836 | AU1000_GPIO_11, | ||
837 | AU1000_GPIO_12, | ||
838 | AU1000_GPIO_13, | ||
839 | AU1000_GPIO_14, | ||
840 | AU1000_GPIO_15, | ||
841 | AU1550_GPIO_200, | ||
842 | AU1500_GPIO_201_205, /* Logical or of GPIO201:205 */ | ||
843 | AU1500_GPIO_16, | ||
844 | AU1500_GPIO_17, | ||
845 | AU1500_GPIO_20, | ||
846 | AU1500_GPIO_21, | ||
847 | AU1500_GPIO_22, | ||
848 | AU1500_GPIO_23, | ||
849 | AU1500_GPIO_24, | ||
850 | AU1500_GPIO_25, | ||
851 | AU1500_GPIO_26, | ||
852 | AU1500_GPIO_27, | ||
853 | AU1500_GPIO_28, | ||
854 | AU1500_GPIO_206, | ||
855 | AU1500_GPIO_207, | ||
856 | AU1500_GPIO_208_218, /* Logical or of GPIO208:218 */ | ||
857 | }; | ||
858 | |||
859 | /* shortcuts */ | ||
860 | #define INTA AU1550_PCI_INTA | ||
861 | #define INTB AU1550_PCI_INTB | ||
862 | #define INTC AU1550_PCI_INTC | ||
863 | #define INTD AU1550_PCI_INTD | ||
864 | |||
865 | #define UART0_ADDR 0xB1100000 | 996 | #define UART0_ADDR 0xB1100000 |
866 | #define UART1_ADDR 0xB1200000 | ||
867 | #define UART3_ADDR 0xB1400000 | ||
868 | 997 | ||
869 | #define USB_OHCI_BASE 0x14020000 /* phys addr for ioremap */ | 998 | #define USB_OHCI_BASE 0x14020000 /* phys addr for ioremap */ |
870 | #define USB_OHCI_LEN 0x00060000 | 999 | #define USB_OHCI_LEN 0x00060000 |
871 | #define USB_HOST_CONFIG 0xB4027ffc | 1000 | #define USB_HOST_CONFIG 0xB4027ffc |
1001 | #define FOR_PLATFORM_C_USB_HOST_INT AU1550_USB_HOST_INT | ||
872 | 1002 | ||
873 | #define AU1550_ETH0_BASE 0xB0500000 | 1003 | #define AU1550_ETH0_BASE 0xB0500000 |
874 | #define AU1550_ETH1_BASE 0xB0510000 | 1004 | #define AU1550_ETH1_BASE 0xB0510000 |
@@ -877,78 +1007,10 @@ enum soc_au1550_ints { | |||
877 | #define NUM_ETH_INTERFACES 2 | 1007 | #define NUM_ETH_INTERFACES 2 |
878 | #endif /* CONFIG_SOC_AU1550 */ | 1008 | #endif /* CONFIG_SOC_AU1550 */ |
879 | 1009 | ||
1010 | |||
880 | #ifdef CONFIG_SOC_AU1200 | 1011 | #ifdef CONFIG_SOC_AU1200 |
881 | enum soc_au1200_ints { | ||
882 | AU1200_FIRST_INT = MIPS_CPU_IRQ_BASE + 8, | ||
883 | AU1200_UART0_INT = AU1200_FIRST_INT, | ||
884 | AU1200_SWT_INT, | ||
885 | AU1200_SD_INT, | ||
886 | AU1200_DDMA_INT, | ||
887 | AU1200_MAE_BE_INT, | ||
888 | AU1200_GPIO_200, | ||
889 | AU1200_GPIO_201, | ||
890 | AU1200_GPIO_202, | ||
891 | AU1200_UART1_INT, | ||
892 | AU1200_MAE_FE_INT, | ||
893 | AU1200_PSC0_INT, | ||
894 | AU1200_PSC1_INT, | ||
895 | AU1200_AES_INT, | ||
896 | AU1200_CAMERA_INT, | ||
897 | AU1000_TOY_INT, | ||
898 | AU1000_TOY_MATCH0_INT, | ||
899 | AU1000_TOY_MATCH1_INT, | ||
900 | AU1000_TOY_MATCH2_INT, | ||
901 | AU1000_RTC_INT, | ||
902 | AU1000_RTC_MATCH0_INT, | ||
903 | AU1000_RTC_MATCH1_INT, | ||
904 | AU1000_RTC_MATCH2_INT, | ||
905 | AU1200_GPIO_203, | ||
906 | AU1200_NAND_INT, | ||
907 | AU1200_GPIO_204, | ||
908 | AU1200_GPIO_205, | ||
909 | AU1200_GPIO_206, | ||
910 | AU1200_GPIO_207, | ||
911 | AU1200_GPIO_208_215, /* Logical OR of 208:215 */ | ||
912 | AU1200_USB_INT, | ||
913 | AU1000_USB_HOST_INT = AU1200_USB_INT, | ||
914 | AU1200_LCD_INT, | ||
915 | AU1200_MAE_BOTH_INT, | ||
916 | AU1000_GPIO_0, | ||
917 | AU1000_GPIO_1, | ||
918 | AU1000_GPIO_2, | ||
919 | AU1000_GPIO_3, | ||
920 | AU1000_GPIO_4, | ||
921 | AU1000_GPIO_5, | ||
922 | AU1000_GPIO_6, | ||
923 | AU1000_GPIO_7, | ||
924 | AU1000_GPIO_8, | ||
925 | AU1000_GPIO_9, | ||
926 | AU1000_GPIO_10, | ||
927 | AU1000_GPIO_11, | ||
928 | AU1000_GPIO_12, | ||
929 | AU1000_GPIO_13, | ||
930 | AU1000_GPIO_14, | ||
931 | AU1000_GPIO_15, | ||
932 | AU1000_GPIO_16, | ||
933 | AU1000_GPIO_17, | ||
934 | AU1000_GPIO_18, | ||
935 | AU1000_GPIO_19, | ||
936 | AU1000_GPIO_20, | ||
937 | AU1000_GPIO_21, | ||
938 | AU1000_GPIO_22, | ||
939 | AU1000_GPIO_23, | ||
940 | AU1000_GPIO_24, | ||
941 | AU1000_GPIO_25, | ||
942 | AU1000_GPIO_26, | ||
943 | AU1000_GPIO_27, | ||
944 | AU1000_GPIO_28, | ||
945 | AU1000_GPIO_29, | ||
946 | AU1000_GPIO_30, | ||
947 | AU1000_GPIO_31, | ||
948 | }; | ||
949 | 1012 | ||
950 | #define UART0_ADDR 0xB1100000 | 1013 | #define UART0_ADDR 0xB1100000 |
951 | #define UART1_ADDR 0xB1200000 | ||
952 | 1014 | ||
953 | #define USB_UOC_BASE 0x14020020 | 1015 | #define USB_UOC_BASE 0x14020020 |
954 | #define USB_UOC_LEN 0x20 | 1016 | #define USB_UOC_LEN 0x20 |
@@ -974,15 +1036,9 @@ enum soc_au1200_ints { | |||
974 | #define USBMSRMCFG_RDCOMB 30 | 1036 | #define USBMSRMCFG_RDCOMB 30 |
975 | #define USBMSRMCFG_PFEN 31 | 1037 | #define USBMSRMCFG_PFEN 31 |
976 | 1038 | ||
977 | #endif /* CONFIG_SOC_AU1200 */ | 1039 | #define FOR_PLATFORM_C_USB_HOST_INT AU1200_USB_INT |
978 | 1040 | ||
979 | #define AU1000_INTC0_INT_BASE (MIPS_CPU_IRQ_BASE + 8) | 1041 | #endif /* CONFIG_SOC_AU1200 */ |
980 | #define AU1000_INTC0_INT_LAST (AU1000_INTC0_INT_BASE + 31) | ||
981 | #define AU1000_INTC1_INT_BASE (AU1000_INTC0_INT_BASE + 32) | ||
982 | #define AU1000_INTC1_INT_LAST (AU1000_INTC1_INT_BASE + 31) | ||
983 | |||
984 | #define AU1000_MAX_INTR AU1000_INTC1_INT_LAST | ||
985 | #define INTX 0xFF /* not valid */ | ||
986 | 1042 | ||
987 | /* Programmable Counters 0 and 1 */ | 1043 | /* Programmable Counters 0 and 1 */ |
988 | #define SYS_BASE 0xB1900000 | 1044 | #define SYS_BASE 0xB1900000 |
@@ -1231,14 +1287,6 @@ enum soc_au1200_ints { | |||
1231 | #define MAC_RX_BUFF3_STATUS 0x30 | 1287 | #define MAC_RX_BUFF3_STATUS 0x30 |
1232 | #define MAC_RX_BUFF3_ADDR 0x34 | 1288 | #define MAC_RX_BUFF3_ADDR 0x34 |
1233 | 1289 | ||
1234 | /* UARTS 0-3 */ | ||
1235 | #define UART_BASE UART0_ADDR | ||
1236 | #ifdef CONFIG_SOC_AU1200 | ||
1237 | #define UART_DEBUG_BASE UART1_ADDR | ||
1238 | #else | ||
1239 | #define UART_DEBUG_BASE UART3_ADDR | ||
1240 | #endif | ||
1241 | |||
1242 | #define UART_RX 0 /* Receive buffer */ | 1290 | #define UART_RX 0 /* Receive buffer */ |
1243 | #define UART_TX 4 /* Transmit buffer */ | 1291 | #define UART_TX 4 /* Transmit buffer */ |
1244 | #define UART_IER 8 /* Interrupt Enable Register */ | 1292 | #define UART_IER 8 /* Interrupt Enable Register */ |
@@ -1251,84 +1299,6 @@ enum soc_au1200_ints { | |||
1251 | #define UART_CLK 0x28 /* Baud Rate Clock Divider */ | 1299 | #define UART_CLK 0x28 /* Baud Rate Clock Divider */ |
1252 | #define UART_MOD_CNTRL 0x100 /* Module Control */ | 1300 | #define UART_MOD_CNTRL 0x100 /* Module Control */ |
1253 | 1301 | ||
1254 | #define UART_FCR_ENABLE_FIFO 0x01 /* Enable the FIFO */ | ||
1255 | #define UART_FCR_CLEAR_RCVR 0x02 /* Clear the RCVR FIFO */ | ||
1256 | #define UART_FCR_CLEAR_XMIT 0x04 /* Clear the XMIT FIFO */ | ||
1257 | #define UART_FCR_DMA_SELECT 0x08 /* For DMA applications */ | ||
1258 | #define UART_FCR_TRIGGER_MASK 0xF0 /* Mask for the FIFO trigger range */ | ||
1259 | #define UART_FCR_R_TRIGGER_1 0x00 /* Mask for receive trigger set at 1 */ | ||
1260 | #define UART_FCR_R_TRIGGER_4 0x40 /* Mask for receive trigger set at 4 */ | ||
1261 | #define UART_FCR_R_TRIGGER_8 0x80 /* Mask for receive trigger set at 8 */ | ||
1262 | #define UART_FCR_R_TRIGGER_14 0xA0 /* Mask for receive trigger set at 14 */ | ||
1263 | #define UART_FCR_T_TRIGGER_0 0x00 /* Mask for transmit trigger set at 0 */ | ||
1264 | #define UART_FCR_T_TRIGGER_4 0x10 /* Mask for transmit trigger set at 4 */ | ||
1265 | #define UART_FCR_T_TRIGGER_8 0x20 /* Mask for transmit trigger set at 8 */ | ||
1266 | #define UART_FCR_T_TRIGGER_12 0x30 /* Mask for transmit trigger set at 12 */ | ||
1267 | |||
1268 | /* | ||
1269 | * These are the definitions for the Line Control Register | ||
1270 | */ | ||
1271 | #define UART_LCR_SBC 0x40 /* Set break control */ | ||
1272 | #define UART_LCR_SPAR 0x20 /* Stick parity (?) */ | ||
1273 | #define UART_LCR_EPAR 0x10 /* Even parity select */ | ||
1274 | #define UART_LCR_PARITY 0x08 /* Parity Enable */ | ||
1275 | #define UART_LCR_STOP 0x04 /* Stop bits: 0=1 stop bit, 1= 2 stop bits */ | ||
1276 | #define UART_LCR_WLEN5 0x00 /* Wordlength: 5 bits */ | ||
1277 | #define UART_LCR_WLEN6 0x01 /* Wordlength: 6 bits */ | ||
1278 | #define UART_LCR_WLEN7 0x02 /* Wordlength: 7 bits */ | ||
1279 | #define UART_LCR_WLEN8 0x03 /* Wordlength: 8 bits */ | ||
1280 | |||
1281 | /* | ||
1282 | * These are the definitions for the Line Status Register | ||
1283 | */ | ||
1284 | #define UART_LSR_TEMT 0x40 /* Transmitter empty */ | ||
1285 | #define UART_LSR_THRE 0x20 /* Transmit-hold-register empty */ | ||
1286 | #define UART_LSR_BI 0x10 /* Break interrupt indicator */ | ||
1287 | #define UART_LSR_FE 0x08 /* Frame error indicator */ | ||
1288 | #define UART_LSR_PE 0x04 /* Parity error indicator */ | ||
1289 | #define UART_LSR_OE 0x02 /* Overrun error indicator */ | ||
1290 | #define UART_LSR_DR 0x01 /* Receiver data ready */ | ||
1291 | |||
1292 | /* | ||
1293 | * These are the definitions for the Interrupt Identification Register | ||
1294 | */ | ||
1295 | #define UART_IIR_NO_INT 0x01 /* No interrupts pending */ | ||
1296 | #define UART_IIR_ID 0x06 /* Mask for the interrupt ID */ | ||
1297 | #define UART_IIR_MSI 0x00 /* Modem status interrupt */ | ||
1298 | #define UART_IIR_THRI 0x02 /* Transmitter holding register empty */ | ||
1299 | #define UART_IIR_RDI 0x04 /* Receiver data interrupt */ | ||
1300 | #define UART_IIR_RLSI 0x06 /* Receiver line status interrupt */ | ||
1301 | |||
1302 | /* | ||
1303 | * These are the definitions for the Interrupt Enable Register | ||
1304 | */ | ||
1305 | #define UART_IER_MSI 0x08 /* Enable Modem status interrupt */ | ||
1306 | #define UART_IER_RLSI 0x04 /* Enable receiver line status interrupt */ | ||
1307 | #define UART_IER_THRI 0x02 /* Enable Transmitter holding register int. */ | ||
1308 | #define UART_IER_RDI 0x01 /* Enable receiver data interrupt */ | ||
1309 | |||
1310 | /* | ||
1311 | * These are the definitions for the Modem Control Register | ||
1312 | */ | ||
1313 | #define UART_MCR_LOOP 0x10 /* Enable loopback test mode */ | ||
1314 | #define UART_MCR_OUT2 0x08 /* Out2 complement */ | ||
1315 | #define UART_MCR_OUT1 0x04 /* Out1 complement */ | ||
1316 | #define UART_MCR_RTS 0x02 /* RTS complement */ | ||
1317 | #define UART_MCR_DTR 0x01 /* DTR complement */ | ||
1318 | |||
1319 | /* | ||
1320 | * These are the definitions for the Modem Status Register | ||
1321 | */ | ||
1322 | #define UART_MSR_DCD 0x80 /* Data Carrier Detect */ | ||
1323 | #define UART_MSR_RI 0x40 /* Ring Indicator */ | ||
1324 | #define UART_MSR_DSR 0x20 /* Data Set Ready */ | ||
1325 | #define UART_MSR_CTS 0x10 /* Clear to Send */ | ||
1326 | #define UART_MSR_DDCD 0x08 /* Delta DCD */ | ||
1327 | #define UART_MSR_TERI 0x04 /* Trailing edge ring indicator */ | ||
1328 | #define UART_MSR_DDSR 0x02 /* Delta DSR */ | ||
1329 | #define UART_MSR_DCTS 0x01 /* Delta CTS */ | ||
1330 | #define UART_MSR_ANY_DELTA 0x0F /* Any of the delta bits! */ | ||
1331 | |||
1332 | /* SSIO */ | 1302 | /* SSIO */ |
1333 | #define SSI0_STATUS 0xB1600000 | 1303 | #define SSI0_STATUS 0xB1600000 |
1334 | # define SSI_STATUS_BF (1 << 4) | 1304 | # define SSI_STATUS_BF (1 << 4) |
@@ -1720,7 +1690,7 @@ enum soc_au1200_ints { | |||
1720 | #define IOPORT_RESOURCE_START 0x00001000 /* skip legacy probing */ | 1690 | #define IOPORT_RESOURCE_START 0x00001000 /* skip legacy probing */ |
1721 | #define IOPORT_RESOURCE_END 0xffffffff | 1691 | #define IOPORT_RESOURCE_END 0xffffffff |
1722 | #define IOMEM_RESOURCE_START 0x10000000 | 1692 | #define IOMEM_RESOURCE_START 0x10000000 |
1723 | #define IOMEM_RESOURCE_END 0xffffffff | 1693 | #define IOMEM_RESOURCE_END 0xfffffffffULL |
1724 | 1694 | ||
1725 | #else /* Au1000 and Au1100 and Au1200 */ | 1695 | #else /* Au1000 and Au1100 and Au1200 */ |
1726 | 1696 | ||
@@ -1728,7 +1698,7 @@ enum soc_au1200_ints { | |||
1728 | #define IOPORT_RESOURCE_START 0x10000000 | 1698 | #define IOPORT_RESOURCE_START 0x10000000 |
1729 | #define IOPORT_RESOURCE_END 0xffffffff | 1699 | #define IOPORT_RESOURCE_END 0xffffffff |
1730 | #define IOMEM_RESOURCE_START 0x10000000 | 1700 | #define IOMEM_RESOURCE_START 0x10000000 |
1731 | #define IOMEM_RESOURCE_END 0xffffffff | 1701 | #define IOMEM_RESOURCE_END 0xfffffffffULL |
1732 | 1702 | ||
1733 | #define PCI_IO_START 0 | 1703 | #define PCI_IO_START 0 |
1734 | #define PCI_IO_END 0 | 1704 | #define PCI_IO_END 0 |
@@ -1739,53 +1709,4 @@ enum soc_au1200_ints { | |||
1739 | 1709 | ||
1740 | #endif | 1710 | #endif |
1741 | 1711 | ||
1742 | #ifndef _LANGUAGE_ASSEMBLY | ||
1743 | typedef volatile struct { | ||
1744 | /* 0x0000 */ u32 toytrim; | ||
1745 | /* 0x0004 */ u32 toywrite; | ||
1746 | /* 0x0008 */ u32 toymatch0; | ||
1747 | /* 0x000C */ u32 toymatch1; | ||
1748 | /* 0x0010 */ u32 toymatch2; | ||
1749 | /* 0x0014 */ u32 cntrctrl; | ||
1750 | /* 0x0018 */ u32 scratch0; | ||
1751 | /* 0x001C */ u32 scratch1; | ||
1752 | /* 0x0020 */ u32 freqctrl0; | ||
1753 | /* 0x0024 */ u32 freqctrl1; | ||
1754 | /* 0x0028 */ u32 clksrc; | ||
1755 | /* 0x002C */ u32 pinfunc; | ||
1756 | /* 0x0030 */ u32 reserved0; | ||
1757 | /* 0x0034 */ u32 wakemsk; | ||
1758 | /* 0x0038 */ u32 endian; | ||
1759 | /* 0x003C */ u32 powerctrl; | ||
1760 | /* 0x0040 */ u32 toyread; | ||
1761 | /* 0x0044 */ u32 rtctrim; | ||
1762 | /* 0x0048 */ u32 rtcwrite; | ||
1763 | /* 0x004C */ u32 rtcmatch0; | ||
1764 | /* 0x0050 */ u32 rtcmatch1; | ||
1765 | /* 0x0054 */ u32 rtcmatch2; | ||
1766 | /* 0x0058 */ u32 rtcread; | ||
1767 | /* 0x005C */ u32 wakesrc; | ||
1768 | /* 0x0060 */ u32 cpupll; | ||
1769 | /* 0x0064 */ u32 auxpll; | ||
1770 | /* 0x0068 */ u32 reserved1; | ||
1771 | /* 0x006C */ u32 reserved2; | ||
1772 | /* 0x0070 */ u32 reserved3; | ||
1773 | /* 0x0074 */ u32 reserved4; | ||
1774 | /* 0x0078 */ u32 slppwr; | ||
1775 | /* 0x007C */ u32 sleep; | ||
1776 | /* 0x0080 */ u32 reserved5[32]; | ||
1777 | /* 0x0100 */ u32 trioutrd; | ||
1778 | #define trioutclr trioutrd | ||
1779 | /* 0x0104 */ u32 reserved6; | ||
1780 | /* 0x0108 */ u32 outputrd; | ||
1781 | #define outputset outputrd | ||
1782 | /* 0x010C */ u32 outputclr; | ||
1783 | /* 0x0110 */ u32 pinstaterd; | ||
1784 | #define pininputen pinstaterd | ||
1785 | } AU1X00_SYS; | ||
1786 | |||
1787 | static AU1X00_SYS * const sys = (AU1X00_SYS *)SYS_BASE; | ||
1788 | |||
1789 | #endif | ||
1790 | |||
1791 | #endif | 1712 | #endif |