xref: /linux/Documentation/devicetree/bindings/interconnect/qcom,msm8998-bwmon.yaml (revision ff124bbbca1d3a07fa1392ffdbbdeece71f68ece)
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 <krzk@kernel.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,glymur-cpu-bwmon
29              - qcom,kaanapali-cpu-bwmon
30              - qcom,qcm2290-cpu-bwmon
31              - qcom,qcs615-cpu-bwmon
32              - qcom,qcs8300-cpu-bwmon
33              - qcom,sa8775p-cpu-bwmon
34              - qcom,sc7180-cpu-bwmon
35              - qcom,sc7280-cpu-bwmon
36              - qcom,sc8280xp-cpu-bwmon
37              - qcom,sdm845-cpu-bwmon
38              - qcom,sm6115-cpu-bwmon
39              - qcom,sm6350-llcc-bwmon
40              - qcom,sm8250-cpu-bwmon
41              - qcom,sm8550-cpu-bwmon
42              - qcom,sm8650-cpu-bwmon
43              - qcom,sm8750-cpu-bwmon
44              - qcom,x1e80100-cpu-bwmon
45          - const: qcom,sdm845-bwmon    # BWMON v4, unified register space
46      - items:
47          - enum:
48              - qcom,qcs615-llcc-bwmon
49              - qcom,qcs8300-llcc-bwmon
50              - qcom,sa8775p-llcc-bwmon
51              - qcom,sc7180-llcc-bwmon
52              - qcom,sc8280xp-llcc-bwmon
53              - qcom,sm6350-cpu-bwmon
54              - qcom,sm8250-llcc-bwmon
55              - qcom,sm8550-llcc-bwmon
56              - qcom,sm8650-llcc-bwmon
57              - qcom,x1e80100-llcc-bwmon
58          - const: qcom,sc7280-llcc-bwmon
59      - const: qcom,sc7280-llcc-bwmon   # BWMON v5
60      - const: qcom,sdm845-llcc-bwmon   # BWMON v5
61
62  interconnects:
63    maxItems: 1
64
65  interrupts:
66    maxItems: 1
67
68  operating-points-v2: true
69  opp-table:
70    type: object
71
72  reg:
73    # BWMON v5 uses one register address space, v1-v4 use one or two.
74    minItems: 1
75    maxItems: 2
76
77  reg-names:
78    minItems: 1
79    maxItems: 2
80
81  nonposted-mmio: true
82
83required:
84  - compatible
85  - interconnects
86  - interrupts
87  - operating-points-v2
88  - reg
89
90additionalProperties: false
91
92allOf:
93  - if:
94      properties:
95        compatible:
96          const: qcom,msm8998-bwmon
97    then:
98      properties:
99        reg:
100          minItems: 2
101
102        reg-names:
103          items:
104            - const: monitor
105            - const: global
106
107    else:
108      properties:
109        reg:
110          maxItems: 1
111
112        reg-names:
113          maxItems: 1
114
115examples:
116  - |
117    #include <dt-bindings/interconnect/qcom,sdm845.h>
118    #include <dt-bindings/interrupt-controller/arm-gic.h>
119
120    pmu@1436400 {
121        compatible = "qcom,sdm845-cpu-bwmon", "qcom,sdm845-bwmon";
122        reg = <0x01436400 0x600>;
123        interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH>;
124        interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_LLCC 3>;
125
126        operating-points-v2 = <&cpu_bwmon_opp_table>;
127
128        cpu_bwmon_opp_table: opp-table {
129            compatible = "operating-points-v2";
130            opp-0 {
131                opp-peak-kBps = <4800000>;
132            };
133            opp-1 {
134                opp-peak-kBps = <9216000>;
135            };
136            opp-2 {
137                opp-peak-kBps = <15052800>;
138            };
139            opp-3 {
140                opp-peak-kBps = <20889600>;
141            };
142            opp-4 {
143                opp-peak-kBps = <25497600>;
144            };
145        };
146    };
147