1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/interconnect/qcom,rpm.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm RPM Network-On-Chip Interconnect 8 9maintainers: 10 - Georgi Djakov <georgi.djakov@linaro.org> 11 12description: | 13 RPM interconnect providers support system bandwidth requirements through 14 RPM processor. The provider is able to communicate with the RPM through 15 the RPM shared memory device. 16 17properties: 18 reg: 19 maxItems: 1 20 21 compatible: 22 enum: 23 - qcom,msm8916-bimc 24 - qcom,msm8916-pcnoc 25 - qcom,msm8916-snoc 26 - qcom,msm8939-bimc 27 - qcom,msm8939-pcnoc 28 - qcom,msm8939-snoc 29 - qcom,msm8996-a0noc 30 - qcom,msm8996-a1noc 31 - qcom,msm8996-a2noc 32 - qcom,msm8996-bimc 33 - qcom,msm8996-cnoc 34 - qcom,msm8996-mnoc 35 - qcom,msm8996-pnoc 36 - qcom,msm8996-snoc 37 - qcom,qcs404-bimc 38 - qcom,qcs404-pcnoc 39 - qcom,qcs404-snoc 40 - qcom,sdm660-a2noc 41 - qcom,sdm660-bimc 42 - qcom,sdm660-cnoc 43 - qcom,sdm660-gnoc 44 - qcom,sdm660-mnoc 45 - qcom,sdm660-snoc 46 47 '#interconnect-cells': 48 description: | 49 Value: <1> is one cell in an interconnect specifier for the 50 interconnect node id, <2> requires the interconnect node id and an 51 extra path tag. 52 enum: [ 1, 2 ] 53 54 clocks: 55 minItems: 2 56 maxItems: 7 57 58 clock-names: 59 minItems: 2 60 maxItems: 7 61 62 power-domains: 63 maxItems: 1 64 65# Child node's properties 66patternProperties: 67 '^interconnect-[a-z0-9]+$': 68 type: object 69 additionalProperties: false 70 description: 71 snoc-mm is a child of snoc, sharing snoc's register address space. 72 73 properties: 74 compatible: 75 enum: 76 - qcom,msm8939-snoc-mm 77 78 '#interconnect-cells': 79 const: 1 80 81 clock-names: 82 items: 83 - const: bus 84 - const: bus_a 85 86 clocks: 87 items: 88 - description: Bus Clock 89 - description: Bus A Clock 90 91 required: 92 - compatible 93 - '#interconnect-cells' 94 - clock-names 95 - clocks 96 97required: 98 - compatible 99 - reg 100 - '#interconnect-cells' 101 - clock-names 102 - clocks 103 104additionalProperties: false 105 106allOf: 107 - if: 108 properties: 109 compatible: 110 contains: 111 enum: 112 - qcom,msm8916-bimc 113 - qcom,msm8916-pcnoc 114 - qcom,msm8916-snoc 115 - qcom,msm8939-bimc 116 - qcom,msm8939-pcnoc 117 - qcom,msm8939-snoc 118 - qcom,msm8996-a1noc 119 - qcom,msm8996-bimc 120 - qcom,msm8996-cnoc 121 - qcom,msm8996-pnoc 122 - qcom,msm8996-snoc 123 - qcom,qcs404-bimc 124 - qcom,qcs404-pcnoc 125 - qcom,qcs404-snoc 126 - qcom,sdm660-bimc 127 - qcom,sdm660-cnoc 128 - qcom,sdm660-gnoc 129 - qcom,sdm660-snoc 130 131 then: 132 properties: 133 clock-names: 134 items: 135 - const: bus 136 - const: bus_a 137 138 clocks: 139 items: 140 - description: Bus Clock 141 - description: Bus A Clock 142 143 - if: 144 properties: 145 compatible: 146 contains: 147 enum: 148 - qcom,msm8996-mnoc 149 - qcom,sdm660-mnoc 150 151 then: 152 properties: 153 clock-names: 154 items: 155 - const: bus 156 - const: bus_a 157 - const: iface 158 159 clocks: 160 items: 161 - description: Bus Clock. 162 - description: Bus A Clock. 163 - description: CPU-NoC High-performance Bus Clock. 164 165 - if: 166 properties: 167 compatible: 168 contains: 169 enum: 170 - qcom,msm8996-a0noc 171 172 then: 173 properties: 174 clock-names: 175 items: 176 - const: aggre0_snoc_axi 177 - const: aggre0_cnoc_ahb 178 - const: aggre0_noc_mpu_cfg 179 180 clocks: 181 items: 182 - description: Aggregate0 System NoC AXI Clock. 183 - description: Aggregate0 Config NoC AHB Clock. 184 - description: Aggregate0 NoC MPU Clock. 185 186 required: 187 - power-domains 188 189 - if: 190 properties: 191 compatible: 192 contains: 193 enum: 194 - qcom,msm8996-a2noc 195 196 then: 197 properties: 198 clock-names: 199 items: 200 - const: bus 201 - const: bus_a 202 - const: aggre2_ufs_axi 203 - const: ufs_axi 204 205 clocks: 206 items: 207 - description: Bus Clock 208 - description: Bus A Clock 209 - description: Aggregate2 NoC UFS AXI Clock 210 - description: UFS AXI Clock 211 212 - if: 213 properties: 214 compatible: 215 contains: 216 enum: 217 - qcom,sdm660-a2noc 218 219 then: 220 properties: 221 clock-names: 222 items: 223 - const: bus 224 - const: bus_a 225 - const: ipa 226 - const: ufs_axi 227 - const: aggre2_ufs_axi 228 - const: aggre2_usb3_axi 229 - const: cfg_noc_usb2_axi 230 231 clocks: 232 items: 233 - description: Bus Clock. 234 - description: Bus A Clock. 235 - description: IPA Clock. 236 - description: UFS AXI Clock. 237 - description: Aggregate2 UFS AXI Clock. 238 - description: Aggregate2 USB3 AXI Clock. 239 - description: Config NoC USB2 AXI Clock. 240 241 - if: 242 not: 243 properties: 244 compatible: 245 contains: 246 enum: 247 - qcom,msm8939-snoc 248 then: 249 patternProperties: 250 '^interconnect-[a-z0-9]+$': false 251 252examples: 253 - | 254 #include <dt-bindings/clock/qcom,rpmcc.h> 255 256 bimc: interconnect@400000 { 257 compatible = "qcom,msm8916-bimc"; 258 reg = <0x00400000 0x62000>; 259 #interconnect-cells = <1>; 260 clock-names = "bus", "bus_a"; 261 clocks = <&rpmcc RPM_SMD_BIMC_CLK>, 262 <&rpmcc RPM_SMD_BIMC_A_CLK>; 263 }; 264 265 pcnoc: interconnect@500000 { 266 compatible = "qcom,msm8916-pcnoc"; 267 reg = <0x00500000 0x11000>; 268 #interconnect-cells = <1>; 269 clock-names = "bus", "bus_a"; 270 clocks = <&rpmcc RPM_SMD_PCNOC_CLK>, 271 <&rpmcc RPM_SMD_PCNOC_A_CLK>; 272 }; 273 274 snoc: interconnect@580000 { 275 compatible = "qcom,msm8916-snoc"; 276 reg = <0x00580000 0x14000>; 277 #interconnect-cells = <1>; 278 clock-names = "bus", "bus_a"; 279 clocks = <&rpmcc RPM_SMD_SNOC_CLK>, 280 <&rpmcc RPM_SMD_SNOC_A_CLK>; 281 }; 282