qcom,sm6115-mdss.yaml 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  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,sm6115-mdss.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Qualcomm SM6115 Display MDSS
  7. maintainers:
  8. - Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
  9. description:
  10. Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates
  11. sub-blocks like DPU display controller and DSI. Device tree bindings of MDSS
  12. are mentioned for SM6115 target.
  13. $ref: /schemas/display/msm/mdss-common.yaml#
  14. properties:
  15. compatible:
  16. const: qcom,sm6115-mdss
  17. clocks:
  18. items:
  19. - description: Display AHB clock from gcc
  20. - description: Display AXI clock
  21. - description: Display core clock
  22. iommus:
  23. maxItems: 2
  24. interconnects:
  25. items:
  26. - description: Interconnect path from mdp0 port to the data bus
  27. - description: Interconnect path from CPU to the reg bus
  28. interconnect-names:
  29. items:
  30. - const: mdp0-mem
  31. - const: cpu-cfg
  32. patternProperties:
  33. "^display-controller@[0-9a-f]+$":
  34. type: object
  35. additionalProperties: true
  36. properties:
  37. compatible:
  38. const: qcom,sm6115-dpu
  39. "^dsi@[0-9a-f]+$":
  40. type: object
  41. additionalProperties: true
  42. properties:
  43. compatible:
  44. oneOf:
  45. - items:
  46. - const: qcom,sm6115-dsi-ctrl
  47. - const: qcom,mdss-dsi-ctrl
  48. - description: Old binding, please don't use
  49. deprecated: true
  50. const: qcom,dsi-ctrl-6g-qcm2290
  51. "^phy@[0-9a-f]+$":
  52. type: object
  53. additionalProperties: true
  54. properties:
  55. compatible:
  56. const: qcom,dsi-phy-14nm-2290
  57. required:
  58. - compatible
  59. unevaluatedProperties: false
  60. examples:
  61. - |
  62. #include <dt-bindings/clock/qcom,sm6115-dispcc.h>
  63. #include <dt-bindings/clock/qcom,gcc-sm6115.h>
  64. #include <dt-bindings/clock/qcom,rpmcc.h>
  65. #include <dt-bindings/interrupt-controller/arm-gic.h>
  66. #include <dt-bindings/power/qcom-rpmpd.h>
  67. display-subsystem@5e00000 {
  68. #address-cells = <1>;
  69. #size-cells = <1>;
  70. compatible = "qcom,sm6115-mdss";
  71. reg = <0x05e00000 0x1000>;
  72. reg-names = "mdss";
  73. power-domains = <&dispcc MDSS_GDSC>;
  74. clocks = <&gcc GCC_DISP_AHB_CLK>,
  75. <&gcc GCC_DISP_HF_AXI_CLK>,
  76. <&dispcc DISP_CC_MDSS_MDP_CLK>;
  77. interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
  78. interrupt-controller;
  79. #interrupt-cells = <1>;
  80. iommus = <&apps_smmu 0x420 0x2>,
  81. <&apps_smmu 0x421 0x0>;
  82. ranges;
  83. display-controller@5e01000 {
  84. compatible = "qcom,sm6115-dpu";
  85. reg = <0x05e01000 0x8f000>,
  86. <0x05eb0000 0x2008>;
  87. reg-names = "mdp", "vbif";
  88. clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
  89. <&dispcc DISP_CC_MDSS_AHB_CLK>,
  90. <&dispcc DISP_CC_MDSS_MDP_CLK>,
  91. <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
  92. <&dispcc DISP_CC_MDSS_ROT_CLK>,
  93. <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
  94. clock-names = "bus", "iface", "core", "lut", "rot", "vsync";
  95. operating-points-v2 = <&mdp_opp_table>;
  96. power-domains = <&rpmpd SM6115_VDDCX>;
  97. interrupt-parent = <&mdss>;
  98. interrupts = <0>;
  99. ports {
  100. #address-cells = <1>;
  101. #size-cells = <0>;
  102. port@0 {
  103. reg = <0>;
  104. dpu_intf1_out: endpoint {
  105. remote-endpoint = <&dsi0_in>;
  106. };
  107. };
  108. };
  109. };
  110. dsi@5e94000 {
  111. compatible = "qcom,sm6115-dsi-ctrl", "qcom,mdss-dsi-ctrl";
  112. reg = <0x05e94000 0x400>;
  113. reg-names = "dsi_ctrl";
  114. interrupt-parent = <&mdss>;
  115. interrupts = <4>;
  116. clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
  117. <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
  118. <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
  119. <&dispcc DISP_CC_MDSS_ESC0_CLK>,
  120. <&dispcc DISP_CC_MDSS_AHB_CLK>,
  121. <&gcc GCC_DISP_HF_AXI_CLK>;
  122. clock-names = "byte",
  123. "byte_intf",
  124. "pixel",
  125. "core",
  126. "iface",
  127. "bus";
  128. assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
  129. assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>;
  130. operating-points-v2 = <&dsi_opp_table>;
  131. power-domains = <&rpmpd SM6115_VDDCX>;
  132. phys = <&dsi0_phy>;
  133. #address-cells = <1>;
  134. #size-cells = <0>;
  135. ports {
  136. #address-cells = <1>;
  137. #size-cells = <0>;
  138. port@0 {
  139. reg = <0>;
  140. dsi0_in: endpoint {
  141. remote-endpoint = <&dpu_intf1_out>;
  142. };
  143. };
  144. port@1 {
  145. reg = <1>;
  146. dsi0_out: endpoint {
  147. };
  148. };
  149. };
  150. };
  151. dsi0_phy: phy@5e94400 {
  152. compatible = "qcom,dsi-phy-14nm-2290";
  153. reg = <0x05e94400 0x100>,
  154. <0x05e94500 0x300>,
  155. <0x05e94800 0x188>;
  156. reg-names = "dsi_phy",
  157. "dsi_phy_lane",
  158. "dsi_pll";
  159. #clock-cells = <1>;
  160. #phy-cells = <0>;
  161. clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
  162. clock-names = "iface", "ref";
  163. };
  164. };
  165. ...