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