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