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