1# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/cache/qcom,llcc.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Last Level Cache Controller 8 9maintainers: 10 - Bjorn Andersson <andersson@kernel.org> 11 12description: | 13 LLCC (Last Level Cache Controller) provides last level of cache memory in SoC, 14 that can be shared by multiple clients. Clients here are different cores in the 15 SoC, the idea is to minimize the local caches at the clients and migrate to 16 common pool of memory. Cache memory is divided into partitions called slices 17 which are assigned to clients. Clients can query the slice details, activate 18 and deactivate them. 19 20properties: 21 compatible: 22 oneOf: 23 - enum: 24 - qcom,eliza-llcc 25 - qcom,glymur-llcc 26 - qcom,hawi-llcc 27 - qcom,ipq5424-llcc 28 - qcom,kaanapali-llcc 29 - qcom,nord-llcc 30 - qcom,qcs615-llcc 31 - qcom,qcs8300-llcc 32 - qcom,qdu1000-llcc 33 - qcom,sa8775p-llcc 34 - qcom,sar1130p-llcc 35 - qcom,sar2130p-llcc 36 - qcom,sc7180-llcc 37 - qcom,sc7280-llcc 38 - qcom,sc8180x-llcc 39 - qcom,sc8280xp-llcc 40 - qcom,sdm670-llcc 41 - qcom,sdm845-llcc 42 - qcom,shikra-llcc 43 - qcom,sm6350-llcc 44 - qcom,sm7150-llcc 45 - qcom,sm8150-llcc 46 - qcom,sm8250-llcc 47 - qcom,sm8350-llcc 48 - qcom,sm8450-llcc 49 - qcom,sm8550-llcc 50 - qcom,sm8650-llcc 51 - qcom,sm8750-llcc 52 - qcom,x1e80100-llcc 53 - items: 54 - enum: 55 - qcom,maili-llcc 56 - const: qcom,hawi-llcc 57 58 reg: 59 minItems: 1 60 maxItems: 18 61 62 reg-names: 63 minItems: 1 64 maxItems: 18 65 66 interrupts: 67 maxItems: 1 68 69 memory-region: 70 maxItems: 1 71 description: handle to a reserved-memory node used for firmware-populated 72 SLC/SCT shared memory. 73 74 nvmem-cells: 75 items: 76 - description: Reference to an nvmem node for multi channel DDR 77 78 nvmem-cell-names: 79 items: 80 - const: multi-chan-ddr 81 82required: 83 - compatible 84 - reg 85 - reg-names 86 87allOf: 88 - if: 89 properties: 90 compatible: 91 contains: 92 enum: 93 - qcom,ipq5424-llcc 94 then: 95 properties: 96 reg: 97 items: 98 - description: LLCC0 base register region 99 reg-names: 100 items: 101 - const: llcc0_base 102 103 - if: 104 properties: 105 compatible: 106 contains: 107 enum: 108 - qcom,glymur-llcc 109 then: 110 properties: 111 reg: 112 items: 113 - description: LLCC0 base register region 114 - description: LLCC1 base register region 115 - description: LLCC2 base register region 116 - description: LLCC3 base register region 117 - description: LLCC4 base register region 118 - description: LLCC5 base register region 119 - description: LLCC6 base register region 120 - description: LLCC7 base register region 121 - description: LLCC8 base register region 122 - description: LLCC9 base register region 123 - description: LLCC10 base register region 124 - description: LLCC11 base register region 125 - description: LLCC broadcast base register region 126 - description: LLCC broadcast AND register region 127 reg-names: 128 items: 129 - const: llcc0_base 130 - const: llcc1_base 131 - const: llcc2_base 132 - const: llcc3_base 133 - const: llcc4_base 134 - const: llcc5_base 135 - const: llcc6_base 136 - const: llcc7_base 137 - const: llcc8_base 138 - const: llcc9_base 139 - const: llcc10_base 140 - const: llcc11_base 141 - const: llcc_broadcast_base 142 - const: llcc_broadcast_and_base 143 144 - if: 145 properties: 146 compatible: 147 contains: 148 enum: 149 - qcom,sar1130p-llcc 150 - qcom,sar2130p-llcc 151 then: 152 properties: 153 reg: 154 items: 155 - description: LLCC0 base register region 156 - description: LLCC1 base register region 157 - description: LLCC broadcast OR register region 158 - description: LLCC broadcast AND register region 159 - description: LLCC scratchpad broadcast OR register region 160 - description: LLCC scratchpad broadcast AND register region 161 reg-names: 162 items: 163 - const: llcc0_base 164 - const: llcc1_base 165 - const: llcc_broadcast_base 166 - const: llcc_broadcast_and_base 167 - const: llcc_scratchpad_broadcast_base 168 - const: llcc_scratchpad_broadcast_and_base 169 170 - if: 171 properties: 172 compatible: 173 contains: 174 enum: 175 - qcom,qcs615-llcc 176 - qcom,sc7180-llcc 177 - qcom,sm6350-llcc 178 then: 179 properties: 180 reg: 181 items: 182 - description: LLCC0 base register region 183 - description: LLCC broadcast base register region 184 reg-names: 185 items: 186 - const: llcc0_base 187 - const: llcc_broadcast_base 188 189 - if: 190 properties: 191 compatible: 192 contains: 193 enum: 194 - qcom,sa8775p-llcc 195 then: 196 properties: 197 reg: 198 items: 199 - description: LLCC0 base register region 200 - description: LLCC1 base register region 201 - description: LLCC2 base register region 202 - description: LLCC3 base register region 203 - description: LLCC4 base register region 204 - description: LLCC5 base register region 205 - description: LLCC broadcast base register region 206 reg-names: 207 items: 208 - const: llcc0_base 209 - const: llcc1_base 210 - const: llcc2_base 211 - const: llcc3_base 212 - const: llcc4_base 213 - const: llcc5_base 214 - const: llcc_broadcast_base 215 216 - if: 217 properties: 218 compatible: 219 contains: 220 enum: 221 - qcom,sc7280-llcc 222 - qcom,sdm670-llcc 223 - qcom,shikra-llcc 224 then: 225 properties: 226 reg: 227 items: 228 - description: LLCC0 base register region 229 - description: LLCC1 base register region 230 - description: LLCC broadcast base register region 231 reg-names: 232 items: 233 - const: llcc0_base 234 - const: llcc1_base 235 - const: llcc_broadcast_base 236 237 - if: 238 properties: 239 compatible: 240 contains: 241 enum: 242 - qcom,qdu1000-llcc 243 - qcom,sc8180x-llcc 244 - qcom,sc8280xp-llcc 245 then: 246 properties: 247 reg: 248 items: 249 - description: LLCC0 base register region 250 - description: LLCC1 base register region 251 - description: LLCC2 base register region 252 - description: LLCC3 base register region 253 - description: LLCC4 base register region 254 - description: LLCC5 base register region 255 - description: LLCC6 base register region 256 - description: LLCC7 base register region 257 - description: LLCC broadcast base register region 258 reg-names: 259 items: 260 - const: llcc0_base 261 - const: llcc1_base 262 - const: llcc2_base 263 - const: llcc3_base 264 - const: llcc4_base 265 - const: llcc5_base 266 - const: llcc6_base 267 - const: llcc7_base 268 - const: llcc_broadcast_base 269 270 - if: 271 properties: 272 compatible: 273 contains: 274 enum: 275 - qcom,x1e80100-llcc 276 then: 277 properties: 278 reg: 279 items: 280 - description: LLCC0 base register region 281 - description: LLCC1 base register region 282 - description: LLCC2 base register region 283 - description: LLCC3 base register region 284 - description: LLCC4 base register region 285 - description: LLCC5 base register region 286 - description: LLCC6 base register region 287 - description: LLCC7 base register region 288 - description: LLCC broadcast base register region 289 - description: LLCC broadcast AND register region 290 reg-names: 291 items: 292 - const: llcc0_base 293 - const: llcc1_base 294 - const: llcc2_base 295 - const: llcc3_base 296 - const: llcc4_base 297 - const: llcc5_base 298 - const: llcc6_base 299 - const: llcc7_base 300 - const: llcc_broadcast_base 301 - const: llcc_broadcast_and_base 302 303 - if: 304 properties: 305 compatible: 306 contains: 307 enum: 308 - qcom,qcs8300-llcc 309 - qcom,sdm845-llcc 310 - qcom,sm8150-llcc 311 - qcom,sm8250-llcc 312 - qcom,sm8350-llcc 313 then: 314 properties: 315 reg: 316 items: 317 - description: LLCC0 base register region 318 - description: LLCC1 base register region 319 - description: LLCC2 base register region 320 - description: LLCC3 base register region 321 - description: LLCC broadcast base register region 322 reg-names: 323 items: 324 - const: llcc0_base 325 - const: llcc1_base 326 - const: llcc2_base 327 - const: llcc3_base 328 - const: llcc_broadcast_base 329 330 - if: 331 properties: 332 compatible: 333 contains: 334 enum: 335 - qcom,kaanapali-llcc 336 - qcom,hawi-llcc 337 - qcom,sm8450-llcc 338 - qcom,sm8550-llcc 339 - qcom,sm8650-llcc 340 - qcom,sm8750-llcc 341 then: 342 properties: 343 reg: 344 items: 345 - description: LLCC0 base register region 346 - description: LLCC1 base register region 347 - description: LLCC2 base register region 348 - description: LLCC3 base register region 349 - description: LLCC broadcast OR register region 350 - description: LLCC broadcast AND register region 351 reg-names: 352 items: 353 - const: llcc0_base 354 - const: llcc1_base 355 - const: llcc2_base 356 - const: llcc3_base 357 - const: llcc_broadcast_base 358 - const: llcc_broadcast_and_base 359 360 - if: 361 properties: 362 compatible: 363 contains: 364 enum: 365 - qcom,nord-llcc 366 then: 367 properties: 368 reg: 369 items: 370 - description: LLCC0 base register region 371 - description: LLCC1 base register region 372 - description: LLCC2 base register region 373 - description: LLCC3 base register region 374 - description: LLCC4 base register region 375 - description: LLCC5 base register region 376 - description: LLCC6 base register region 377 - description: LLCC7 base register region 378 - description: LLCC8 base register region 379 - description: LLCC9 base register region 380 - description: LLCC10 base register region 381 - description: LLCC11 base register region 382 - description: LLCC12 base register region 383 - description: LLCC13 base register region 384 - description: LLCC14 base register region 385 - description: LLCC15 base register region 386 - description: LLCC broadcast OR register region 387 - description: LLCC broadcast AND register region 388 reg-names: 389 items: 390 - const: llcc0_base 391 - const: llcc1_base 392 - const: llcc2_base 393 - const: llcc3_base 394 - const: llcc4_base 395 - const: llcc5_base 396 - const: llcc6_base 397 - const: llcc7_base 398 - const: llcc8_base 399 - const: llcc9_base 400 - const: llcc10_base 401 - const: llcc11_base 402 - const: llcc12_base 403 - const: llcc13_base 404 - const: llcc14_base 405 - const: llcc15_base 406 - const: llcc_broadcast_base 407 - const: llcc_broadcast_and_base 408 409 - if: 410 properties: 411 compatible: 412 contains: 413 enum: 414 - qcom,hawi-llcc 415 then: 416 required: 417 - memory-region 418 else: 419 properties: 420 memory-region: false 421 422 - if: 423 properties: 424 compatible: 425 contains: 426 enum: 427 - qcom,eliza-llcc 428 then: 429 properties: 430 reg: 431 items: 432 - description: LLCC0 base register region 433 - description: LLCC2 base register region 434 - description: LLCC broadcast OR register region 435 - description: LLCC broadcast AND register region 436 reg-names: 437 items: 438 - const: llcc0_base 439 - const: llcc2_base 440 - const: llcc_broadcast_base 441 - const: llcc_broadcast_and_base 442 443additionalProperties: false 444 445examples: 446 - | 447 #include <dt-bindings/interrupt-controller/arm-gic.h> 448 449 soc { 450 #address-cells = <2>; 451 #size-cells = <2>; 452 453 system-cache-controller@1100000 { 454 compatible = "qcom,sdm845-llcc"; 455 reg = <0 0x01100000 0 0x50000>, <0 0x01180000 0 0x50000>, 456 <0 0x01200000 0 0x50000>, <0 0x01280000 0 0x50000>, 457 <0 0x01300000 0 0x50000>; 458 reg-names = "llcc0_base", "llcc1_base", "llcc2_base", 459 "llcc3_base", "llcc_broadcast_base"; 460 interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>; 461 }; 462 }; 463