xref: /freebsd/sys/contrib/device-tree/Bindings/interconnect/qcom,msm8998-bwmon.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
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:
288d13bc63SEmmanuel Vadot              - qcom,qcm2290-cpu-bwmon
29*b2d2a78aSEmmanuel Vadot              - qcom,sa8775p-cpu-bwmon
30aa1a8ff2SEmmanuel Vadot              - qcom,sc7180-cpu-bwmon
317ef62cebSEmmanuel Vadot              - qcom,sc7280-cpu-bwmon
328bab661aSEmmanuel Vadot              - qcom,sc8280xp-cpu-bwmon
33fac71e4eSEmmanuel Vadot              - qcom,sdm845-cpu-bwmon
348d13bc63SEmmanuel Vadot              - qcom,sm6115-cpu-bwmon
35aa1a8ff2SEmmanuel Vadot              - qcom,sm6350-llcc-bwmon
36aa1a8ff2SEmmanuel Vadot              - qcom,sm8250-cpu-bwmon
37cb7aa33aSEmmanuel Vadot              - qcom,sm8550-cpu-bwmon
388d13bc63SEmmanuel Vadot              - qcom,sm8650-cpu-bwmon
390e8011faSEmmanuel Vadot              - qcom,x1e80100-cpu-bwmon
40fac71e4eSEmmanuel Vadot          - const: qcom,sdm845-bwmon    # BWMON v4, unified register space
418bab661aSEmmanuel Vadot      - items:
428bab661aSEmmanuel Vadot          - enum:
43*b2d2a78aSEmmanuel Vadot              - qcom,sa8775p-llcc-bwmon
44aa1a8ff2SEmmanuel Vadot              - qcom,sc7180-llcc-bwmon
458bab661aSEmmanuel Vadot              - qcom,sc8280xp-llcc-bwmon
46aa1a8ff2SEmmanuel Vadot              - qcom,sm6350-cpu-bwmon
47aa1a8ff2SEmmanuel Vadot              - qcom,sm8250-llcc-bwmon
48cb7aa33aSEmmanuel Vadot              - qcom,sm8550-llcc-bwmon
498d13bc63SEmmanuel Vadot              - qcom,sm8650-llcc-bwmon
500e8011faSEmmanuel Vadot              - qcom,x1e80100-llcc-bwmon
518bab661aSEmmanuel Vadot          - const: qcom,sc7280-llcc-bwmon
527ef62cebSEmmanuel Vadot      - const: qcom,sc7280-llcc-bwmon   # BWMON v5
537ef62cebSEmmanuel Vadot      - const: qcom,sdm845-llcc-bwmon   # BWMON v5
54b97ee269SEmmanuel Vadot
55b97ee269SEmmanuel Vadot  interconnects:
56b97ee269SEmmanuel Vadot    maxItems: 1
57b97ee269SEmmanuel Vadot
58b97ee269SEmmanuel Vadot  interrupts:
59b97ee269SEmmanuel Vadot    maxItems: 1
60b97ee269SEmmanuel Vadot
61b97ee269SEmmanuel Vadot  operating-points-v2: true
627ef62cebSEmmanuel Vadot  opp-table:
637ef62cebSEmmanuel Vadot    type: object
64b97ee269SEmmanuel Vadot
65b97ee269SEmmanuel Vadot  reg:
66fac71e4eSEmmanuel Vadot    # BWMON v5 uses one register address space, v1-v4 use one or two.
67fac71e4eSEmmanuel Vadot    minItems: 1
68fac71e4eSEmmanuel Vadot    maxItems: 2
69fac71e4eSEmmanuel Vadot
70fac71e4eSEmmanuel Vadot  reg-names:
71fac71e4eSEmmanuel Vadot    minItems: 1
72fac71e4eSEmmanuel Vadot    maxItems: 2
73b97ee269SEmmanuel Vadot
74b97ee269SEmmanuel Vadotrequired:
75b97ee269SEmmanuel Vadot  - compatible
76b97ee269SEmmanuel Vadot  - interconnects
77b97ee269SEmmanuel Vadot  - interrupts
78b97ee269SEmmanuel Vadot  - operating-points-v2
79b97ee269SEmmanuel Vadot  - reg
80b97ee269SEmmanuel Vadot
81b97ee269SEmmanuel VadotadditionalProperties: false
82b97ee269SEmmanuel Vadot
83fac71e4eSEmmanuel VadotallOf:
84fac71e4eSEmmanuel Vadot  - if:
85fac71e4eSEmmanuel Vadot      properties:
86fac71e4eSEmmanuel Vadot        compatible:
87fac71e4eSEmmanuel Vadot          const: qcom,msm8998-bwmon
88fac71e4eSEmmanuel Vadot    then:
89fac71e4eSEmmanuel Vadot      properties:
90fac71e4eSEmmanuel Vadot        reg:
91fac71e4eSEmmanuel Vadot          minItems: 2
92fac71e4eSEmmanuel Vadot
93fac71e4eSEmmanuel Vadot        reg-names:
94fac71e4eSEmmanuel Vadot          items:
95fac71e4eSEmmanuel Vadot            - const: monitor
96fac71e4eSEmmanuel Vadot            - const: global
97fac71e4eSEmmanuel Vadot
98fac71e4eSEmmanuel Vadot    else:
99fac71e4eSEmmanuel Vadot      properties:
100fac71e4eSEmmanuel Vadot        reg:
101fac71e4eSEmmanuel Vadot          maxItems: 1
102fac71e4eSEmmanuel Vadot
103fac71e4eSEmmanuel Vadot        reg-names:
104fac71e4eSEmmanuel Vadot          maxItems: 1
105fac71e4eSEmmanuel Vadot
106b97ee269SEmmanuel Vadotexamples:
107b97ee269SEmmanuel Vadot  - |
108b97ee269SEmmanuel Vadot    #include <dt-bindings/interconnect/qcom,sdm845.h>
109b97ee269SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
110b97ee269SEmmanuel Vadot
111b97ee269SEmmanuel Vadot    pmu@1436400 {
112fac71e4eSEmmanuel Vadot        compatible = "qcom,sdm845-cpu-bwmon", "qcom,sdm845-bwmon";
113b97ee269SEmmanuel Vadot        reg = <0x01436400 0x600>;
114b97ee269SEmmanuel Vadot        interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH>;
115b97ee269SEmmanuel Vadot        interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_LLCC 3>;
116b97ee269SEmmanuel Vadot
117b97ee269SEmmanuel Vadot        operating-points-v2 = <&cpu_bwmon_opp_table>;
118b97ee269SEmmanuel Vadot
119b97ee269SEmmanuel Vadot        cpu_bwmon_opp_table: opp-table {
120b97ee269SEmmanuel Vadot            compatible = "operating-points-v2";
121b97ee269SEmmanuel Vadot            opp-0 {
122b97ee269SEmmanuel Vadot                opp-peak-kBps = <4800000>;
123b97ee269SEmmanuel Vadot            };
124b97ee269SEmmanuel Vadot            opp-1 {
125b97ee269SEmmanuel Vadot                opp-peak-kBps = <9216000>;
126b97ee269SEmmanuel Vadot            };
127b97ee269SEmmanuel Vadot            opp-2 {
128b97ee269SEmmanuel Vadot                opp-peak-kBps = <15052800>;
129b97ee269SEmmanuel Vadot            };
130b97ee269SEmmanuel Vadot            opp-3 {
131b97ee269SEmmanuel Vadot                opp-peak-kBps = <20889600>;
132b97ee269SEmmanuel Vadot            };
133b97ee269SEmmanuel Vadot            opp-4 {
134b97ee269SEmmanuel Vadot                opp-peak-kBps = <25497600>;
135b97ee269SEmmanuel Vadot            };
136b97ee269SEmmanuel Vadot        };
137b97ee269SEmmanuel Vadot    };
138