1fac71e4eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) 2fac71e4eSEmmanuel Vadot%YAML 1.2 3fac71e4eSEmmanuel Vadot--- 4fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/cache/qcom,llcc.yaml# 5fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6fac71e4eSEmmanuel Vadot 7fac71e4eSEmmanuel Vadottitle: Last Level Cache Controller 8fac71e4eSEmmanuel Vadot 9fac71e4eSEmmanuel Vadotmaintainers: 10fac71e4eSEmmanuel Vadot - Bjorn Andersson <andersson@kernel.org> 11fac71e4eSEmmanuel Vadot 12fac71e4eSEmmanuel Vadotdescription: | 13fac71e4eSEmmanuel Vadot LLCC (Last Level Cache Controller) provides last level of cache memory in SoC, 14fac71e4eSEmmanuel Vadot that can be shared by multiple clients. Clients here are different cores in the 15fac71e4eSEmmanuel Vadot SoC, the idea is to minimize the local caches at the clients and migrate to 16fac71e4eSEmmanuel Vadot common pool of memory. Cache memory is divided into partitions called slices 17fac71e4eSEmmanuel Vadot which are assigned to clients. Clients can query the slice details, activate 18fac71e4eSEmmanuel Vadot and deactivate them. 19fac71e4eSEmmanuel Vadot 20fac71e4eSEmmanuel Vadotproperties: 21fac71e4eSEmmanuel Vadot compatible: 22fac71e4eSEmmanuel Vadot enum: 2384943d6fSEmmanuel Vadot - qcom,qdu1000-llcc 24fac71e4eSEmmanuel Vadot - qcom,sc7180-llcc 25fac71e4eSEmmanuel Vadot - qcom,sc7280-llcc 26fac71e4eSEmmanuel Vadot - qcom,sc8180x-llcc 27fac71e4eSEmmanuel Vadot - qcom,sc8280xp-llcc 28fac71e4eSEmmanuel Vadot - qcom,sdm845-llcc 29fac71e4eSEmmanuel Vadot - qcom,sm6350-llcc 30fac71e4eSEmmanuel Vadot - qcom,sm7150-llcc 31fac71e4eSEmmanuel Vadot - qcom,sm8150-llcc 32fac71e4eSEmmanuel Vadot - qcom,sm8250-llcc 33fac71e4eSEmmanuel Vadot - qcom,sm8350-llcc 34fac71e4eSEmmanuel Vadot - qcom,sm8450-llcc 35fac71e4eSEmmanuel Vadot - qcom,sm8550-llcc 36*8d13bc63SEmmanuel Vadot - qcom,sm8650-llcc 37*8d13bc63SEmmanuel Vadot - qcom,x1e80100-llcc 38fac71e4eSEmmanuel Vadot 39fac71e4eSEmmanuel Vadot reg: 40fac71e4eSEmmanuel Vadot minItems: 2 41fac71e4eSEmmanuel Vadot maxItems: 9 42fac71e4eSEmmanuel Vadot 43fac71e4eSEmmanuel Vadot reg-names: 44fac71e4eSEmmanuel Vadot minItems: 2 45fac71e4eSEmmanuel Vadot maxItems: 9 46fac71e4eSEmmanuel Vadot 47fac71e4eSEmmanuel Vadot interrupts: 48fac71e4eSEmmanuel Vadot maxItems: 1 49fac71e4eSEmmanuel Vadot 5084943d6fSEmmanuel Vadot nvmem-cells: 5184943d6fSEmmanuel Vadot items: 5284943d6fSEmmanuel Vadot - description: Reference to an nvmem node for multi channel DDR 5384943d6fSEmmanuel Vadot 5484943d6fSEmmanuel Vadot nvmem-cell-names: 5584943d6fSEmmanuel Vadot items: 5684943d6fSEmmanuel Vadot - const: multi-chan-ddr 5784943d6fSEmmanuel Vadot 58fac71e4eSEmmanuel Vadotrequired: 59fac71e4eSEmmanuel Vadot - compatible 60fac71e4eSEmmanuel Vadot - reg 61fac71e4eSEmmanuel Vadot - reg-names 62fac71e4eSEmmanuel Vadot 63fac71e4eSEmmanuel VadotallOf: 64fac71e4eSEmmanuel Vadot - if: 65fac71e4eSEmmanuel Vadot properties: 66fac71e4eSEmmanuel Vadot compatible: 67fac71e4eSEmmanuel Vadot contains: 68fac71e4eSEmmanuel Vadot enum: 69*8d13bc63SEmmanuel Vadot - qcom,qdu1000-llcc 70fac71e4eSEmmanuel Vadot - qcom,sc7180-llcc 71fac71e4eSEmmanuel Vadot - qcom,sm6350-llcc 72fac71e4eSEmmanuel Vadot then: 73fac71e4eSEmmanuel Vadot properties: 74fac71e4eSEmmanuel Vadot reg: 75fac71e4eSEmmanuel Vadot items: 76fac71e4eSEmmanuel Vadot - description: LLCC0 base register region 77fac71e4eSEmmanuel Vadot - description: LLCC broadcast base register region 78fac71e4eSEmmanuel Vadot reg-names: 79fac71e4eSEmmanuel Vadot items: 80fac71e4eSEmmanuel Vadot - const: llcc0_base 81fac71e4eSEmmanuel Vadot - const: llcc_broadcast_base 82fac71e4eSEmmanuel Vadot 83fac71e4eSEmmanuel Vadot - if: 84fac71e4eSEmmanuel Vadot properties: 85fac71e4eSEmmanuel Vadot compatible: 86fac71e4eSEmmanuel Vadot contains: 87fac71e4eSEmmanuel Vadot enum: 88fac71e4eSEmmanuel Vadot - qcom,sc7280-llcc 89fac71e4eSEmmanuel Vadot then: 90fac71e4eSEmmanuel Vadot properties: 91fac71e4eSEmmanuel Vadot reg: 92fac71e4eSEmmanuel Vadot items: 93fac71e4eSEmmanuel Vadot - description: LLCC0 base register region 94fac71e4eSEmmanuel Vadot - description: LLCC1 base register region 95fac71e4eSEmmanuel Vadot - description: LLCC broadcast base register region 96fac71e4eSEmmanuel Vadot reg-names: 97fac71e4eSEmmanuel Vadot items: 98fac71e4eSEmmanuel Vadot - const: llcc0_base 99fac71e4eSEmmanuel Vadot - const: llcc1_base 100fac71e4eSEmmanuel Vadot - const: llcc_broadcast_base 101fac71e4eSEmmanuel Vadot 102fac71e4eSEmmanuel Vadot - if: 103fac71e4eSEmmanuel Vadot properties: 104fac71e4eSEmmanuel Vadot compatible: 105fac71e4eSEmmanuel Vadot contains: 106fac71e4eSEmmanuel Vadot enum: 107fac71e4eSEmmanuel Vadot - qcom,sc8180x-llcc 108fac71e4eSEmmanuel Vadot - qcom,sc8280xp-llcc 109*8d13bc63SEmmanuel Vadot - qcom,x1e80100-llcc 110fac71e4eSEmmanuel Vadot then: 111fac71e4eSEmmanuel Vadot properties: 112fac71e4eSEmmanuel Vadot reg: 113fac71e4eSEmmanuel Vadot items: 114fac71e4eSEmmanuel Vadot - description: LLCC0 base register region 115fac71e4eSEmmanuel Vadot - description: LLCC1 base register region 116fac71e4eSEmmanuel Vadot - description: LLCC2 base register region 117fac71e4eSEmmanuel Vadot - description: LLCC3 base register region 118fac71e4eSEmmanuel Vadot - description: LLCC4 base register region 119fac71e4eSEmmanuel Vadot - description: LLCC5 base register region 120fac71e4eSEmmanuel Vadot - description: LLCC6 base register region 121fac71e4eSEmmanuel Vadot - description: LLCC7 base register region 122fac71e4eSEmmanuel Vadot - description: LLCC broadcast base register region 123fac71e4eSEmmanuel Vadot reg-names: 124fac71e4eSEmmanuel Vadot items: 125fac71e4eSEmmanuel Vadot - const: llcc0_base 126fac71e4eSEmmanuel Vadot - const: llcc1_base 127fac71e4eSEmmanuel Vadot - const: llcc2_base 128fac71e4eSEmmanuel Vadot - const: llcc3_base 129fac71e4eSEmmanuel Vadot - const: llcc4_base 130fac71e4eSEmmanuel Vadot - const: llcc5_base 131fac71e4eSEmmanuel Vadot - const: llcc6_base 132fac71e4eSEmmanuel Vadot - const: llcc7_base 133fac71e4eSEmmanuel Vadot - const: llcc_broadcast_base 134fac71e4eSEmmanuel Vadot 135fac71e4eSEmmanuel Vadot - if: 136fac71e4eSEmmanuel Vadot properties: 137fac71e4eSEmmanuel Vadot compatible: 138fac71e4eSEmmanuel Vadot contains: 139fac71e4eSEmmanuel Vadot enum: 140fac71e4eSEmmanuel Vadot - qcom,sdm845-llcc 141fac71e4eSEmmanuel Vadot - qcom,sm8150-llcc 142fac71e4eSEmmanuel Vadot - qcom,sm8250-llcc 143fac71e4eSEmmanuel Vadot - qcom,sm8350-llcc 144fac71e4eSEmmanuel Vadot - qcom,sm8450-llcc 145fac71e4eSEmmanuel Vadot - qcom,sm8550-llcc 146fac71e4eSEmmanuel Vadot then: 147fac71e4eSEmmanuel Vadot properties: 148fac71e4eSEmmanuel Vadot reg: 149fac71e4eSEmmanuel Vadot items: 150fac71e4eSEmmanuel Vadot - description: LLCC0 base register region 151fac71e4eSEmmanuel Vadot - description: LLCC1 base register region 152fac71e4eSEmmanuel Vadot - description: LLCC2 base register region 153fac71e4eSEmmanuel Vadot - description: LLCC3 base register region 154fac71e4eSEmmanuel Vadot - description: LLCC broadcast base register region 155fac71e4eSEmmanuel Vadot reg-names: 156fac71e4eSEmmanuel Vadot items: 157fac71e4eSEmmanuel Vadot - const: llcc0_base 158fac71e4eSEmmanuel Vadot - const: llcc1_base 159fac71e4eSEmmanuel Vadot - const: llcc2_base 160fac71e4eSEmmanuel Vadot - const: llcc3_base 161fac71e4eSEmmanuel Vadot - const: llcc_broadcast_base 162fac71e4eSEmmanuel Vadot 163fac71e4eSEmmanuel VadotadditionalProperties: false 164fac71e4eSEmmanuel Vadot 165fac71e4eSEmmanuel Vadotexamples: 166fac71e4eSEmmanuel Vadot - | 167fac71e4eSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 168fac71e4eSEmmanuel Vadot 169fac71e4eSEmmanuel Vadot soc { 170fac71e4eSEmmanuel Vadot #address-cells = <2>; 171fac71e4eSEmmanuel Vadot #size-cells = <2>; 172fac71e4eSEmmanuel Vadot 173fac71e4eSEmmanuel Vadot system-cache-controller@1100000 { 174fac71e4eSEmmanuel Vadot compatible = "qcom,sdm845-llcc"; 175fac71e4eSEmmanuel Vadot reg = <0 0x01100000 0 0x50000>, <0 0x01180000 0 0x50000>, 176fac71e4eSEmmanuel Vadot <0 0x01200000 0 0x50000>, <0 0x01280000 0 0x50000>, 177fac71e4eSEmmanuel Vadot <0 0x01300000 0 0x50000>; 178fac71e4eSEmmanuel Vadot reg-names = "llcc0_base", "llcc1_base", "llcc2_base", 179fac71e4eSEmmanuel Vadot "llcc3_base", "llcc_broadcast_base"; 180fac71e4eSEmmanuel Vadot interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>; 181fac71e4eSEmmanuel Vadot }; 182fac71e4eSEmmanuel Vadot }; 183