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