|
@@ -0,0 +1,98 @@
|
|
|
+* Open PIC Binding
|
|
|
+
|
|
|
+This binding specifies what properties must be available in the device tree
|
|
|
+representation of an Open PIC compliant interrupt controller. This binding is
|
|
|
+based on the binding defined for Open PIC in [1] and is a superset of that
|
|
|
+binding.
|
|
|
+
|
|
|
+Required properties:
|
|
|
+
|
|
|
+ NOTE: Many of these descriptions were paraphrased here from [1] to aid
|
|
|
+ readability.
|
|
|
+
|
|
|
+ - compatible: Specifies the compatibility list for the PIC. The type
|
|
|
+ shall be <string> and the value shall include "open-pic".
|
|
|
+
|
|
|
+ - reg: Specifies the base physical address(s) and size(s) of this
|
|
|
+ PIC's addressable register space. The type shall be <prop-encoded-array>.
|
|
|
+
|
|
|
+ - interrupt-controller: The presence of this property identifies the node
|
|
|
+ as an Open PIC. No property value shall be defined.
|
|
|
+
|
|
|
+ - #interrupt-cells: Specifies the number of cells needed to encode an
|
|
|
+ interrupt source. The type shall be a <u32> and the value shall be 2.
|
|
|
+
|
|
|
+ - #address-cells: Specifies the number of cells needed to encode an
|
|
|
+ address. The type shall be <u32> and the value shall be 0. As such,
|
|
|
+ 'interrupt-map' nodes do not have to specify a parent unit address.
|
|
|
+
|
|
|
+Optional properties:
|
|
|
+
|
|
|
+ - pic-no-reset: The presence of this property indicates that the PIC
|
|
|
+ shall not be reset during runtime initialization. No property value shall
|
|
|
+ be defined. The presence of this property also mandates that any
|
|
|
+ initialization related to interrupt sources shall be limited to sources
|
|
|
+ explicitly referenced in the device tree.
|
|
|
+
|
|
|
+* Interrupt Specifier Definition
|
|
|
+
|
|
|
+ Interrupt specifiers consists of 2 cells encoded as
|
|
|
+ follows:
|
|
|
+
|
|
|
+ - <1st-cell>: The interrupt-number that identifies the interrupt source.
|
|
|
+
|
|
|
+ - <2nd-cell>: The level-sense information, encoded as follows:
|
|
|
+ 0 = low-to-high edge triggered
|
|
|
+ 1 = active low level-sensitive
|
|
|
+ 2 = active high level-sensitive
|
|
|
+ 3 = high-to-low edge triggered
|
|
|
+
|
|
|
+* Examples
|
|
|
+
|
|
|
+Example 1:
|
|
|
+
|
|
|
+ /*
|
|
|
+ * An Open PIC interrupt controller
|
|
|
+ */
|
|
|
+ mpic: pic@40000 {
|
|
|
+ // This is an interrupt controller node.
|
|
|
+ interrupt-controller;
|
|
|
+
|
|
|
+ // No address cells so that 'interrupt-map' nodes which reference
|
|
|
+ // this Open PIC node do not need a parent address specifier.
|
|
|
+ #address-cells = <0>;
|
|
|
+
|
|
|
+ // Two cells to encode interrupt sources.
|
|
|
+ #interrupt-cells = <2>;
|
|
|
+
|
|
|
+ // Offset address of 0x40000 and size of 0x40000.
|
|
|
+ reg = <0x40000 0x40000>;
|
|
|
+
|
|
|
+ // Compatible with Open PIC.
|
|
|
+ compatible = "open-pic";
|
|
|
+
|
|
|
+ // The PIC shall not be reset.
|
|
|
+ pic-no-reset;
|
|
|
+ };
|
|
|
+
|
|
|
+Example 2:
|
|
|
+
|
|
|
+ /*
|
|
|
+ * An interrupt generating device that is wired to an Open PIC.
|
|
|
+ */
|
|
|
+ serial0: serial@4500 {
|
|
|
+ // Interrupt source '42' that is active high level-sensitive.
|
|
|
+ // Note that there are only two cells as specified in the interrupt
|
|
|
+ // parent's '#interrupt-cells' property.
|
|
|
+ interrupts = <42 2>;
|
|
|
+
|
|
|
+ // The interrupt controller that this device is wired to.
|
|
|
+ interrupt-parent = <&mpic>;
|
|
|
+ };
|
|
|
+
|
|
|
+* References
|
|
|
+
|
|
|
+[1] Power.org (TM) Standard for Embedded Power Architecture (TM) Platform
|
|
|
+ Requirements (ePAPR), Version 1.0, July 2008.
|
|
|
+ (http://www.power.org/resources/downloads/Power_ePAPR_APPROVED_v1.0.pdf)
|
|
|
+
|