1*a7ee53e1SKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*a7ee53e1SKrzysztof Kozlowski%YAML 1.2
3*a7ee53e1SKrzysztof Kozlowski---
4*a7ee53e1SKrzysztof Kozlowski$id: http://devicetree.org/schemas/interconnect/qcom,msm8998-bwmon.yaml#
5*a7ee53e1SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*a7ee53e1SKrzysztof Kozlowski
7*a7ee53e1SKrzysztof Kozlowskititle: Qualcomm Interconnect Bandwidth Monitor
8*a7ee53e1SKrzysztof Kozlowski
9*a7ee53e1SKrzysztof Kozlowskimaintainers:
10*a7ee53e1SKrzysztof Kozlowski  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
11*a7ee53e1SKrzysztof Kozlowski
12*a7ee53e1SKrzysztof Kozlowskidescription: |
13*a7ee53e1SKrzysztof Kozlowski  Bandwidth Monitor measures current throughput on buses between various NoC
14*a7ee53e1SKrzysztof Kozlowski  fabrics and provides information when it crosses configured thresholds.
15*a7ee53e1SKrzysztof Kozlowski
16*a7ee53e1SKrzysztof Kozlowski  Certain SoCs might have more than one Bandwidth Monitors, for example on SDM845::
17*a7ee53e1SKrzysztof Kozlowski   - Measuring the bandwidth between CPUs and Last Level Cache Controller -
18*a7ee53e1SKrzysztof Kozlowski     called just BWMON,
19*a7ee53e1SKrzysztof Kozlowski   - Measuring the bandwidth between Last Level Cache Controller and memory
20*a7ee53e1SKrzysztof Kozlowski     (DDR) - called LLCC BWMON.
21*a7ee53e1SKrzysztof Kozlowski
22*a7ee53e1SKrzysztof Kozlowskiproperties:
23*a7ee53e1SKrzysztof Kozlowski  compatible:
24*a7ee53e1SKrzysztof Kozlowski    oneOf:
25*a7ee53e1SKrzysztof Kozlowski      - items:
26*a7ee53e1SKrzysztof Kozlowski          - enum:
27*a7ee53e1SKrzysztof Kozlowski              - qcom,sdm845-bwmon
28*a7ee53e1SKrzysztof Kozlowski          - const: qcom,msm8998-bwmon
29*a7ee53e1SKrzysztof Kozlowski      - const: qcom,msm8998-bwmon       # BWMON v4
30*a7ee53e1SKrzysztof Kozlowski
31*a7ee53e1SKrzysztof Kozlowski  interconnects:
32*a7ee53e1SKrzysztof Kozlowski    maxItems: 1
33*a7ee53e1SKrzysztof Kozlowski
34*a7ee53e1SKrzysztof Kozlowski  interrupts:
35*a7ee53e1SKrzysztof Kozlowski    maxItems: 1
36*a7ee53e1SKrzysztof Kozlowski
37*a7ee53e1SKrzysztof Kozlowski  operating-points-v2: true
38*a7ee53e1SKrzysztof Kozlowski  opp-table: true
39*a7ee53e1SKrzysztof Kozlowski
40*a7ee53e1SKrzysztof Kozlowski  reg:
41*a7ee53e1SKrzysztof Kozlowski    # BWMON v4 (currently described) and BWMON v5 use one register address
42*a7ee53e1SKrzysztof Kozlowski    # space.  BWMON v2 uses two register spaces - not yet described.
43*a7ee53e1SKrzysztof Kozlowski    maxItems: 1
44*a7ee53e1SKrzysztof Kozlowski
45*a7ee53e1SKrzysztof Kozlowskirequired:
46*a7ee53e1SKrzysztof Kozlowski  - compatible
47*a7ee53e1SKrzysztof Kozlowski  - interconnects
48*a7ee53e1SKrzysztof Kozlowski  - interrupts
49*a7ee53e1SKrzysztof Kozlowski  - operating-points-v2
50*a7ee53e1SKrzysztof Kozlowski  - opp-table
51*a7ee53e1SKrzysztof Kozlowski  - reg
52*a7ee53e1SKrzysztof Kozlowski
53*a7ee53e1SKrzysztof KozlowskiadditionalProperties: false
54*a7ee53e1SKrzysztof Kozlowski
55*a7ee53e1SKrzysztof Kozlowskiexamples:
56*a7ee53e1SKrzysztof Kozlowski  - |
57*a7ee53e1SKrzysztof Kozlowski    #include <dt-bindings/interconnect/qcom,sdm845.h>
58*a7ee53e1SKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
59*a7ee53e1SKrzysztof Kozlowski
60*a7ee53e1SKrzysztof Kozlowski    pmu@1436400 {
61*a7ee53e1SKrzysztof Kozlowski        compatible = "qcom,sdm845-bwmon", "qcom,msm8998-bwmon";
62*a7ee53e1SKrzysztof Kozlowski        reg = <0x01436400 0x600>;
63*a7ee53e1SKrzysztof Kozlowski        interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH>;
64*a7ee53e1SKrzysztof Kozlowski        interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_LLCC 3>;
65*a7ee53e1SKrzysztof Kozlowski
66*a7ee53e1SKrzysztof Kozlowski        operating-points-v2 = <&cpu_bwmon_opp_table>;
67*a7ee53e1SKrzysztof Kozlowski
68*a7ee53e1SKrzysztof Kozlowski        cpu_bwmon_opp_table: opp-table {
69*a7ee53e1SKrzysztof Kozlowski            compatible = "operating-points-v2";
70*a7ee53e1SKrzysztof Kozlowski            opp-0 {
71*a7ee53e1SKrzysztof Kozlowski                opp-peak-kBps = <4800000>;
72*a7ee53e1SKrzysztof Kozlowski            };
73*a7ee53e1SKrzysztof Kozlowski            opp-1 {
74*a7ee53e1SKrzysztof Kozlowski                opp-peak-kBps = <9216000>;
75*a7ee53e1SKrzysztof Kozlowski            };
76*a7ee53e1SKrzysztof Kozlowski            opp-2 {
77*a7ee53e1SKrzysztof Kozlowski                opp-peak-kBps = <15052800>;
78*a7ee53e1SKrzysztof Kozlowski            };
79*a7ee53e1SKrzysztof Kozlowski            opp-3 {
80*a7ee53e1SKrzysztof Kozlowski                opp-peak-kBps = <20889600>;
81*a7ee53e1SKrzysztof Kozlowski            };
82*a7ee53e1SKrzysztof Kozlowski            opp-4 {
83*a7ee53e1SKrzysztof Kozlowski                opp-peak-kBps = <25497600>;
84*a7ee53e1SKrzysztof Kozlowski            };
85*a7ee53e1SKrzysztof Kozlowski        };
86*a7ee53e1SKrzysztof Kozlowski    };
87