diff options
| author | Simon Arlott <simon@fire.lp0.eu> | 2015-12-09 15:27:09 -0500 |
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2016-05-13 08:01:59 -0400 |
| commit | 331ae5fc3eb439b4ef2e26c25c8d1431d74b7a6f (patch) | |
| tree | 2d5a88e832660cbf746a601e8ba6e920db5fe1dd /Documentation/devicetree/bindings/interrupt-controller | |
| parent | e2c93cf14b40e8b8e755bb163ced004edb4691e2 (diff) | |
irqchip: Add brcm, bcm6345-l1-intc device tree binding
Add device tree binding for the BCM6345 interrupt controller.
This controller is similar to the SMP-capable BCM7038 and
the BCM3380 but with packed interrupt registers.
Signed-off-by: Simon Arlott <simon@fire.lp0.eu>
Acked-by: Rob Herring <robh@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: Kevin Cernekee <cernekee@gmail.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Cc: Kumar Gala <galak@codeaurora.org>
Cc: Jonas Gorski <jogo@openwrt.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: devicetree@vger.kernel.org
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/11804/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'Documentation/devicetree/bindings/interrupt-controller')
| -rw-r--r-- | Documentation/devicetree/bindings/interrupt-controller/brcm,bcm6345-l1-intc.txt | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm6345-l1-intc.txt b/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm6345-l1-intc.txt new file mode 100644 index 000000000000..4040905388d9 --- /dev/null +++ b/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm6345-l1-intc.txt | |||
| @@ -0,0 +1,57 @@ | |||
| 1 | Broadcom BCM6345-style Level 1 interrupt controller | ||
| 2 | |||
| 3 | This block is a first level interrupt controller that is typically connected | ||
| 4 | directly to one of the HW INT lines on each CPU. | ||
| 5 | |||
| 6 | Key elements of the hardware design include: | ||
| 7 | |||
| 8 | - 32, 64 or 128 incoming level IRQ lines | ||
| 9 | |||
| 10 | - Most onchip peripherals are wired directly to an L1 input | ||
| 11 | |||
| 12 | - A separate instance of the register set for each CPU, allowing individual | ||
| 13 | peripheral IRQs to be routed to any CPU | ||
| 14 | |||
| 15 | - Contains one or more enable/status word pairs per CPU | ||
| 16 | |||
| 17 | - No atomic set/clear operations | ||
| 18 | |||
| 19 | - No polarity/level/edge settings | ||
| 20 | |||
| 21 | - No FIFO or priority encoder logic; software is expected to read all | ||
| 22 | 2-4 status words to determine which IRQs are pending | ||
| 23 | |||
| 24 | Required properties: | ||
| 25 | |||
| 26 | - compatible: should be "brcm,bcm<soc>-l1-intc", "brcm,bcm6345-l1-intc" | ||
| 27 | - reg: specifies the base physical address and size of the registers; | ||
| 28 | the number of supported IRQs is inferred from the size argument | ||
| 29 | - interrupt-controller: identifies the node as an interrupt controller | ||
| 30 | - #interrupt-cells: specifies the number of cells needed to encode an interrupt | ||
| 31 | source, should be 1. | ||
| 32 | - interrupt-parent: specifies the phandle to the parent interrupt controller(s) | ||
| 33 | this one is cascaded from | ||
| 34 | - interrupts: specifies the interrupt line(s) in the interrupt-parent controller | ||
| 35 | node; valid values depend on the type of parent interrupt controller | ||
| 36 | |||
| 37 | If multiple reg ranges and interrupt-parent entries are present on an SMP | ||
| 38 | system, the driver will allow IRQ SMP affinity to be set up through the | ||
| 39 | /proc/irq/ interface. In the simplest possible configuration, only one | ||
| 40 | reg range and one interrupt-parent is needed. | ||
| 41 | |||
| 42 | The driver operates in native CPU endian by default, there is no support for | ||
| 43 | specifying an alternative endianness. | ||
| 44 | |||
| 45 | Example: | ||
| 46 | |||
| 47 | periph_intc: interrupt-controller@10000000 { | ||
| 48 | compatible = "brcm,bcm63168-l1-intc", "brcm,bcm6345-l1-intc"; | ||
| 49 | reg = <0x10000020 0x20>, | ||
| 50 | <0x10000040 0x20>; | ||
| 51 | |||
| 52 | interrupt-controller; | ||
| 53 | #interrupt-cells = <1>; | ||
| 54 | |||
| 55 | interrupt-parent = <&cpu_intc>; | ||
| 56 | interrupts = <2>, <3>; | ||
| 57 | }; | ||
