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