aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorKevin Cernekee <cernekee@gmail.com>2014-12-25 12:49:06 -0500
committerRalf Baechle <ralf@linux-mips.org>2015-04-01 11:21:37 -0400
commit5f7f0317ed28b86bdae9baf65bb72d405b6f79ee (patch)
tree20b8cdaf9b909afd426e76d8b6d2a2b9a9fa6b35 /Documentation
parent7b7230e70e9eda75356cf15c450b65b77924486f (diff)
IRQCHIP: Add new driver for BCM7038-style level 1 interrupt controllers
This is the main peripheral IRQ controller on the BCM7xxx MIPS chips; it has the following characteristics: - 64 to 160+ level IRQs - Atomic set/clear registers - Reasonably predictable register layout (N status words, then N mask status words, then N mask set words, then N mask clear words) - SMP affinity supported on most systems - Typically connected to MIPS IRQ 2,3,2,3 on CPUs 0,1,2,3 This driver registers one IRQ domain and one IRQ chip to cover all instances of the block. Up to 4 instances of the block may appear, as it supports 4-way IRQ affinity on BCM7435. The same block exists on the ARM BCM7xxx chips, but typically the ARM GIC is used instead. So this driver is primarily intended for MIPS STB chips. Signed-off-by: Kevin Cernekee <cernekee@gmail.com> Cc: f.fainelli@gmail.com Cc: jaedon.shin@gmail.com Cc: abrestic@chromium.org Cc: tglx@linutronix.de Cc: jason@lakedaemon.net Cc: jogo@openwrt.org Cc: arnd@arndb.de Cc: computersforpeace@gmail.com Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/8844/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt52
1 files changed, 52 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt b/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt
new file mode 100644
index 000000000000..cc217b22dccd
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt
@@ -0,0 +1,52 @@
1Broadcom BCM7038-style Level 1 interrupt controller
2
3This block is a first level interrupt controller that is typically connected
4directly to one of the HW INT lines on each CPU. Every BCM7xxx set-top chip
5since BCM7038 has contained this hardware.
6
7Key elements of the hardware design include:
8
9- 64, 96, 128, or 160 incoming level IRQ lines
10
11- Most onchip peripherals are wired directly to an L1 input
12
13- A separate instance of the register set for each CPU, allowing individual
14 peripheral IRQs to be routed to any CPU
15
16- Atomic mask/unmask operations
17
18- No polarity/level/edge settings
19
20- No FIFO or priority encoder logic; software is expected to read all
21 2-5 status words to determine which IRQs are pending
22
23Required properties:
24
25- compatible: should be "brcm,bcm7038-l1-intc"
26- reg: specifies the base physical address and size of the registers;
27 the number of supported IRQs is inferred from the size argument
28- interrupt-controller: identifies the node as an interrupt controller
29- #interrupt-cells: specifies the number of cells needed to encode an interrupt
30 source, should be 1.
31- interrupt-parent: specifies the phandle to the parent interrupt controller(s)
32 this one is cascaded from
33- interrupts: specifies the interrupt line(s) in the interrupt-parent controller
34 node; valid values depend on the type of parent interrupt controller
35
36If multiple reg ranges and interrupt-parent entries are present on an SMP
37system, the driver will allow IRQ SMP affinity to be set up through the
38/proc/irq/ interface. In the simplest possible configuration, only one
39reg range and one interrupt-parent is needed.
40
41Example:
42
43periph_intc: periph_intc@1041a400 {
44 compatible = "brcm,bcm7038-l1-intc";
45 reg = <0x1041a400 0x30 0x1041a600 0x30>;
46
47 interrupt-controller;
48 #interrupt-cells = <1>;
49
50 interrupt-parent = <&cpu_intc>;
51 interrupts = <2>, <3>;
52};