qcom,sc8280xp-qmp-pcie-phy.yaml 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/phy/qcom,sc8280xp-qmp-pcie-phy.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Qualcomm QMP PHY controller (PCIe, SC8280XP)
  7. maintainers:
  8. - Vinod Koul <vkoul@kernel.org>
  9. description:
  10. The QMP PHY controller supports physical layer functionality for a number of
  11. controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB.
  12. properties:
  13. compatible:
  14. enum:
  15. - qcom,sa8775p-qmp-gen4x2-pcie-phy
  16. - qcom,sa8775p-qmp-gen4x4-pcie-phy
  17. - qcom,sc8180x-qmp-pcie-phy
  18. - qcom,sc8280xp-qmp-gen3x1-pcie-phy
  19. - qcom,sc8280xp-qmp-gen3x2-pcie-phy
  20. - qcom,sc8280xp-qmp-gen3x4-pcie-phy
  21. - qcom,sdm845-qhp-pcie-phy
  22. - qcom,sdm845-qmp-pcie-phy
  23. - qcom,sdx55-qmp-pcie-phy
  24. - qcom,sdx65-qmp-gen4x2-pcie-phy
  25. - qcom,sm8150-qmp-gen3x1-pcie-phy
  26. - qcom,sm8150-qmp-gen3x2-pcie-phy
  27. - qcom,sm8250-qmp-gen3x1-pcie-phy
  28. - qcom,sm8250-qmp-gen3x2-pcie-phy
  29. - qcom,sm8250-qmp-modem-pcie-phy
  30. - qcom,sm8350-qmp-gen3x1-pcie-phy
  31. - qcom,sm8450-qmp-gen3x1-pcie-phy
  32. - qcom,sm8450-qmp-gen4x2-pcie-phy
  33. - qcom,sm8550-qmp-gen3x2-pcie-phy
  34. - qcom,sm8550-qmp-gen4x2-pcie-phy
  35. - qcom,sm8650-qmp-gen3x2-pcie-phy
  36. - qcom,sm8650-qmp-gen4x2-pcie-phy
  37. - qcom,x1e80100-qmp-gen3x2-pcie-phy
  38. - qcom,x1e80100-qmp-gen4x2-pcie-phy
  39. - qcom,x1e80100-qmp-gen4x4-pcie-phy
  40. reg:
  41. minItems: 1
  42. maxItems: 2
  43. clocks:
  44. minItems: 5
  45. maxItems: 7
  46. clock-names:
  47. minItems: 5
  48. items:
  49. - const: aux
  50. - const: cfg_ahb
  51. - const: ref
  52. - enum: [rchng, refgen]
  53. - const: pipe
  54. - const: pipediv2
  55. - const: phy_aux
  56. power-domains:
  57. maxItems: 1
  58. resets:
  59. minItems: 1
  60. maxItems: 2
  61. reset-names:
  62. minItems: 1
  63. items:
  64. - const: phy
  65. - const: phy_nocsr
  66. vdda-phy-supply: true
  67. vdda-pll-supply: true
  68. vdda-qref-supply: true
  69. qcom,4ln-config-sel:
  70. description: PCIe 4-lane configuration
  71. $ref: /schemas/types.yaml#/definitions/phandle-array
  72. items:
  73. - items:
  74. - description: phandle of TCSR syscon
  75. - description: offset of PCIe 4-lane configuration register
  76. - description: offset of configuration bit for this PHY
  77. "#clock-cells": true
  78. clock-output-names:
  79. maxItems: 1
  80. "#phy-cells":
  81. const: 0
  82. required:
  83. - compatible
  84. - reg
  85. - clocks
  86. - clock-names
  87. - resets
  88. - reset-names
  89. - vdda-phy-supply
  90. - vdda-pll-supply
  91. - "#clock-cells"
  92. - clock-output-names
  93. - "#phy-cells"
  94. additionalProperties: false
  95. allOf:
  96. - if:
  97. properties:
  98. compatible:
  99. contains:
  100. enum:
  101. - qcom,sc8280xp-qmp-gen3x4-pcie-phy
  102. - qcom,x1e80100-qmp-gen4x4-pcie-phy
  103. then:
  104. properties:
  105. reg:
  106. items:
  107. - description: port a
  108. - description: port b
  109. required:
  110. - qcom,4ln-config-sel
  111. else:
  112. properties:
  113. reg:
  114. maxItems: 1
  115. - if:
  116. properties:
  117. compatible:
  118. contains:
  119. enum:
  120. - qcom,sc8180x-qmp-pcie-phy
  121. - qcom,sdm845-qhp-pcie-phy
  122. - qcom,sdm845-qmp-pcie-phy
  123. - qcom,sdx55-qmp-pcie-phy
  124. - qcom,sm8150-qmp-gen3x1-pcie-phy
  125. - qcom,sm8150-qmp-gen3x2-pcie-phy
  126. - qcom,sm8250-qmp-gen3x1-pcie-phy
  127. - qcom,sm8250-qmp-gen3x2-pcie-phy
  128. - qcom,sm8250-qmp-modem-pcie-phy
  129. - qcom,sm8350-qmp-gen3x1-pcie-phy
  130. - qcom,sm8450-qmp-gen3x1-pcie-phy
  131. - qcom,sm8450-qmp-gen3x2-pcie-phy
  132. - qcom,sm8550-qmp-gen3x2-pcie-phy
  133. - qcom,sm8550-qmp-gen4x2-pcie-phy
  134. - qcom,sm8650-qmp-gen3x2-pcie-phy
  135. - qcom,sm8650-qmp-gen4x2-pcie-phy
  136. then:
  137. properties:
  138. clocks:
  139. maxItems: 5
  140. clock-names:
  141. maxItems: 5
  142. - if:
  143. properties:
  144. compatible:
  145. contains:
  146. enum:
  147. - qcom,sc8280xp-qmp-gen3x1-pcie-phy
  148. - qcom,sc8280xp-qmp-gen3x2-pcie-phy
  149. - qcom,sc8280xp-qmp-gen3x4-pcie-phy
  150. - qcom,x1e80100-qmp-gen3x2-pcie-phy
  151. - qcom,x1e80100-qmp-gen4x2-pcie-phy
  152. - qcom,x1e80100-qmp-gen4x4-pcie-phy
  153. then:
  154. properties:
  155. clocks:
  156. minItems: 6
  157. clock-names:
  158. minItems: 6
  159. - if:
  160. properties:
  161. compatible:
  162. contains:
  163. enum:
  164. - qcom,sa8775p-qmp-gen4x2-pcie-phy
  165. - qcom,sa8775p-qmp-gen4x4-pcie-phy
  166. then:
  167. properties:
  168. clocks:
  169. minItems: 7
  170. clock-names:
  171. minItems: 7
  172. - if:
  173. properties:
  174. compatible:
  175. contains:
  176. enum:
  177. - qcom,sm8550-qmp-gen4x2-pcie-phy
  178. - qcom,sm8650-qmp-gen4x2-pcie-phy
  179. - qcom,x1e80100-qmp-gen4x2-pcie-phy
  180. - qcom,x1e80100-qmp-gen4x4-pcie-phy
  181. then:
  182. properties:
  183. resets:
  184. minItems: 2
  185. reset-names:
  186. minItems: 2
  187. else:
  188. properties:
  189. resets:
  190. maxItems: 1
  191. reset-names:
  192. maxItems: 1
  193. - if:
  194. properties:
  195. compatible:
  196. contains:
  197. enum:
  198. - qcom,sm8450-qmp-gen4x2-pcie-phy
  199. - qcom,sm8550-qmp-gen4x2-pcie-phy
  200. - qcom,sm8650-qmp-gen4x2-pcie-phy
  201. then:
  202. properties:
  203. "#clock-cells":
  204. const: 1
  205. else:
  206. properties:
  207. "#clock-cells":
  208. const: 0
  209. examples:
  210. - |
  211. #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
  212. pcie2b_phy: phy@1c18000 {
  213. compatible = "qcom,sc8280xp-qmp-gen3x2-pcie-phy";
  214. reg = <0x01c18000 0x2000>;
  215. clocks = <&gcc GCC_PCIE_2B_AUX_CLK>,
  216. <&gcc GCC_PCIE_2B_CFG_AHB_CLK>,
  217. <&gcc GCC_PCIE_2A2B_CLKREF_CLK>,
  218. <&gcc GCC_PCIE2B_PHY_RCHNG_CLK>,
  219. <&gcc GCC_PCIE_2B_PIPE_CLK>,
  220. <&gcc GCC_PCIE_2B_PIPEDIV2_CLK>;
  221. clock-names = "aux", "cfg_ahb", "ref", "rchng",
  222. "pipe", "pipediv2";
  223. power-domains = <&gcc PCIE_2B_GDSC>;
  224. resets = <&gcc GCC_PCIE_2B_PHY_BCR>;
  225. reset-names = "phy";
  226. vdda-phy-supply = <&vreg_l6d>;
  227. vdda-pll-supply = <&vreg_l4d>;
  228. #clock-cells = <0>;
  229. clock-output-names = "pcie_2b_pipe_clk";
  230. #phy-cells = <0>;
  231. };
  232. pcie2a_phy: phy@1c24000 {
  233. compatible = "qcom,sc8280xp-qmp-gen3x4-pcie-phy";
  234. reg = <0x01c24000 0x2000>, <0x01c26000 0x2000>;
  235. clocks = <&gcc GCC_PCIE_2A_AUX_CLK>,
  236. <&gcc GCC_PCIE_2A_CFG_AHB_CLK>,
  237. <&gcc GCC_PCIE_2A2B_CLKREF_CLK>,
  238. <&gcc GCC_PCIE2A_PHY_RCHNG_CLK>,
  239. <&gcc GCC_PCIE_2A_PIPE_CLK>,
  240. <&gcc GCC_PCIE_2A_PIPEDIV2_CLK>;
  241. clock-names = "aux", "cfg_ahb", "ref", "rchng",
  242. "pipe", "pipediv2";
  243. power-domains = <&gcc PCIE_2A_GDSC>;
  244. resets = <&gcc GCC_PCIE_2A_PHY_BCR>;
  245. reset-names = "phy";
  246. vdda-phy-supply = <&vreg_l6d>;
  247. vdda-pll-supply = <&vreg_l4d>;
  248. qcom,4ln-config-sel = <&tcsr 0xa044 0>;
  249. #clock-cells = <0>;
  250. clock-output-names = "pcie_2a_pipe_clk";
  251. #phy-cells = <0>;
  252. };