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