qcom,sm6115.yaml 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/interconnect/qcom,sm6115.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Qualcomm SM6115 Network-On-Chip interconnect
  7. maintainers:
  8. - Konrad Dybcio <konradybcio@kernel.org>
  9. description:
  10. The Qualcomm SM6115 interconnect providers support adjusting the
  11. bandwidth requirements between the various NoC fabrics.
  12. properties:
  13. compatible:
  14. enum:
  15. - qcom,sm6115-bimc
  16. - qcom,sm6115-cnoc
  17. - qcom,sm6115-snoc
  18. reg:
  19. maxItems: 1
  20. clocks:
  21. minItems: 1
  22. maxItems: 4
  23. clock-names:
  24. minItems: 1
  25. maxItems: 4
  26. # Child node's properties
  27. patternProperties:
  28. '^interconnect-[a-z0-9]+$':
  29. type: object
  30. description:
  31. The interconnect providers do not have a separate QoS register space,
  32. but share parent's space.
  33. $ref: qcom,rpm-common.yaml#
  34. properties:
  35. compatible:
  36. enum:
  37. - qcom,sm6115-clk-virt
  38. - qcom,sm6115-mmrt-virt
  39. - qcom,sm6115-mmnrt-virt
  40. required:
  41. - compatible
  42. unevaluatedProperties: false
  43. required:
  44. - compatible
  45. - reg
  46. allOf:
  47. - $ref: qcom,rpm-common.yaml#
  48. - if:
  49. properties:
  50. compatible:
  51. const: qcom,sm6115-cnoc
  52. then:
  53. properties:
  54. clocks:
  55. items:
  56. - description: USB-NoC AXI clock
  57. clock-names:
  58. items:
  59. - const: usb_axi
  60. - if:
  61. properties:
  62. compatible:
  63. const: qcom,sm6115-snoc
  64. then:
  65. properties:
  66. clocks:
  67. items:
  68. - description: CPU-NoC AXI clock.
  69. - description: UFS-NoC AXI clock.
  70. - description: USB-NoC AXI clock.
  71. - description: IPA clock.
  72. clock-names:
  73. items:
  74. - const: cpu_axi
  75. - const: ufs_axi
  76. - const: usb_axi
  77. - const: ipa
  78. - if:
  79. properties:
  80. compatible:
  81. enum:
  82. - qcom,sm6115-bimc
  83. - qcom,sm6115-clk-virt
  84. - qcom,sm6115-mmrt-virt
  85. - qcom,sm6115-mmnrt-virt
  86. then:
  87. properties:
  88. clocks: false
  89. clock-names: false
  90. unevaluatedProperties: false
  91. examples:
  92. - |
  93. #include <dt-bindings/clock/qcom,gcc-sm6115.h>
  94. #include <dt-bindings/clock/qcom,rpmcc.h>
  95. snoc: interconnect@1880000 {
  96. compatible = "qcom,sm6115-snoc";
  97. reg = <0x01880000 0x60200>;
  98. clocks = <&gcc GCC_SYS_NOC_CPUSS_AHB_CLK>,
  99. <&gcc GCC_SYS_NOC_UFS_PHY_AXI_CLK>,
  100. <&gcc GCC_SYS_NOC_USB3_PRIM_AXI_CLK>,
  101. <&rpmcc RPM_SMD_IPA_CLK>;
  102. clock-names = "cpu_axi",
  103. "ufs_axi",
  104. "usb_axi",
  105. "ipa";
  106. #interconnect-cells = <1>;
  107. qup_virt: interconnect-clk {
  108. compatible = "qcom,sm6115-clk-virt";
  109. #interconnect-cells = <1>;
  110. };
  111. mmnrt_virt: interconnect-mmnrt {
  112. compatible = "qcom,sm6115-mmnrt-virt";
  113. #interconnect-cells = <1>;
  114. };
  115. mmrt_virt: interconnect-mmrt {
  116. compatible = "qcom,sm6115-mmrt-virt";
  117. #interconnect-cells = <1>;
  118. };
  119. };
  120. cnoc: interconnect@1900000 {
  121. compatible = "qcom,sm6115-cnoc";
  122. reg = <0x01900000 0x8200>;
  123. #interconnect-cells = <1>;
  124. };