You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.0 KiB
58 lines
2.0 KiB
7 years ago
|
From 4fd286c3e5a5bebab0391cf1937695b3ed6721a3 Mon Sep 17 00:00:00 2001
|
||
|
From: Jonas Gorski <jogo@openwrt.org>
|
||
|
Date: Sun, 30 Nov 2014 20:20:30 +0100
|
||
|
Subject: [PATCH 4/5] MIPS: BCM63XX: wire up BCM6358's external interrupts 4
|
||
|
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
|
||
|
@@ -108,11 +108,14 @@ void __init arch_init_irq(void)
|
||
|
periph_width = 1;
|
||
|
|
||
|
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
|
||
|
@@ -896,6 +896,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
|
||
|
@@ -244,6 +244,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 */
|