atmel,aic.yaml 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/interrupt-controller/atmel,aic.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Advanced Interrupt Controller (AIC)
  7. maintainers:
  8. - Nicolas Ferre <nicolas.ferre@microchip.com>
  9. - Dharma balasubiramani <dharma.b@microchip.com>
  10. description:
  11. The Advanced Interrupt Controller (AIC) is an 8-level priority, individually
  12. maskable, vectored interrupt controller providing handling of up to one
  13. hundred and twenty-eight interrupt sources.
  14. properties:
  15. compatible:
  16. enum:
  17. - atmel,at91rm9200-aic
  18. - atmel,sama5d2-aic
  19. - atmel,sama5d3-aic
  20. - atmel,sama5d4-aic
  21. - microchip,sam9x60-aic
  22. reg:
  23. maxItems: 1
  24. interrupt-controller: true
  25. "#interrupt-cells":
  26. const: 3
  27. description: |
  28. The 1st cell is the IRQ number (Peripheral IDentifier on datasheet).
  29. The 2nd cell specifies flags:
  30. bits[3:0] trigger type and level flags:
  31. 1 = low-to-high edge triggered.
  32. 2 = high-to-low edge triggered.
  33. 4 = active high level-sensitive.
  34. 8 = active low level-sensitive.
  35. Valid combinations: 1, 2, 3, 4, 8.
  36. Default for internal sources: 4 (active high).
  37. The 3rd cell specifies irq priority from 0 (lowest) to 7 (highest).
  38. interrupts:
  39. maxItems: 1
  40. atmel,external-irqs:
  41. $ref: /schemas/types.yaml#/definitions/uint32-array
  42. description: u32 array of external irqs.
  43. allOf:
  44. - $ref: /schemas/interrupt-controller.yaml#
  45. - if:
  46. properties:
  47. compatible:
  48. contains:
  49. const: atmel,at91rm9200-aic
  50. then:
  51. properties:
  52. atmel,external-irqs:
  53. minItems: 1
  54. maxItems: 7
  55. else:
  56. properties:
  57. atmel,external-irqs:
  58. minItems: 1
  59. maxItems: 1
  60. required:
  61. - compatible
  62. - reg
  63. - interrupt-controller
  64. - "#interrupt-cells"
  65. - atmel,external-irqs
  66. unevaluatedProperties: false
  67. examples:
  68. - |
  69. interrupt-controller@fffff000 {
  70. compatible = "atmel,at91rm9200-aic";
  71. reg = <0xfffff000 0x200>;
  72. interrupt-controller;
  73. #interrupt-cells = <3>;
  74. atmel,external-irqs = <31>;
  75. };
  76. ...