1 Microchip PIC32 Interrupt Controller 2 ==================================== 3 4 The Microchip PIC32 contains an Enhanced Vectored Interrupt Controller (EVIC). 5 It handles all internal and external interrupts. This controller exists outside 6 of the CPU and is the arbitrator of all interrupts (including interrupts from 7 the CPU itself) before they are presented to the CPU. 8 9 External interrupts have a software configurable edge polarity. Non external 10 interrupts have a type and polarity that is determined by the source of the 11 interrupt. 12 13 Required properties 14 ------------------- 15 16 - compatible: Should be "microchip,pic32mzda-evic" 17 - reg: Specifies physical base address and size of register range. 18 - interrupt-controller: Identifies the node as an interrupt controller. 19 - #interrupt cells: Specifies the number of cells used to encode an interrupt 20 source connected to this controller. The value shall be 2 and interrupt 21 descriptor shall have the following format: 22 23 <hw_irq irq_type> 24 25 hw_irq - represents the hardware interrupt number as in the data sheet. 26 irq_type - is used to describe the type and polarity of an interrupt. For 27 internal interrupts use IRQ_TYPE_EDGE_RISING for non persistent interrupts and 28 IRQ_TYPE_LEVEL_HIGH for persistent interrupts. For external interrupts use 29 IRQ_TYPE_EDGE_RISING or IRQ_TYPE_EDGE_FALLING to select the desired polarity. 30 31 Optional properties 32 ------------------- 33 - microchip,external-irqs: u32 array of external interrupts with software 34 polarity configuration. This array corresponds to the bits in the INTCON 35 SFR. 36 37 Example 38 ------- 39 40 evic: interrupt-controller@1f810000 { 41 compatible = "microchip,pic32mzda-evic"; 42 interrupt-controller; 43 #interrupt-cells = <2>; 44 reg = <0x1f810000 0x1000>; 45 microchip,external-irqs = <3 8 13 18 23>; 46 }; 47 48 Each device/peripheral must request its interrupt line with the associated type 49 and polarity. 50 51 Internal interrupt DTS snippet 52 ------------------------------ 53 54 device@1f800000 { 55 ... 56 interrupts = <113 IRQ_TYPE_LEVEL_HIGH>; 57 ... 58 }; 59 60 External interrupt DTS snippet 61 ------------------------------ 62 63 device@1f800000 { 64 ... 65 interrupts = <3 IRQ_TYPE_EDGE_RISING>; 66 ... 67 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.