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