1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/mailbox/qcom,apcs-kpss-global.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm APCS global block 8 9description: 10 This binding describes the APCS "global" block found in various Qualcomm 11 platforms. 12 13maintainers: 14 - Jassi Brar <jassisinghbrar@gmail.com> 15 16properties: 17 compatible: 18 oneOf: 19 - items: 20 - enum: 21 - qcom,ipq5018-apcs-apps-global 22 - qcom,ipq5332-apcs-apps-global 23 - qcom,ipq5424-apcs-apps-global 24 - qcom,ipq8074-apcs-apps-global 25 - qcom,ipq9574-apcs-apps-global 26 - const: qcom,ipq6018-apcs-apps-global 27 - items: 28 - enum: 29 - qcom,msm8226-apcs-kpss-global 30 - qcom,qcs404-apcs-apps-global 31 - const: qcom,msm8916-apcs-kpss-global 32 - const: syscon 33 - items: 34 - enum: 35 - qcom,msm8974-apcs-kpss-global 36 - qcom,msm8976-apcs-kpss-global 37 - const: qcom,msm8994-apcs-kpss-global 38 - const: syscon 39 - items: 40 - enum: 41 - qcom,msm8998-apcs-hmss-global 42 - qcom,sdm660-apcs-hmss-global 43 - qcom,sm4250-apcs-hmss-global 44 - qcom,sm6115-apcs-hmss-global 45 - qcom,sm6125-apcs-hmss-global 46 - const: qcom,msm8994-apcs-kpss-global 47 - items: 48 - enum: 49 - qcom,qcs615-apss-shared 50 - qcom,sc7180-apss-shared 51 - qcom,sc8180x-apss-shared 52 - qcom,sm7150-apss-shared 53 - qcom,sm8150-apss-shared 54 - const: qcom,sdm845-apss-shared 55 - items: 56 - enum: 57 - qcom,msm8916-apcs-kpss-global 58 - qcom,msm8939-apcs-kpss-global 59 - qcom,msm8953-apcs-kpss-global 60 - qcom,msm8994-apcs-kpss-global 61 - qcom,sdx55-apcs-gcc 62 - const: syscon 63 - enum: 64 - qcom,ipq6018-apcs-apps-global 65 - qcom,msm8996-apcs-hmss-global 66 - qcom,qcm2290-apcs-hmss-global 67 - qcom,sdm845-apss-shared 68 69 reg: 70 maxItems: 1 71 72 clocks: 73 description: phandles to the parent clocks of the clock driver 74 minItems: 2 75 maxItems: 3 76 deprecated: true 77 78 '#mbox-cells': 79 const: 1 80 81 '#clock-cells': 82 enum: [0, 1] 83 84 clock-names: 85 minItems: 2 86 maxItems: 3 87 deprecated: true 88 89 clock-controller: 90 type: object 91 additionalProperties: false 92 properties: 93 clocks: 94 description: phandles to the parent clocks of the clock driver 95 minItems: 2 96 maxItems: 3 97 98 '#clock-cells': 99 enum: [0, 1] 100 101 clock-names: 102 minItems: 2 103 maxItems: 3 104 105required: 106 - compatible 107 - reg 108 - '#mbox-cells' 109 110additionalProperties: false 111 112# Clocks should be specified either on the parent node or on the child node 113oneOf: 114 - required: 115 - clock-controller 116 properties: 117 clocks: false 118 clock-names: false 119 '#clock-cells': false 120 - properties: 121 clock-controller: false 122 123$defs: 124 msm8916-apcs-clock-controller: 125 properties: 126 clocks: 127 items: 128 - description: primary pll parent of the clock driver 129 - description: auxiliary parent 130 clock-names: 131 items: 132 - const: pll 133 - const: aux 134 '#clock-cells': 135 const: 0 136 137 msm8939-apcs-clock-controller: 138 properties: 139 clocks: 140 items: 141 - description: primary pll parent of the clock driver 142 - description: auxiliary parent 143 - description: reference clock 144 clock-names: 145 items: 146 - const: pll 147 - const: aux 148 - const: ref 149 '#clock-cells': 150 const: 0 151 152 sdx55-apcs-clock-controller: 153 properties: 154 clocks: 155 items: 156 - description: reference clock 157 - description: primary pll parent of the clock driver 158 - description: auxiliary parent 159 clock-names: 160 items: 161 - const: ref 162 - const: pll 163 - const: aux 164 '#clock-cells': 165 const: 0 166 167 ipq6018-apcs-clock-controller: 168 properties: 169 clocks: 170 items: 171 - description: primary pll parent of the clock driver 172 - description: XO clock 173 - description: GCC GPLL0 clock source 174 clock-names: 175 items: 176 - const: pll 177 - const: xo 178 - const: gpll0 179 '#clock-cells': 180 const: 1 181 182allOf: 183 - if: 184 properties: 185 compatible: 186 contains: 187 enum: 188 - qcom,msm8916-apcs-kpss-global 189 then: 190 $ref: "#/$defs/msm8916-apcs-clock-controller" 191 properties: 192 clock-controller: 193 $ref: "#/$defs/msm8916-apcs-clock-controller" 194 195 - if: 196 properties: 197 compatible: 198 contains: 199 enum: 200 - qcom,msm8939-apcs-kpss-global 201 then: 202 $ref: "#/$defs/msm8939-apcs-clock-controller" 203 properties: 204 clock-controller: 205 $ref: "#/$defs/msm8939-apcs-clock-controller" 206 207 - if: 208 properties: 209 compatible: 210 contains: 211 enum: 212 - qcom,sdx55-apcs-gcc 213 then: 214 $ref: "#/$defs/sdx55-apcs-clock-controller" 215 properties: 216 clock-controller: 217 $ref: "#/$defs/sdx55-apcs-clock-controller" 218 219 - if: 220 properties: 221 compatible: 222 contains: 223 enum: 224 - qcom,ipq6018-apcs-apps-global 225 then: 226 $ref: "#/$defs/ipq6018-apcs-clock-controller" 227 properties: 228 clock-controller: 229 $ref: "#/$defs/ipq6018-apcs-clock-controller" 230 231 - if: 232 properties: 233 compatible: 234 contains: 235 enum: 236 - qcom,msm8953-apcs-kpss-global 237 - qcom,msm8994-apcs-kpss-global 238 - qcom,msm8996-apcs-hmss-global 239 - qcom,qcm2290-apcs-hmss-global 240 - qcom,sdm845-apss-shared 241 then: 242 properties: 243 clocks: false 244 clock-names: false 245 clock-controller: false 246 '#clock-cells': 247 const: 0 248 249examples: 250 251 # Example apcs with msm8996 252 - | 253 #include <dt-bindings/interrupt-controller/arm-gic.h> 254 mailbox@9820000 { 255 compatible = "qcom,msm8996-apcs-hmss-global"; 256 reg = <0x9820000 0x1000>; 257 258 #mbox-cells = <1>; 259 #clock-cells = <0>; 260 }; 261 262 # Example apcs with qcs404 263 - | 264 #define GCC_APSS_AHB_CLK_SRC 1 265 #define GCC_GPLL0_AO_OUT_MAIN 123 266 mailbox@b011000 { 267 compatible = "qcom,qcs404-apcs-apps-global", 268 "qcom,msm8916-apcs-kpss-global", "syscon"; 269 reg = <0x0b011000 0x1000>; 270 #mbox-cells = <1>; 271 272 apcs_clk: clock-controller { 273 clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>; 274 clock-names = "pll", "aux"; 275 #clock-cells = <0>; 276 }; 277 }; 278 279 # Example apcs with qcs404 (deprecated: use clock-controller subnode) 280 - | 281 #define GCC_APSS_AHB_CLK_SRC 1 282 #define GCC_GPLL0_AO_OUT_MAIN 123 283 apcs: mailbox@b011000 { 284 compatible = "qcom,qcs404-apcs-apps-global", 285 "qcom,msm8916-apcs-kpss-global", "syscon"; 286 reg = <0x0b011000 0x1000>; 287 #mbox-cells = <1>; 288 clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>; 289 clock-names = "pll", "aux"; 290 #clock-cells = <0>; 291 }; 292