blob: 2cd1f5590fd9bb6f30aa67010d6818a3bec8a10f [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/interconnect/qcom,msm8998-bwmon.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm Interconnect Bandwidth Monitor
8
9maintainers:
10 - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
11
12description: |
13 Bandwidth Monitor measures current throughput on buses between various NoC
14 fabrics and provides information when it crosses configured thresholds.
15
16 Certain SoCs might have more than one Bandwidth Monitors, for example on SDM845::
17 - Measuring the bandwidth between CPUs and Last Level Cache Controller -
18 called just BWMON,
19 - Measuring the bandwidth between Last Level Cache Controller and memory
20 (DDR) - called LLCC BWMON.
21
22properties:
23 compatible:
24 oneOf:
25 - const: qcom,msm8998-bwmon # BWMON v4
26 - items:
27 - enum:
Tom Rini93743d22024-04-01 09:08:13 -040028 - qcom,qcm2290-cpu-bwmon
Tom Rini53633a82024-02-29 12:33:36 -050029 - qcom,sc7180-cpu-bwmon
30 - qcom,sc7280-cpu-bwmon
31 - qcom,sc8280xp-cpu-bwmon
32 - qcom,sdm845-cpu-bwmon
Tom Rini93743d22024-04-01 09:08:13 -040033 - qcom,sm6115-cpu-bwmon
Tom Rini53633a82024-02-29 12:33:36 -050034 - qcom,sm6350-llcc-bwmon
35 - qcom,sm8250-cpu-bwmon
36 - qcom,sm8550-cpu-bwmon
Tom Rini93743d22024-04-01 09:08:13 -040037 - qcom,sm8650-cpu-bwmon
Tom Rini6b642ac2024-10-01 12:20:28 -060038 - qcom,x1e80100-cpu-bwmon
Tom Rini53633a82024-02-29 12:33:36 -050039 - const: qcom,sdm845-bwmon # BWMON v4, unified register space
40 - items:
41 - enum:
42 - qcom,sc7180-llcc-bwmon
43 - qcom,sc8280xp-llcc-bwmon
44 - qcom,sm6350-cpu-bwmon
45 - qcom,sm8250-llcc-bwmon
46 - qcom,sm8550-llcc-bwmon
Tom Rini93743d22024-04-01 09:08:13 -040047 - qcom,sm8650-llcc-bwmon
Tom Rini6b642ac2024-10-01 12:20:28 -060048 - qcom,x1e80100-llcc-bwmon
Tom Rini53633a82024-02-29 12:33:36 -050049 - const: qcom,sc7280-llcc-bwmon
50 - const: qcom,sc7280-llcc-bwmon # BWMON v5
51 - const: qcom,sdm845-llcc-bwmon # BWMON v5
52
53 interconnects:
54 maxItems: 1
55
56 interrupts:
57 maxItems: 1
58
59 operating-points-v2: true
60 opp-table:
61 type: object
62
63 reg:
64 # BWMON v5 uses one register address space, v1-v4 use one or two.
65 minItems: 1
66 maxItems: 2
67
68 reg-names:
69 minItems: 1
70 maxItems: 2
71
72required:
73 - compatible
74 - interconnects
75 - interrupts
76 - operating-points-v2
Tom Rini53633a82024-02-29 12:33:36 -050077 - reg
78
79additionalProperties: false
80
81allOf:
82 - if:
83 properties:
84 compatible:
85 const: qcom,msm8998-bwmon
86 then:
87 properties:
88 reg:
89 minItems: 2
90
91 reg-names:
92 items:
93 - const: monitor
94 - const: global
95
96 else:
97 properties:
98 reg:
99 maxItems: 1
100
101 reg-names:
102 maxItems: 1
103
104examples:
105 - |
106 #include <dt-bindings/interconnect/qcom,sdm845.h>
107 #include <dt-bindings/interrupt-controller/arm-gic.h>
108
109 pmu@1436400 {
110 compatible = "qcom,sdm845-cpu-bwmon", "qcom,sdm845-bwmon";
111 reg = <0x01436400 0x600>;
112 interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH>;
113 interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_LLCC 3>;
114
115 operating-points-v2 = <&cpu_bwmon_opp_table>;
116
117 cpu_bwmon_opp_table: opp-table {
118 compatible = "operating-points-v2";
119 opp-0 {
120 opp-peak-kBps = <4800000>;
121 };
122 opp-1 {
123 opp-peak-kBps = <9216000>;
124 };
125 opp-2 {
126 opp-peak-kBps = <15052800>;
127 };
128 opp-3 {
129 opp-peak-kBps = <20889600>;
130 };
131 opp-4 {
132 opp-peak-kBps = <25497600>;
133 };
134 };
135 };