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      - items:
26          - enum:
27              - qcom,sc7280-cpu-bwmon
28              - qcom,sc8280xp-cpu-bwmon
29              - qcom,sdm845-bwmon
30              - qcom,sm8550-cpu-bwmon
31          - const: qcom,msm8998-bwmon
32      - const: qcom,msm8998-bwmon       # BWMON v4
33      - items:
34          - enum:
35              - qcom,sc8280xp-llcc-bwmon
36              - qcom,sm8550-llcc-bwmon
37          - const: qcom,sc7280-llcc-bwmon
38      - const: qcom,sc7280-llcc-bwmon   # BWMON v5
39      - const: qcom,sdm845-llcc-bwmon   # BWMON v5
40
41  interconnects:
42    maxItems: 1
43
44  interrupts:
45    maxItems: 1
46
47  operating-points-v2: true
48  opp-table:
49    type: object
50
51  reg:
52    # BWMON v4 (currently described) and BWMON v5 use one register address
53    # space.  BWMON v2 uses two register spaces - not yet described.
54    maxItems: 1
55
56required:
57  - compatible
58  - interconnects
59  - interrupts
60  - operating-points-v2
61  - opp-table
62  - reg
63
64additionalProperties: false
65
66examples:
67  - |
68    #include <dt-bindings/interconnect/qcom,sdm845.h>
69    #include <dt-bindings/interrupt-controller/arm-gic.h>
70
71    pmu@1436400 {
72        compatible = "qcom,sdm845-bwmon", "qcom,msm8998-bwmon";
73        reg = <0x01436400 0x600>;
74        interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH>;
75        interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_LLCC 3>;
76
77        operating-points-v2 = <&cpu_bwmon_opp_table>;
78
79        cpu_bwmon_opp_table: opp-table {
80            compatible = "operating-points-v2";
81            opp-0 {
82                opp-peak-kBps = <4800000>;
83            };
84            opp-1 {
85                opp-peak-kBps = <9216000>;
86            };
87            opp-2 {
88                opp-peak-kBps = <15052800>;
89            };
90            opp-3 {
91                opp-peak-kBps = <20889600>;
92            };
93            opp-4 {
94                opp-peak-kBps = <25497600>;
95            };
96        };
97    };
98