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 65required: 66 - compatible 67 - reg 68 - '#interconnect-cells' 69 - clock-names 70 - clocks 71 72additionalProperties: false 73 74allOf: 75 - if: 76 properties: 77 compatible: 78 contains: 79 enum: 80 - qcom,msm8916-bimc 81 - qcom,msm8916-pcnoc 82 - qcom,msm8916-snoc 83 - qcom,msm8939-bimc 84 - qcom,msm8939-pcnoc 85 - qcom,msm8939-snoc 86 - qcom,msm8996-a1noc 87 - qcom,msm8996-bimc 88 - qcom,msm8996-cnoc 89 - qcom,msm8996-pnoc 90 - qcom,msm8996-snoc 91 - qcom,qcs404-bimc 92 - qcom,qcs404-pcnoc 93 - qcom,qcs404-snoc 94 - qcom,sdm660-bimc 95 - qcom,sdm660-cnoc 96 - qcom,sdm660-gnoc 97 - qcom,sdm660-snoc 98 99 then: 100 properties: 101 clock-names: 102 items: 103 - const: bus 104 - const: bus_a 105 106 clocks: 107 items: 108 - description: Bus Clock 109 - description: Bus A Clock 110 111 # Child node's properties 112 patternProperties: 113 '^interconnect-[a-z0-9]+$': 114 type: object 115 description: 116 snoc-mm is a child of snoc, sharing snoc's register address space. 117 118 properties: 119 compatible: 120 enum: 121 - qcom,msm8939-snoc-mm 122 123 '#interconnect-cells': 124 const: 1 125 126 clock-names: 127 items: 128 - const: bus 129 - const: bus_a 130 131 clocks: 132 items: 133 - description: Bus Clock 134 - description: Bus A Clock 135 136 required: 137 - compatible 138 - '#interconnect-cells' 139 - clock-names 140 - clocks 141 142 - if: 143 properties: 144 compatible: 145 contains: 146 enum: 147 - qcom,msm8996-mnoc 148 - qcom,sdm660-mnoc 149 150 then: 151 properties: 152 clock-names: 153 items: 154 - const: bus 155 - const: bus_a 156 - const: iface 157 158 clocks: 159 items: 160 - description: Bus Clock. 161 - description: Bus A Clock. 162 - description: CPU-NoC High-performance Bus Clock. 163 164 - if: 165 properties: 166 compatible: 167 contains: 168 enum: 169 - qcom,msm8996-a0noc 170 171 then: 172 properties: 173 clock-names: 174 items: 175 - const: aggre0_snoc_axi 176 - const: aggre0_cnoc_ahb 177 - const: aggre0_noc_mpu_cfg 178 179 clocks: 180 items: 181 - description: Aggregate0 System NoC AXI Clock. 182 - description: Aggregate0 Config NoC AHB Clock. 183 - description: Aggregate0 NoC MPU Clock. 184 185 required: 186 - power-domains 187 188 - if: 189 properties: 190 compatible: 191 contains: 192 enum: 193 - qcom,msm8996-a2noc 194 195 then: 196 properties: 197 clock-names: 198 items: 199 - const: bus 200 - const: bus_a 201 - const: aggre2_ufs_axi 202 - const: ufs_axi 203 204 clocks: 205 items: 206 - description: Bus Clock 207 - description: Bus A Clock 208 - description: Aggregate2 NoC UFS AXI Clock 209 - description: UFS AXI Clock 210 211 - if: 212 properties: 213 compatible: 214 contains: 215 enum: 216 - qcom,sdm660-a2noc 217 218 then: 219 properties: 220 clock-names: 221 items: 222 - const: bus 223 - const: bus_a 224 - const: ipa 225 - const: ufs_axi 226 - const: aggre2_ufs_axi 227 - const: aggre2_usb3_axi 228 - const: cfg_noc_usb2_axi 229 230 clocks: 231 items: 232 - description: Bus Clock. 233 - description: Bus A Clock. 234 - description: IPA Clock. 235 - description: UFS AXI Clock. 236 - description: Aggregate2 UFS AXI Clock. 237 - description: Aggregate2 USB3 AXI Clock. 238 - description: Config NoC USB2 AXI Clock. 239 240examples: 241 - | 242 #include <dt-bindings/clock/qcom,rpmcc.h> 243 244 bimc: interconnect@400000 { 245 compatible = "qcom,msm8916-bimc"; 246 reg = <0x00400000 0x62000>; 247 #interconnect-cells = <1>; 248 clock-names = "bus", "bus_a"; 249 clocks = <&rpmcc RPM_SMD_BIMC_CLK>, 250 <&rpmcc RPM_SMD_BIMC_A_CLK>; 251 }; 252 253 pcnoc: interconnect@500000 { 254 compatible = "qcom,msm8916-pcnoc"; 255 reg = <0x00500000 0x11000>; 256 #interconnect-cells = <1>; 257 clock-names = "bus", "bus_a"; 258 clocks = <&rpmcc RPM_SMD_PCNOC_CLK>, 259 <&rpmcc RPM_SMD_PCNOC_A_CLK>; 260 }; 261 262 snoc: interconnect@580000 { 263 compatible = "qcom,msm8916-snoc"; 264 reg = <0x00580000 0x14000>; 265 #interconnect-cells = <1>; 266 clock-names = "bus", "bus_a"; 267 clocks = <&rpmcc RPM_SMD_SNOC_CLK>, 268 <&rpmcc RPM_SMD_SNOC_A_CLK>; 269 }; 270