dp-controller.yaml 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391
  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/dp-controller.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: MSM Display Port Controller
  7. maintainers:
  8. - Kuogee Hsieh <quic_khsieh@quicinc.com>
  9. - Abhinav Kumar <quic_abhinavk@quicinc.com>
  10. description: |
  11. Device tree bindings for DisplayPort host controller for MSM targets
  12. that are compatible with VESA DisplayPort interface specification.
  13. properties:
  14. compatible:
  15. oneOf:
  16. - enum:
  17. - qcom,glymur-dp
  18. - qcom,sa8775p-dp
  19. - qcom,sc7180-dp
  20. - qcom,sc7280-dp
  21. - qcom,sc7280-edp
  22. - qcom,sc8180x-dp
  23. - qcom,sc8180x-edp
  24. - qcom,sc8280xp-dp
  25. - qcom,sc8280xp-edp
  26. - qcom,sdm845-dp
  27. - qcom,sm8350-dp
  28. - qcom,sm8650-dp
  29. - qcom,x1e80100-dp
  30. - items:
  31. - enum:
  32. - qcom,qcs8300-dp
  33. - const: qcom,sa8775p-dp
  34. - items:
  35. - enum:
  36. - qcom,sm6350-dp
  37. - const: qcom,sc7180-dp
  38. # deprecated entry for compatibility with old DT
  39. - items:
  40. - enum:
  41. - qcom,sm6350-dp
  42. - const: qcom,sm8350-dp
  43. deprecated: true
  44. - items:
  45. - enum:
  46. - qcom,sar2130p-dp
  47. - qcom,sm7150-dp
  48. - qcom,sm8150-dp
  49. - qcom,sm8250-dp
  50. - qcom,sm8450-dp
  51. - qcom,sm8550-dp
  52. - const: qcom,sm8350-dp
  53. - items:
  54. - enum:
  55. - qcom,sm6150-dp
  56. - const: qcom,sm8150-dp
  57. - const: qcom,sm8350-dp
  58. - items:
  59. - enum:
  60. - qcom,sm8750-dp
  61. - const: qcom,sm8650-dp
  62. reg:
  63. minItems: 4
  64. items:
  65. - description: ahb register block
  66. - description: aux register block
  67. - description: link register block
  68. - description: p0 register block
  69. - description: p1 register block
  70. - description: p2 register block
  71. - description: p3 register block
  72. - description: mst2link register block
  73. - description: mst3link register block
  74. interrupts:
  75. maxItems: 1
  76. clocks:
  77. minItems: 5
  78. items:
  79. - description: AHB clock to enable register access
  80. - description: Display Port AUX clock
  81. - description: Display Port Link clock
  82. - description: Link interface clock between DP and PHY
  83. - description: Display Port stream 0 Pixel clock
  84. - description: Display Port stream 1 Pixel clock
  85. - description: Display Port stream 2 Pixel clock
  86. - description: Display Port stream 3 Pixel clock
  87. clock-names:
  88. minItems: 5
  89. items:
  90. - const: core_iface
  91. - const: core_aux
  92. - const: ctrl_link
  93. - const: ctrl_link_iface
  94. - const: stream_pixel
  95. - const: stream_1_pixel
  96. - const: stream_2_pixel
  97. - const: stream_3_pixel
  98. phys:
  99. maxItems: 1
  100. phy-names:
  101. items:
  102. - const: dp
  103. operating-points-v2: true
  104. opp-table:
  105. type: object
  106. power-domains:
  107. maxItems: 1
  108. aux-bus:
  109. $ref: /schemas/display/dp-aux-bus.yaml#
  110. data-lanes:
  111. $ref: /schemas/types.yaml#/definitions/uint32-array
  112. deprecated: true
  113. minItems: 1
  114. maxItems: 4
  115. items:
  116. maximum: 3
  117. "#sound-dai-cells":
  118. const: 0
  119. vdda-0p9-supply:
  120. deprecated: true
  121. vdda-1p2-supply:
  122. deprecated: true
  123. ports:
  124. $ref: /schemas/graph.yaml#/properties/ports
  125. properties:
  126. port@0:
  127. $ref: /schemas/graph.yaml#/properties/port
  128. description: Input endpoint of the controller
  129. port@1:
  130. $ref: /schemas/graph.yaml#/$defs/port-base
  131. unevaluatedProperties: false
  132. description: Output endpoint of the controller
  133. properties:
  134. endpoint:
  135. $ref: /schemas/media/video-interfaces.yaml#
  136. unevaluatedProperties: false
  137. properties:
  138. data-lanes:
  139. minItems: 1
  140. maxItems: 4
  141. items:
  142. enum: [ 0, 1, 2, 3 ]
  143. link-frequencies:
  144. minItems: 1
  145. maxItems: 4
  146. items:
  147. enum: [ 1620000000, 2700000000, 5400000000, 8100000000 ]
  148. required:
  149. - port@0
  150. - port@1
  151. required:
  152. - compatible
  153. - reg
  154. - interrupts
  155. - clocks
  156. - clock-names
  157. - phys
  158. - phy-names
  159. - power-domains
  160. - ports
  161. allOf:
  162. # AUX BUS does not exist on DP controllers
  163. # Audio output also is present only on DP output
  164. - if:
  165. properties:
  166. compatible:
  167. contains:
  168. enum:
  169. - qcom,sc7280-edp
  170. - qcom,sc8180x-edp
  171. - qcom,sc8280xp-edp
  172. then:
  173. properties:
  174. "#sound-dai-cells": false
  175. else:
  176. if:
  177. properties:
  178. compatible:
  179. contains:
  180. enum:
  181. - qcom,glymur-dp
  182. - qcom,sa8775p-dp
  183. - qcom,x1e80100-dp
  184. then:
  185. $ref: /schemas/sound/dai-common.yaml#
  186. oneOf:
  187. - required:
  188. - aux-bus
  189. - required:
  190. - "#sound-dai-cells"
  191. else:
  192. properties:
  193. aux-bus: false
  194. required:
  195. - "#sound-dai-cells"
  196. - if:
  197. properties:
  198. compatible:
  199. contains:
  200. enum:
  201. # these platforms support SST only
  202. - qcom,sc7180-dp
  203. - qcom,sc7280-dp
  204. - qcom,sc7280-edp
  205. - qcom,sc8180x-edp
  206. - qcom,sc8280xp-edp
  207. then:
  208. properties:
  209. reg:
  210. minItems: 5
  211. maxItems: 5
  212. clocks:
  213. minItems: 5
  214. maxItems: 5
  215. clocks-names:
  216. minItems: 5
  217. maxItems: 5
  218. - if:
  219. properties:
  220. compatible:
  221. contains:
  222. enum:
  223. # these platforms support 2 streams MST on some interfaces,
  224. # others are SST only
  225. - qcom,sc8280xp-dp
  226. - qcom,x1e80100-dp
  227. then:
  228. properties:
  229. reg:
  230. minItems: 5
  231. maxItems: 5
  232. clocks:
  233. minItems: 5
  234. maxItems: 6
  235. clocks-names:
  236. minItems: 5
  237. maxItems: 6
  238. - if:
  239. properties:
  240. compatible:
  241. contains:
  242. # 2 streams MST
  243. enum:
  244. - qcom,sc8180x-dp
  245. - qcom,sdm845-dp
  246. - qcom,sm8350-dp
  247. - qcom,sm8650-dp
  248. then:
  249. properties:
  250. reg:
  251. minItems: 5
  252. maxItems: 5
  253. clocks:
  254. minItems: 6
  255. maxItems: 6
  256. clocks-names:
  257. minItems: 6
  258. maxItems: 6
  259. - if:
  260. properties:
  261. compatible:
  262. contains:
  263. enum:
  264. # these platforms support 4 stream MST on first DP,
  265. # 2 streams MST on the second one.
  266. - qcom,sa8775p-dp
  267. then:
  268. properties:
  269. reg:
  270. minItems: 9
  271. maxItems: 9
  272. clocks:
  273. minItems: 6
  274. maxItems: 8
  275. clocks-names:
  276. minItems: 6
  277. maxItems: 8
  278. - if:
  279. properties:
  280. compatible:
  281. contains:
  282. enum:
  283. # these platforms support 2 streams MST on some interfaces,
  284. # others are SST only, but all controllers have 4 ports
  285. - qcom,glymur-dp
  286. then:
  287. properties:
  288. reg:
  289. minItems: 9
  290. maxItems: 9
  291. clocks:
  292. minItems: 5
  293. maxItems: 6
  294. clocks-names:
  295. minItems: 5
  296. maxItems: 6
  297. unevaluatedProperties: false
  298. examples:
  299. - |
  300. #include <dt-bindings/interrupt-controller/arm-gic.h>
  301. #include <dt-bindings/clock/qcom,dispcc-sc7180.h>
  302. #include <dt-bindings/power/qcom-rpmpd.h>
  303. displayport-controller@ae90000 {
  304. compatible = "qcom,sc7180-dp";
  305. reg = <0xae90000 0x200>,
  306. <0xae90200 0x200>,
  307. <0xae90400 0xc00>,
  308. <0xae91000 0x400>,
  309. <0xae91400 0x400>;
  310. interrupt-parent = <&mdss>;
  311. interrupts = <12>;
  312. clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
  313. <&dispcc DISP_CC_MDSS_DP_AUX_CLK>,
  314. <&dispcc DISP_CC_MDSS_DP_LINK_CLK>,
  315. <&dispcc DISP_CC_MDSS_DP_LINK_INTF_CLK>,
  316. <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK>;
  317. clock-names = "core_iface", "core_aux",
  318. "ctrl_link",
  319. "ctrl_link_iface", "stream_pixel";
  320. assigned-clocks = <&dispcc DISP_CC_MDSS_DP_LINK_CLK_SRC>,
  321. <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK_SRC>;
  322. assigned-clock-parents = <&dp_phy 0>, <&dp_phy 1>;
  323. phys = <&dp_phy>;
  324. phy-names = "dp";
  325. #sound-dai-cells = <0>;
  326. power-domains = <&rpmhpd SC7180_CX>;
  327. ports {
  328. #address-cells = <1>;
  329. #size-cells = <0>;
  330. port@0 {
  331. reg = <0>;
  332. endpoint {
  333. remote-endpoint = <&dpu_intf0_out>;
  334. };
  335. };
  336. port@1 {
  337. reg = <1>;
  338. endpoint {
  339. remote-endpoint = <&typec>;
  340. data-lanes = <0 1>;
  341. link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
  342. };
  343. };
  344. };
  345. };
  346. ...