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