fsl,irqsteer.yaml 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/interrupt-controller/fsl,irqsteer.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Freescale IRQSTEER Interrupt Multiplexer
  7. maintainers:
  8. - Lucas Stach <l.stach@pengutronix.de>
  9. properties:
  10. compatible:
  11. oneOf:
  12. - const: fsl,imx-irqsteer
  13. - items:
  14. - enum:
  15. - fsl,imx8m-irqsteer
  16. - fsl,imx8mp-irqsteer
  17. - fsl,imx8qm-irqsteer
  18. - fsl,imx8qxp-irqsteer
  19. - const: fsl,imx-irqsteer
  20. reg:
  21. maxItems: 1
  22. interrupts:
  23. description: |
  24. should contain the up to 8 parent interrupt lines used to multiplex
  25. the input interrupts. They should be specified sequentially from
  26. output 0 to 7.
  27. items:
  28. - description: output interrupt 0
  29. - description: output interrupt 1
  30. - description: output interrupt 2
  31. - description: output interrupt 3
  32. - description: output interrupt 4
  33. - description: output interrupt 5
  34. - description: output interrupt 6
  35. - description: output interrupt 7
  36. minItems: 1
  37. clocks:
  38. maxItems: 1
  39. clock-names:
  40. const: ipg
  41. power-domains:
  42. maxItems: 1
  43. interrupt-controller: true
  44. "#interrupt-cells":
  45. const: 1
  46. fsl,channel:
  47. $ref: /schemas/types.yaml#/definitions/uint32
  48. description: |
  49. u32 value representing the output channel that all input IRQs should be
  50. steered into.
  51. fsl,num-irqs:
  52. $ref: /schemas/types.yaml#/definitions/uint32
  53. description: |
  54. u32 value representing the number of input interrupts of this channel,
  55. should be multiple of 32 input interrupts and up to 512 interrupts.
  56. required:
  57. - compatible
  58. - reg
  59. - interrupts
  60. - clocks
  61. - clock-names
  62. - interrupt-controller
  63. - "#interrupt-cells"
  64. - fsl,channel
  65. - fsl,num-irqs
  66. allOf:
  67. - if:
  68. properties:
  69. compatible:
  70. contains:
  71. enum:
  72. - fsl,imx8mp-irqsteer
  73. - fsl,imx8qm-irqsteer
  74. - fsl,imx8qxp-irqsteer
  75. then:
  76. required:
  77. - power-domains
  78. else:
  79. properties:
  80. power-domains: false
  81. additionalProperties: false
  82. examples:
  83. - |
  84. #include <dt-bindings/clock/imx8mq-clock.h>
  85. #include <dt-bindings/interrupt-controller/arm-gic.h>
  86. interrupt-controller@32e2d000 {
  87. compatible = "fsl,imx-irqsteer";
  88. reg = <0x32e2d000 0x1000>;
  89. interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
  90. clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>;
  91. clock-names = "ipg";
  92. fsl,channel = <0>;
  93. fsl,num-irqs = <64>;
  94. interrupt-controller;
  95. #interrupt-cells = <1>;
  96. };