qcom,msm8998-bwmon.yaml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/interconnect/qcom,msm8998-bwmon.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Qualcomm Interconnect Bandwidth Monitor
  7. maintainers:
  8. - Krzysztof Kozlowski <krzk@kernel.org>
  9. description: |
  10. Bandwidth Monitor measures current throughput on buses between various NoC
  11. fabrics and provides information when it crosses configured thresholds.
  12. Certain SoCs might have more than one Bandwidth Monitors, for example on SDM845::
  13. - Measuring the bandwidth between CPUs and Last Level Cache Controller -
  14. called just BWMON,
  15. - Measuring the bandwidth between Last Level Cache Controller and memory
  16. (DDR) - called LLCC BWMON.
  17. properties:
  18. compatible:
  19. oneOf:
  20. - const: qcom,msm8998-bwmon # BWMON v4
  21. - items:
  22. - enum:
  23. - qcom,glymur-cpu-bwmon
  24. - qcom,kaanapali-cpu-bwmon
  25. - qcom,qcm2290-cpu-bwmon
  26. - qcom,qcs615-cpu-bwmon
  27. - qcom,qcs8300-cpu-bwmon
  28. - qcom,sa8775p-cpu-bwmon
  29. - qcom,sc7180-cpu-bwmon
  30. - qcom,sc7280-cpu-bwmon
  31. - qcom,sc8280xp-cpu-bwmon
  32. - qcom,sdm845-cpu-bwmon
  33. - qcom,sm6115-cpu-bwmon
  34. - qcom,sm6350-llcc-bwmon
  35. - qcom,sm8250-cpu-bwmon
  36. - qcom,sm8550-cpu-bwmon
  37. - qcom,sm8650-cpu-bwmon
  38. - qcom,sm8750-cpu-bwmon
  39. - qcom,x1e80100-cpu-bwmon
  40. - const: qcom,sdm845-bwmon # BWMON v4, unified register space
  41. - items:
  42. - enum:
  43. - qcom,qcs615-llcc-bwmon
  44. - qcom,qcs8300-llcc-bwmon
  45. - qcom,sa8775p-llcc-bwmon
  46. - qcom,sc7180-llcc-bwmon
  47. - qcom,sc8280xp-llcc-bwmon
  48. - qcom,sm6350-cpu-bwmon
  49. - qcom,sm8250-llcc-bwmon
  50. - qcom,sm8550-llcc-bwmon
  51. - qcom,sm8650-llcc-bwmon
  52. - qcom,x1e80100-llcc-bwmon
  53. - const: qcom,sc7280-llcc-bwmon
  54. - const: qcom,sc7280-llcc-bwmon # BWMON v5
  55. - const: qcom,sdm845-llcc-bwmon # BWMON v5
  56. interconnects:
  57. maxItems: 1
  58. interrupts:
  59. maxItems: 1
  60. operating-points-v2: true
  61. opp-table:
  62. type: object
  63. reg:
  64. # BWMON v5 uses one register address space, v1-v4 use one or two.
  65. minItems: 1
  66. maxItems: 2
  67. reg-names:
  68. minItems: 1
  69. maxItems: 2
  70. nonposted-mmio: true
  71. required:
  72. - compatible
  73. - interconnects
  74. - interrupts
  75. - operating-points-v2
  76. - reg
  77. additionalProperties: false
  78. allOf:
  79. - if:
  80. properties:
  81. compatible:
  82. const: qcom,msm8998-bwmon
  83. then:
  84. properties:
  85. reg:
  86. minItems: 2
  87. reg-names:
  88. items:
  89. - const: monitor
  90. - const: global
  91. else:
  92. properties:
  93. reg:
  94. maxItems: 1
  95. reg-names:
  96. maxItems: 1
  97. examples:
  98. - |
  99. #include <dt-bindings/interconnect/qcom,sdm845.h>
  100. #include <dt-bindings/interrupt-controller/arm-gic.h>
  101. pmu@1436400 {
  102. compatible = "qcom,sdm845-cpu-bwmon", "qcom,sdm845-bwmon";
  103. reg = <0x01436400 0x600>;
  104. interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH>;
  105. interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_LLCC 3>;
  106. operating-points-v2 = <&cpu_bwmon_opp_table>;
  107. cpu_bwmon_opp_table: opp-table {
  108. compatible = "operating-points-v2";
  109. opp-0 {
  110. opp-peak-kBps = <4800000>;
  111. };
  112. opp-1 {
  113. opp-peak-kBps = <9216000>;
  114. };
  115. opp-2 {
  116. opp-peak-kBps = <15052800>;
  117. };
  118. opp-3 {
  119. opp-peak-kBps = <20889600>;
  120. };
  121. opp-4 {
  122. opp-peak-kBps = <25497600>;
  123. };
  124. };
  125. };