Skip to content

Commit c7c42ec

Browse files
nomisKAGA-KOKO
authored andcommitted
irqchips/bmips: Add bcm6345-l1 interrupt controller
Add the BCM6345 interrupt controller based on the SMP-capable BCM7038 and the BCM3380 but with packed interrupt registers. Add the BCM6345 interrupt controller to a list with the existing BCM7038 so that interrupts on CPU1 are not ignored. Update the maintainers file list for BMIPS to include this driver. Signed-off-by: Simon Arlott <[email protected]> Cc: Mark Rutland <[email protected]> Cc: [email protected] Cc: Ian Campbell <[email protected]> Cc: Florian Fainelli <[email protected]> Cc: Jason Cooper <[email protected]> Cc: Pawel Moll <[email protected]> Cc: [email protected] Cc: Marc Zyngier <[email protected]> Cc: Kevin Cernekee <[email protected]> Cc: Ralf Baechle <[email protected]> Cc: Jonas Gorski <[email protected]> Cc: Kumar Gala <[email protected]> Cc: Rob Herring <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Thomas Gleixner <[email protected]>
1 parent 4b5ce20 commit c7c42ec

File tree

6 files changed

+380
-2
lines changed

6 files changed

+380
-2
lines changed

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2423,6 +2423,7 @@ F: arch/mips/bmips/*
24232423
F: arch/mips/include/asm/mach-bmips/*
24242424
F: arch/mips/kernel/*bmips*
24252425
F: arch/mips/boot/dts/brcm/bcm*.dts*
2426+
F: drivers/irqchip/irq-bcm63*
24262427
F: drivers/irqchip/irq-bcm7*
24272428
F: drivers/irqchip/irq-brcmstb*
24282429
F: include/linux/bcm963xx_nvram.h

arch/mips/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ config BMIPS_GENERIC
151151
select CSRC_R4K
152152
select SYNC_R4K
153153
select COMMON_CLK
154+
select BCM6345_L1_IRQ
154155
select BCM7038_L1_IRQ
155156
select BCM7120_L2_IRQ
156157
select BRCMSTB_L2_IRQ

arch/mips/bmips/irq.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@
1515
#include <asm/irq_cpu.h>
1616
#include <asm/time.h>
1717

18+
static const struct of_device_id smp_intc_dt_match[] = {
19+
{ .compatible = "brcm,bcm7038-l1-intc" },
20+
{ .compatible = "brcm,bcm6345-l1-intc" },
21+
{}
22+
};
23+
1824
unsigned int get_c0_compare_int(void)
1925
{
2026
return CP0_LEGACY_COMPARE_IRQ;
@@ -24,8 +30,8 @@ void __init arch_init_irq(void)
2430
{
2531
struct device_node *dn;
2632

27-
/* Only the STB (bcm7038) controller supports SMP IRQ affinity */
28-
dn = of_find_compatible_node(NULL, NULL, "brcm,bcm7038-l1-intc");
33+
/* Only these controllers support SMP IRQ affinity */
34+
dn = of_find_matching_node(NULL, smp_intc_dt_match);
2935
if (dn)
3036
of_node_put(dn);
3137
else

drivers/irqchip/Kconfig

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,11 @@ config I8259
7878
bool
7979
select IRQ_DOMAIN
8080

81+
config BCM6345_L1_IRQ
82+
bool
83+
select GENERIC_IRQ_CHIP
84+
select IRQ_DOMAIN
85+
8186
config BCM7038_L1_IRQ
8287
bool
8388
select GENERIC_IRQ_CHIP

drivers/irqchip/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ obj-$(CONFIG_XTENSA) += irq-xtensa-pic.o
4646
obj-$(CONFIG_XTENSA_MX) += irq-xtensa-mx.o
4747
obj-$(CONFIG_IRQ_CROSSBAR) += irq-crossbar.o
4848
obj-$(CONFIG_SOC_VF610) += irq-vf610-mscm-ir.o
49+
obj-$(CONFIG_BCM6345_L1_IRQ) += irq-bcm6345-l1.o
4950
obj-$(CONFIG_BCM7038_L1_IRQ) += irq-bcm7038-l1.o
5051
obj-$(CONFIG_BCM7120_L2_IRQ) += irq-bcm7120-l2.o
5152
obj-$(CONFIG_BRCMSTB_L2_IRQ) += irq-brcmstb-l2.o

0 commit comments

Comments
 (0)