qcom,mdss.yaml 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/display/msm/qcom,mdss.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Qualcomm Mobile Display SubSystem (MDSS)
  7. maintainers:
  8. - Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
  9. - Rob Clark <robdclark@gmail.com>
  10. description:
  11. This is the bindings documentation for the Mobile Display Subsystem(MDSS) that
  12. encapsulates sub-blocks like MDP5, DSI, HDMI, eDP, etc.
  13. properties:
  14. $nodename:
  15. pattern: "^display-subsystem@[0-9a-f]+$"
  16. compatible:
  17. enum:
  18. - qcom,mdss
  19. reg:
  20. minItems: 2
  21. maxItems: 3
  22. reg-names:
  23. minItems: 2
  24. items:
  25. - const: mdss_phys
  26. - const: vbif_phys
  27. - const: vbif_nrt_phys
  28. interrupts:
  29. maxItems: 1
  30. interrupt-controller: true
  31. "#interrupt-cells":
  32. const: 1
  33. power-domains:
  34. maxItems: 1
  35. description: |
  36. The MDSS power domain provided by GCC
  37. clocks:
  38. oneOf:
  39. - minItems: 3
  40. items:
  41. - description: Display abh clock
  42. - description: Display axi clock
  43. - description: Display vsync clock
  44. - description: Display core clock
  45. - minItems: 1
  46. items:
  47. - description: Display abh clock
  48. - description: Display core clock
  49. clock-names:
  50. oneOf:
  51. - minItems: 3
  52. items:
  53. - const: iface
  54. - const: bus
  55. - const: vsync
  56. - const: core
  57. - minItems: 1
  58. items:
  59. - const: iface
  60. - const: core
  61. "#address-cells":
  62. const: 1
  63. "#size-cells":
  64. const: 1
  65. ranges: true
  66. resets:
  67. items:
  68. - description: MDSS_CORE reset
  69. required:
  70. - compatible
  71. - reg
  72. - reg-names
  73. - interrupts
  74. - interrupt-controller
  75. - "#interrupt-cells"
  76. - power-domains
  77. - clocks
  78. - clock-names
  79. - "#address-cells"
  80. - "#size-cells"
  81. - ranges
  82. patternProperties:
  83. "^display-controller@[1-9a-f][0-9a-f]*$":
  84. type: object
  85. additionalProperties: true
  86. properties:
  87. compatible:
  88. contains:
  89. const: qcom,mdp5
  90. "^dsi@[1-9a-f][0-9a-f]*$":
  91. type: object
  92. additionalProperties: true
  93. properties:
  94. compatible:
  95. contains:
  96. const: qcom,mdss-dsi-ctrl
  97. "^phy@[1-9a-f][0-9a-f]*$":
  98. type: object
  99. additionalProperties: true
  100. properties:
  101. compatible:
  102. enum:
  103. - qcom,dsi-phy-14nm
  104. - qcom,dsi-phy-14nm-660
  105. - qcom,dsi-phy-14nm-8953
  106. - qcom,dsi-phy-20nm
  107. - qcom,dsi-phy-28nm-8226
  108. - qcom,dsi-phy-28nm-8937
  109. - qcom,dsi-phy-28nm-hpm
  110. - qcom,dsi-phy-28nm-hpm-fam-b
  111. - qcom,dsi-phy-28nm-lp
  112. - qcom,hdmi-phy-8084
  113. - qcom,hdmi-phy-8660
  114. - qcom,hdmi-phy-8960
  115. - qcom,hdmi-phy-8974
  116. - qcom,hdmi-phy-8996
  117. "^hdmi-tx@[1-9a-f][0-9a-f]*$":
  118. type: object
  119. additionalProperties: true
  120. properties:
  121. compatible:
  122. enum:
  123. - qcom,hdmi-tx-8084
  124. - qcom,hdmi-tx-8660
  125. - qcom,hdmi-tx-8960
  126. - qcom,hdmi-tx-8974
  127. - qcom,hdmi-tx-8994
  128. - qcom,hdmi-tx-8996
  129. additionalProperties: false
  130. examples:
  131. - |
  132. #include <dt-bindings/clock/qcom,gcc-msm8916.h>
  133. #include <dt-bindings/interrupt-controller/arm-gic.h>
  134. display-subsystem@1a00000 {
  135. compatible = "qcom,mdss";
  136. reg = <0x1a00000 0x1000>,
  137. <0x1ac8000 0x3000>;
  138. reg-names = "mdss_phys", "vbif_phys";
  139. power-domains = <&gcc MDSS_GDSC>;
  140. clocks = <&gcc GCC_MDSS_AHB_CLK>,
  141. <&gcc GCC_MDSS_AXI_CLK>,
  142. <&gcc GCC_MDSS_VSYNC_CLK>;
  143. clock-names = "iface",
  144. "bus",
  145. "vsync";
  146. interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
  147. interrupt-controller;
  148. #interrupt-cells = <1>;
  149. #address-cells = <1>;
  150. #size-cells = <1>;
  151. ranges;
  152. display-controller@1a01000 {
  153. compatible = "qcom,msm8916-mdp5", "qcom,mdp5";
  154. reg = <0x01a01000 0x89000>;
  155. reg-names = "mdp_phys";
  156. interrupt-parent = <&mdss>;
  157. interrupts = <0>;
  158. clocks = <&gcc GCC_MDSS_AHB_CLK>,
  159. <&gcc GCC_MDSS_AXI_CLK>,
  160. <&gcc GCC_MDSS_MDP_CLK>,
  161. <&gcc GCC_MDSS_VSYNC_CLK>;
  162. clock-names = "iface",
  163. "bus",
  164. "core",
  165. "vsync";
  166. iommus = <&apps_iommu 4>;
  167. ports {
  168. #address-cells = <1>;
  169. #size-cells = <0>;
  170. port@0 {
  171. reg = <0>;
  172. mdp5_intf1_out: endpoint {
  173. remote-endpoint = <&dsi0_in>;
  174. };
  175. };
  176. };
  177. };
  178. };
  179. ...