fsl,lcdif.yaml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/display/fsl,lcdif.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Freescale/NXP i.MX LCD Interface (LCDIF)
  7. maintainers:
  8. - Marek Vasut <marex@denx.de>
  9. - Stefan Agner <stefan@agner.ch>
  10. description: |
  11. (e)LCDIF display controller found in the Freescale/NXP i.MX SoCs.
  12. properties:
  13. compatible:
  14. oneOf:
  15. - enum:
  16. - fsl,imx23-lcdif
  17. - fsl,imx28-lcdif
  18. - fsl,imx6sx-lcdif
  19. - fsl,imx8mp-lcdif
  20. - fsl,imx93-lcdif
  21. - items:
  22. - enum:
  23. - fsl,imx6sl-lcdif
  24. - fsl,imx6sll-lcdif
  25. - fsl,imx6ul-lcdif
  26. - fsl,imx7d-lcdif
  27. - fsl,imx8mm-lcdif
  28. - fsl,imx8mn-lcdif
  29. - fsl,imx8mq-lcdif
  30. - const: fsl,imx6sx-lcdif
  31. reg:
  32. maxItems: 1
  33. clocks:
  34. items:
  35. - description: Pixel clock
  36. - description: Bus clock
  37. - description: Display AXI clock
  38. minItems: 1
  39. clock-names:
  40. items:
  41. - const: pix
  42. - const: axi
  43. - const: disp_axi
  44. minItems: 1
  45. dmas:
  46. items:
  47. - description: DMA specifier for the RX DMA channel.
  48. dma-names:
  49. items:
  50. - const: rx
  51. interrupts:
  52. items:
  53. - description: LCDIF DMA interrupt
  54. - description: LCDIF Error interrupt
  55. minItems: 1
  56. power-domains:
  57. maxItems: 1
  58. port:
  59. $ref: /schemas/graph.yaml#/properties/port
  60. description: The LCDIF output port
  61. display:
  62. $ref: /schemas/types.yaml#/definitions/phandle
  63. description: phandle to display panel
  64. deprecated: true
  65. display0:
  66. $ref: panel/panel-common.yaml#
  67. deprecated: true
  68. lcd-supply:
  69. deprecated: true
  70. required:
  71. - compatible
  72. - reg
  73. - clocks
  74. - interrupts
  75. additionalProperties: false
  76. allOf:
  77. - if:
  78. properties:
  79. compatible:
  80. contains:
  81. const: fsl,imx6sx-lcdif
  82. then:
  83. properties:
  84. clocks:
  85. minItems: 2
  86. maxItems: 3
  87. clock-names:
  88. minItems: 2
  89. maxItems: 3
  90. required:
  91. - clock-names
  92. - if:
  93. properties:
  94. compatible:
  95. contains:
  96. enum:
  97. - fsl,imx8mp-lcdif
  98. - fsl,imx93-lcdif
  99. then:
  100. properties:
  101. clocks:
  102. minItems: 3
  103. maxItems: 3
  104. clock-names:
  105. minItems: 3
  106. maxItems: 3
  107. required:
  108. - clock-names
  109. - if:
  110. not:
  111. properties:
  112. compatible:
  113. contains:
  114. enum:
  115. - fsl,imx6sx-lcdif
  116. - fsl,imx8mp-lcdif
  117. - fsl,imx93-lcdif
  118. then:
  119. properties:
  120. clocks:
  121. maxItems: 1
  122. clock-names:
  123. maxItems: 1
  124. - if:
  125. properties:
  126. compatible:
  127. const: fsl,imx6sx-lcdif
  128. then:
  129. required:
  130. - power-domains
  131. - if:
  132. properties:
  133. compatible:
  134. contains:
  135. enum:
  136. - fsl,imx6sl-lcdif
  137. - fsl,imx8mm-lcdif
  138. - fsl,imx8mn-lcdif
  139. - fsl,imx8mp-lcdif
  140. - fsl,imx93-lcdif
  141. then:
  142. required:
  143. - power-domains
  144. - if:
  145. properties:
  146. compatible:
  147. contains:
  148. enum:
  149. - fsl,imx23-lcdif
  150. then:
  151. properties:
  152. interrupts:
  153. minItems: 2
  154. maxItems: 2
  155. else:
  156. properties:
  157. interrupts:
  158. maxItems: 1
  159. - if:
  160. not:
  161. properties:
  162. compatible:
  163. contains:
  164. enum:
  165. - fsl,imx28-lcdif
  166. then:
  167. properties:
  168. dmas: false
  169. dma-names: false
  170. display: false
  171. display0: false
  172. lcd-supply: false
  173. required:
  174. - port
  175. examples:
  176. - |
  177. #include <dt-bindings/clock/imx6sx-clock.h>
  178. #include <dt-bindings/interrupt-controller/arm-gic.h>
  179. display-controller@2220000 {
  180. compatible = "fsl,imx6sx-lcdif";
  181. reg = <0x02220000 0x4000>;
  182. interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
  183. clocks = <&clks IMX6SX_CLK_LCDIF1_PIX>,
  184. <&clks IMX6SX_CLK_LCDIF_APB>,
  185. <&clks IMX6SX_CLK_DISPLAY_AXI>;
  186. clock-names = "pix", "axi", "disp_axi";
  187. power-domains = <&pd_disp>;
  188. port {
  189. endpoint {
  190. remote-endpoint = <&panel_in>;
  191. };
  192. };
  193. };
  194. ...