snps,archs-idu-intc.txt 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. * ARC-HS Interrupt Distribution Unit
  2. This optional 2nd level interrupt controller can be used in SMP configurations for
  3. dynamic IRQ routing, load balancing of common/external IRQs towards core intc.
  4. Properties:
  5. - compatible: "snps,archs-idu-intc"
  6. - interrupt-controller: This is an interrupt controller.
  7. - interrupt-parent: <reference to parent core intc>
  8. - #interrupt-cells: Must be <2>.
  9. - interrupts: <...> specifies the upstream core irqs
  10. First cell specifies the "common" IRQ from peripheral to IDU
  11. Second cell specifies the irq distribution mode to cores
  12. 0=Round Robin; 1=cpu0, 2=cpu1, 4=cpu2, 8=cpu3
  13. intc accessed via the special ARC AUX register interface, hence "reg" property
  14. is not specified.
  15. Example:
  16. core_intc: core-interrupt-controller {
  17. compatible = "snps,archs-intc";
  18. interrupt-controller;
  19. #interrupt-cells = <1>;
  20. };
  21. idu_intc: idu-interrupt-controller {
  22. compatible = "snps,archs-idu-intc";
  23. interrupt-controller;
  24. interrupt-parent = <&core_intc>;
  25. /*
  26. * <hwirq distribution>
  27. * distribution: 0=RR; 1=cpu0, 2=cpu1, 4=cpu2, 8=cpu3
  28. */
  29. #interrupt-cells = <2>;
  30. /* upstream core irqs: downstream these are "COMMON" irq 0,1.. */
  31. interrupts = <24 25 26 27 28 29 30 31>;
  32. };
  33. some_device: serial@c0fc1000 {
  34. interrupt-parent = <&idu_intc>;
  35. interrupts = <0 0>; /* upstream idu IRQ #24, Round Robin */
  36. };