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