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