2014-12-09 00:11:52 +08:00
|
|
|
From 4fd286c3e5a5bebab0391cf1937695b3ed6721a3 Mon Sep 17 00:00:00 2001
|
2014-12-01 21:27:26 +08:00
|
|
|
From: Jonas Gorski <jogo@openwrt.org>
|
|
|
|
Date: Sun, 30 Nov 2014 20:20:30 +0100
|
2014-12-09 00:11:52 +08:00
|
|
|
Subject: [PATCH 4/5] MIPS: BCM63XX: wire up BCM6358's external interrupts 4
|
2014-12-01 21:27:26 +08:00
|
|
|
and 5
|
|
|
|
|
|
|
|
Due to the external interrupts being non consecutive, the previous
|
|
|
|
implementation did not support them. Now that we treat both registers
|
|
|
|
as separate irq controllers, there is no such limitation anymore and
|
|
|
|
we can expose them for drivers to use.
|
|
|
|
|
|
|
|
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|
|
|
---
|
|
|
|
arch/mips/bcm63xx/irq.c | 5 ++++-
|
|
|
|
arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h | 2 ++
|
|
|
|
arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h | 1 +
|
|
|
|
3 files changed, 7 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
--- a/arch/mips/bcm63xx/irq.c
|
|
|
|
+++ b/arch/mips/bcm63xx/irq.c
|
|
|
|
@@ -109,11 +109,14 @@ static void bcm63xx_init_irq(void)
|
2014-12-09 00:11:52 +08:00
|
|
|
periph_width = 1;
|
2014-12-01 21:27:26 +08:00
|
|
|
|
|
|
|
ext_intc_bases[0] += PERF_EXTIRQ_CFG_REG_6358;
|
|
|
|
- ext_irq_count = 4;
|
|
|
|
+ ext_intc_bases[1] += PERF_EXTIRQ_CFG_REG2_6358;
|
|
|
|
+ ext_irq_count = 6;
|
|
|
|
ext_irqs[0] = BCM_6358_EXT_IRQ0;
|
|
|
|
ext_irqs[1] = BCM_6358_EXT_IRQ1;
|
|
|
|
ext_irqs[2] = BCM_6358_EXT_IRQ2;
|
|
|
|
ext_irqs[3] = BCM_6358_EXT_IRQ3;
|
|
|
|
+ ext_irqs[4] = BCM_6358_EXT_IRQ4;
|
|
|
|
+ ext_irqs[5] = BCM_6358_EXT_IRQ5;
|
|
|
|
ext_shift = 4;
|
|
|
|
break;
|
|
|
|
case BCM6362_CPU_ID:
|
|
|
|
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
|
|
|
|
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
|
|
|
|
@@ -895,6 +895,8 @@ enum bcm63xx_irq {
|
|
|
|
#define BCM_6358_EXT_IRQ1 (IRQ_INTERNAL_BASE + 26)
|
|
|
|
#define BCM_6358_EXT_IRQ2 (IRQ_INTERNAL_BASE + 27)
|
|
|
|
#define BCM_6358_EXT_IRQ3 (IRQ_INTERNAL_BASE + 28)
|
|
|
|
+#define BCM_6358_EXT_IRQ4 (IRQ_INTERNAL_BASE + 20)
|
|
|
|
+#define BCM_6358_EXT_IRQ5 (IRQ_INTERNAL_BASE + 21)
|
|
|
|
|
|
|
|
/*
|
|
|
|
* 6362 irqs
|
|
|
|
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
|
|
|
|
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
|
|
|
|
@@ -243,6 +243,7 @@
|
|
|
|
#define PERF_EXTIRQ_CFG_REG_6362 0x18
|
|
|
|
#define PERF_EXTIRQ_CFG_REG_6368 0x18
|
|
|
|
|
|
|
|
+#define PERF_EXTIRQ_CFG_REG2_6358 0x1c
|
|
|
|
#define PERF_EXTIRQ_CFG_REG2_6368 0x1c
|
|
|
|
|
|
|
|
/* for 6348 only */
|