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