diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2013-02-15 13:53:47 -0500 |
---|---|---|
committer | John Crispin <blogic@openwrt.org> | 2013-02-19 03:36:25 -0500 |
commit | 53330332f176eaa9567481c69bbad8b2176b4eb5 (patch) | |
tree | d5278cdce05a2a3bbfacb0e774c45f67ca3429ff /arch/mips/include/asm/mach-ath79 | |
parent | 41583c05c15cd3adb848f9ee8316bf8084c961cb (diff) |
MIPS: ath79: add IRQ handling code for the QCA955X SoCs
The IRQ routing in the QCA955x SoCs is slightly
different from the routing implemented in the
already supported SoCs.
Cc: Rodriguez, Luis <rodrigue@qca.qualcomm.com>
Cc: Giori, Kathy <kgiori@qca.qualcomm.com>
Cc: QCA Linux Team <qca-linux-team@qca.qualcomm.com>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Patchwork: http://patchwork.linux-mips.org/patch/4955/
Signed-off-by: John Crispin <blogic@openwrt.org>
Diffstat (limited to 'arch/mips/include/asm/mach-ath79')
-rw-r--r-- | arch/mips/include/asm/mach-ath79/ar71xx_regs.h | 32 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-ath79/irq.h | 6 |
2 files changed, 37 insertions, 1 deletions
diff --git a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h index 7b00e12afc1c..8782d8b097a3 100644 --- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h +++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h | |||
@@ -300,6 +300,7 @@ | |||
300 | #define AR934X_RESET_REG_PCIE_WMAC_INT_STATUS 0xac | 300 | #define AR934X_RESET_REG_PCIE_WMAC_INT_STATUS 0xac |
301 | 301 | ||
302 | #define QCA955X_RESET_REG_BOOTSTRAP 0xb0 | 302 | #define QCA955X_RESET_REG_BOOTSTRAP 0xb0 |
303 | #define QCA955X_RESET_REG_EXT_INT_STATUS 0xac | ||
303 | 304 | ||
304 | #define MISC_INT_ETHSW BIT(12) | 305 | #define MISC_INT_ETHSW BIT(12) |
305 | #define MISC_INT_TIMER4 BIT(10) | 306 | #define MISC_INT_TIMER4 BIT(10) |
@@ -398,6 +399,37 @@ | |||
398 | AR934X_PCIE_WMAC_INT_PCIE_RC1 | AR934X_PCIE_WMAC_INT_PCIE_RC2 | \ | 399 | AR934X_PCIE_WMAC_INT_PCIE_RC1 | AR934X_PCIE_WMAC_INT_PCIE_RC2 | \ |
399 | AR934X_PCIE_WMAC_INT_PCIE_RC3) | 400 | AR934X_PCIE_WMAC_INT_PCIE_RC3) |
400 | 401 | ||
402 | #define QCA955X_EXT_INT_WMAC_MISC BIT(0) | ||
403 | #define QCA955X_EXT_INT_WMAC_TX BIT(1) | ||
404 | #define QCA955X_EXT_INT_WMAC_RXLP BIT(2) | ||
405 | #define QCA955X_EXT_INT_WMAC_RXHP BIT(3) | ||
406 | #define QCA955X_EXT_INT_PCIE_RC1 BIT(4) | ||
407 | #define QCA955X_EXT_INT_PCIE_RC1_INT0 BIT(5) | ||
408 | #define QCA955X_EXT_INT_PCIE_RC1_INT1 BIT(6) | ||
409 | #define QCA955X_EXT_INT_PCIE_RC1_INT2 BIT(7) | ||
410 | #define QCA955X_EXT_INT_PCIE_RC1_INT3 BIT(8) | ||
411 | #define QCA955X_EXT_INT_PCIE_RC2 BIT(12) | ||
412 | #define QCA955X_EXT_INT_PCIE_RC2_INT0 BIT(13) | ||
413 | #define QCA955X_EXT_INT_PCIE_RC2_INT1 BIT(14) | ||
414 | #define QCA955X_EXT_INT_PCIE_RC2_INT2 BIT(15) | ||
415 | #define QCA955X_EXT_INT_PCIE_RC2_INT3 BIT(16) | ||
416 | #define QCA955X_EXT_INT_USB1 BIT(24) | ||
417 | #define QCA955X_EXT_INT_USB2 BIT(28) | ||
418 | |||
419 | #define QCA955X_EXT_INT_WMAC_ALL \ | ||
420 | (QCA955X_EXT_INT_WMAC_MISC | QCA955X_EXT_INT_WMAC_TX | \ | ||
421 | QCA955X_EXT_INT_WMAC_RXLP | QCA955X_EXT_INT_WMAC_RXHP) | ||
422 | |||
423 | #define QCA955X_EXT_INT_PCIE_RC1_ALL \ | ||
424 | (QCA955X_EXT_INT_PCIE_RC1 | QCA955X_EXT_INT_PCIE_RC1_INT0 | \ | ||
425 | QCA955X_EXT_INT_PCIE_RC1_INT1 | QCA955X_EXT_INT_PCIE_RC1_INT2 | \ | ||
426 | QCA955X_EXT_INT_PCIE_RC1_INT3) | ||
427 | |||
428 | #define QCA955X_EXT_INT_PCIE_RC2_ALL \ | ||
429 | (QCA955X_EXT_INT_PCIE_RC2 | QCA955X_EXT_INT_PCIE_RC2_INT0 | \ | ||
430 | QCA955X_EXT_INT_PCIE_RC2_INT1 | QCA955X_EXT_INT_PCIE_RC2_INT2 | \ | ||
431 | QCA955X_EXT_INT_PCIE_RC2_INT3) | ||
432 | |||
401 | #define REV_ID_MAJOR_MASK 0xfff0 | 433 | #define REV_ID_MAJOR_MASK 0xfff0 |
402 | #define REV_ID_MAJOR_AR71XX 0x00a0 | 434 | #define REV_ID_MAJOR_AR71XX 0x00a0 |
403 | #define REV_ID_MAJOR_AR913X 0x00b0 | 435 | #define REV_ID_MAJOR_AR913X 0x00b0 |
diff --git a/arch/mips/include/asm/mach-ath79/irq.h b/arch/mips/include/asm/mach-ath79/irq.h index 23e2bba42482..5c9ca76a7ebf 100644 --- a/arch/mips/include/asm/mach-ath79/irq.h +++ b/arch/mips/include/asm/mach-ath79/irq.h | |||
@@ -10,7 +10,7 @@ | |||
10 | #define __ASM_MACH_ATH79_IRQ_H | 10 | #define __ASM_MACH_ATH79_IRQ_H |
11 | 11 | ||
12 | #define MIPS_CPU_IRQ_BASE 0 | 12 | #define MIPS_CPU_IRQ_BASE 0 |
13 | #define NR_IRQS 48 | 13 | #define NR_IRQS 51 |
14 | 14 | ||
15 | #define ATH79_CPU_IRQ(_x) (MIPS_CPU_IRQ_BASE + (_x)) | 15 | #define ATH79_CPU_IRQ(_x) (MIPS_CPU_IRQ_BASE + (_x)) |
16 | 16 | ||
@@ -26,6 +26,10 @@ | |||
26 | #define ATH79_IP2_IRQ_COUNT 2 | 26 | #define ATH79_IP2_IRQ_COUNT 2 |
27 | #define ATH79_IP2_IRQ(_x) (ATH79_IP2_IRQ_BASE + (_x)) | 27 | #define ATH79_IP2_IRQ(_x) (ATH79_IP2_IRQ_BASE + (_x)) |
28 | 28 | ||
29 | #define ATH79_IP3_IRQ_BASE (ATH79_IP2_IRQ_BASE + ATH79_IP2_IRQ_COUNT) | ||
30 | #define ATH79_IP3_IRQ_COUNT 3 | ||
31 | #define ATH79_IP3_IRQ(_x) (ATH79_IP3_IRQ_BASE + (_x)) | ||
32 | |||
29 | #include_next <irq.h> | 33 | #include_next <irq.h> |
30 | 34 | ||
31 | #endif /* __ASM_MACH_ATH79_IRQ_H */ | 35 | #endif /* __ASM_MACH_ATH79_IRQ_H */ |