1# 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 <krzk@kernel.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: 28 - qcom,glymur-cpu-bwmon 29 - qcom,kaanapali-cpu-bwmon 30 - qcom,qcm2290-cpu-bwmon 31 - qcom,qcs615-cpu-bwmon 32 - qcom,qcs8300-cpu-bwmon 33 - qcom,sa8775p-cpu-bwmon 34 - qcom,sc7180-cpu-bwmon 35 - qcom,sc7280-cpu-bwmon 36 - qcom,sc8280xp-cpu-bwmon 37 - qcom,sdm845-cpu-bwmon 38 - qcom,sm6115-cpu-bwmon 39 - qcom,sm6350-llcc-bwmon 40 - qcom,sm8250-cpu-bwmon 41 - qcom,sm8550-cpu-bwmon 42 - qcom,sm8650-cpu-bwmon 43 - qcom,sm8750-cpu-bwmon 44 - qcom,x1e80100-cpu-bwmon 45 - const: qcom,sdm845-bwmon # BWMON v4, unified register space 46 - items: 47 - enum: 48 - qcom,qcs615-llcc-bwmon 49 - qcom,qcs8300-llcc-bwmon 50 - qcom,sa8775p-llcc-bwmon 51 - qcom,sc7180-llcc-bwmon 52 - qcom,sc8280xp-llcc-bwmon 53 - qcom,sm6350-cpu-bwmon 54 - qcom,sm8250-llcc-bwmon 55 - qcom,sm8550-llcc-bwmon 56 - qcom,sm8650-llcc-bwmon 57 - qcom,x1e80100-llcc-bwmon 58 - const: qcom,sc7280-llcc-bwmon 59 - const: qcom,sc7280-llcc-bwmon # BWMON v5 60 - const: qcom,sdm845-llcc-bwmon # BWMON v5 61 62 interconnects: 63 maxItems: 1 64 65 interrupts: 66 maxItems: 1 67 68 operating-points-v2: true 69 opp-table: 70 type: object 71 72 reg: 73 # BWMON v5 uses one register address space, v1-v4 use one or two. 74 minItems: 1 75 maxItems: 2 76 77 reg-names: 78 minItems: 1 79 maxItems: 2 80 81 nonposted-mmio: true 82 83required: 84 - compatible 85 - interconnects 86 - interrupts 87 - operating-points-v2 88 - reg 89 90additionalProperties: false 91 92allOf: 93 - if: 94 properties: 95 compatible: 96 const: qcom,msm8998-bwmon 97 then: 98 properties: 99 reg: 100 minItems: 2 101 102 reg-names: 103 items: 104 - const: monitor 105 - const: global 106 107 else: 108 properties: 109 reg: 110 maxItems: 1 111 112 reg-names: 113 maxItems: 1 114 115examples: 116 - | 117 #include <dt-bindings/interconnect/qcom,sdm845.h> 118 #include <dt-bindings/interrupt-controller/arm-gic.h> 119 120 pmu@1436400 { 121 compatible = "qcom,sdm845-cpu-bwmon", "qcom,sdm845-bwmon"; 122 reg = <0x01436400 0x600>; 123 interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH>; 124 interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_LLCC 3>; 125 126 operating-points-v2 = <&cpu_bwmon_opp_table>; 127 128 cpu_bwmon_opp_table: opp-table { 129 compatible = "operating-points-v2"; 130 opp-0 { 131 opp-peak-kBps = <4800000>; 132 }; 133 opp-1 { 134 opp-peak-kBps = <9216000>; 135 }; 136 opp-2 { 137 opp-peak-kBps = <15052800>; 138 }; 139 opp-3 { 140 opp-peak-kBps = <20889600>; 141 }; 142 opp-4 { 143 opp-peak-kBps = <25497600>; 144 }; 145 }; 146 }; 147