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-a2noc 88 - qcom,msm8996-bimc 89 - qcom,msm8996-cnoc 90 - qcom,msm8996-pnoc 91 - qcom,msm8996-snoc 92 - qcom,qcs404-bimc 93 - qcom,qcs404-pcnoc 94 - qcom,qcs404-snoc 95 - qcom,sdm660-bimc 96 - qcom,sdm660-cnoc 97 - qcom,sdm660-gnoc 98 - qcom,sdm660-snoc 99 100 then: 101 properties: 102 clock-names: 103 items: 104 - const: bus 105 - const: bus_a 106 107 clocks: 108 items: 109 - description: Bus Clock 110 - description: Bus A Clock 111 112 # Child node's properties 113 patternProperties: 114 '^interconnect-[a-z0-9]+$': 115 type: object 116 description: 117 snoc-mm is a child of snoc, sharing snoc's register address space. 118 119 properties: 120 compatible: 121 enum: 122 - qcom,msm8939-snoc-mm 123 124 '#interconnect-cells': 125 const: 1 126 127 clock-names: 128 items: 129 - const: bus 130 - const: bus_a 131 132 clocks: 133 items: 134 - description: Bus Clock 135 - description: Bus A Clock 136 137 required: 138 - compatible 139 - '#interconnect-cells' 140 - clock-names 141 - clocks 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,sdm660-a2noc 195 196 then: 197 properties: 198 clock-names: 199 items: 200 - const: bus 201 - const: bus_a 202 - const: ipa 203 - const: ufs_axi 204 - const: aggre2_ufs_axi 205 - const: aggre2_usb3_axi 206 - const: cfg_noc_usb2_axi 207 208 clocks: 209 items: 210 - description: Bus Clock. 211 - description: Bus A Clock. 212 - description: IPA Clock. 213 - description: UFS AXI Clock. 214 - description: Aggregate2 UFS AXI Clock. 215 - description: Aggregate2 USB3 AXI Clock. 216 - description: Config NoC USB2 AXI Clock. 217 218examples: 219 - | 220 #include <dt-bindings/clock/qcom,rpmcc.h> 221 222 bimc: interconnect@400000 { 223 compatible = "qcom,msm8916-bimc"; 224 reg = <0x00400000 0x62000>; 225 #interconnect-cells = <1>; 226 clock-names = "bus", "bus_a"; 227 clocks = <&rpmcc RPM_SMD_BIMC_CLK>, 228 <&rpmcc RPM_SMD_BIMC_A_CLK>; 229 }; 230 231 pcnoc: interconnect@500000 { 232 compatible = "qcom,msm8916-pcnoc"; 233 reg = <0x00500000 0x11000>; 234 #interconnect-cells = <1>; 235 clock-names = "bus", "bus_a"; 236 clocks = <&rpmcc RPM_SMD_PCNOC_CLK>, 237 <&rpmcc RPM_SMD_PCNOC_A_CLK>; 238 }; 239 240 snoc: interconnect@580000 { 241 compatible = "qcom,msm8916-snoc"; 242 reg = <0x00580000 0x14000>; 243 #interconnect-cells = <1>; 244 clock-names = "bus", "bus_a"; 245 clocks = <&rpmcc RPM_SMD_SNOC_CLK>, 246 <&rpmcc RPM_SMD_SNOC_A_CLK>; 247 }; 248