123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- * 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)
|