[PATCH v3 01/14] dt/bindings: Add bindings for PIC32 interrupt controller
From: Joshua Henderson <hidden>
Date: 2016-01-07 23:55:59
Also in:
linux-mips, lkml
Subsystem:
irqchip drivers, open firmware and flattened device tree bindings, the rest · Maintainers:
Thomas Gleixner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Linus Torvalds
From: Cristian Birsan <cristian.birsan@microchip.com> Document the devicetree bindings for the interrupt controller on Microchip PIC32 class devices. Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com> Signed-off-by: Joshua Henderson <redacted> Cc: Ralf Baechle <redacted> Acked-by: Rob Herring <robh@kernel.org> --- .../interrupt-controller/microchip,pic32-evic.txt | 58 ++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 Documentation/devicetree/bindings/interrupt-controller/microchip,pic32-evic.txt
diff --git a/Documentation/devicetree/bindings/interrupt-controller/microchip,pic32-evic.txt b/Documentation/devicetree/bindings/interrupt-controller/microchip,pic32-evic.txt
new file mode 100644
index 0000000..6f4389a
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/microchip,pic32-evic.txt@@ -0,0 +1,58 @@ +Microchip PIC32 Interrupt Controller +==================================== + +The Microchip PIC32 contains an Enhanced Vectored Interrupt Controller +(EVIC). It handles internal and external interrupts and provides support for +irq type and polarity. + +Required properties +------------------- + +- compatible: Should be "microchip,pic32mzda-evic" + +- reg: Specifies physical base address and size of register range. + +- interrupt-controller: Identifies the node as an interrupt controller. + +- #interrupt cells: Specifies the number of cells used to encode an interrupt +source connected to this controller. The value shall be 2 and interrupt +descriptor shall have the following format: + <hw_irq irq_type> + +hw_irq - represents the hardware interrupt number as in the data sheet. + +irq_type - is used to describe the type and polarity of an interrupt. For +internal interrupts use IRQ_TYPE_EDGE_RISING for non persistent interrupts and +IRQ_TYPE_LEVEL_HIGH for persistent interrupts. For external interrupts use +IRQ_TYPE_EDGE_RISING or IRQ_TYPE_EDGE_FALLING to select the desired polarity. + +Example +------- + +evic: interrupt-controller@1f810000 { + compatible = "microchip,pic32mzda-evic"; + interrupt-controller; + #interrupt-cells = <2>; + reg = <0x1f810000 0x1000>; +}; + +Each device must request his interrupt line with the associated priority and +polarity + +Internal interrupt DTS snippet +------------------------------ + +device@1f800000 { + ... + interrupts = <113 IRQ_TYPE_LEVEL_HIGH>; + ... +}; + +External interrupt DTS snippet +------------------------------ + +device@1f800000 { + ... + interrupts = <3 IRQ_TYPE_EDGE_RISING>; + ... +};
--
1.7.9.5