18c2ecf20Sopenharmony_ci* ARM Versatile FPGA interrupt controller
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciOne or more FPGA IRQ controllers can be synthesized in an ARM reference board
48c2ecf20Sopenharmony_cisuch as the Integrator or Versatile family. The output of these different
58c2ecf20Sopenharmony_cicontrollers are OR:ed together and fed to the CPU tile's IRQ input. Each
68c2ecf20Sopenharmony_ciinstance can handle up to 32 interrupts.
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ciRequired properties:
98c2ecf20Sopenharmony_ci- compatible: "arm,versatile-fpga-irq" or "oxsemi,ox810se-rps-irq"
108c2ecf20Sopenharmony_ci- interrupt-controller: Identifies the node as an interrupt controller
118c2ecf20Sopenharmony_ci- #interrupt-cells: The number of cells to define the interrupts.  Must be 1
128c2ecf20Sopenharmony_ci  as the FPGA IRQ controller has no configuration options for interrupt
138c2ecf20Sopenharmony_ci  sources.  The cell is a u32 and defines the interrupt number.
148c2ecf20Sopenharmony_ci- reg: The register bank for the FPGA interrupt controller.
158c2ecf20Sopenharmony_ci- clear-mask: a u32 number representing the mask written to clear all IRQs
168c2ecf20Sopenharmony_ci  on the controller at boot for example.
178c2ecf20Sopenharmony_ci- valid-mask: a u32 number representing a bit mask determining which of
188c2ecf20Sopenharmony_ci  the interrupts are valid. Unconnected/unused lines are set to 0, and
198c2ecf20Sopenharmony_ci  the system till not make it possible for devices to request these
208c2ecf20Sopenharmony_ci  interrupts.
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ciExample:
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_cipic: pic@14000000 {
258c2ecf20Sopenharmony_ci        compatible = "arm,versatile-fpga-irq";
268c2ecf20Sopenharmony_ci        #interrupt-cells = <1>;
278c2ecf20Sopenharmony_ci        interrupt-controller;
288c2ecf20Sopenharmony_ci        reg = <0x14000000 0x100>;
298c2ecf20Sopenharmony_ci        clear-mask = <0xffffffff>;
308c2ecf20Sopenharmony_ci        valid-mask = <0x003fffff>;
318c2ecf20Sopenharmony_ci};
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ciOptional properties:
348c2ecf20Sopenharmony_ci- interrupts: if the FPGA IRQ controller is cascaded, i.e. if its IRQ
358c2ecf20Sopenharmony_ci  output is simply connected to the input of another IRQ controller,
368c2ecf20Sopenharmony_ci  then the parent IRQ shall be specified in this property.
37