1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2*4882a593Smuzhiyun%YAML 1.2 3*4882a593Smuzhiyun--- 4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/arm/socionext/socionext,uniphier-system-cache.yaml# 5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml# 6*4882a593Smuzhiyun 7*4882a593Smuzhiyuntitle: UniPhier outer cache controller 8*4882a593Smuzhiyun 9*4882a593Smuzhiyundescription: | 10*4882a593Smuzhiyun UniPhier ARM 32-bit SoCs are integrated with a full-custom outer cache 11*4882a593Smuzhiyun controller system. All of them have a level 2 cache controller, and some 12*4882a593Smuzhiyun have a level 3 cache controller as well. 13*4882a593Smuzhiyun 14*4882a593Smuzhiyunmaintainers: 15*4882a593Smuzhiyun - Masahiro Yamada <yamada.masahiro@socionext.com> 16*4882a593Smuzhiyun 17*4882a593Smuzhiyunproperties: 18*4882a593Smuzhiyun compatible: 19*4882a593Smuzhiyun const: socionext,uniphier-system-cache 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun reg: 22*4882a593Smuzhiyun description: | 23*4882a593Smuzhiyun should contain 3 regions: control register, revision register, 24*4882a593Smuzhiyun operation register, in this order. 25*4882a593Smuzhiyun minItems: 3 26*4882a593Smuzhiyun maxItems: 3 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun interrupts: 29*4882a593Smuzhiyun description: | 30*4882a593Smuzhiyun Interrupts can be used to notify the completion of cache operations. 31*4882a593Smuzhiyun The number of interrupts should match to the number of CPU cores. 32*4882a593Smuzhiyun The specified interrupts correspond to CPU0, CPU1, ... in this order. 33*4882a593Smuzhiyun minItems: 1 34*4882a593Smuzhiyun maxItems: 4 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun cache-unified: true 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun cache-size: true 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun cache-sets: true 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun cache-line-size: true 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun cache-level: 45*4882a593Smuzhiyun minimum: 2 46*4882a593Smuzhiyun maximum: 3 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun next-level-cache: true 49*4882a593Smuzhiyun 50*4882a593SmuzhiyunallOf: 51*4882a593Smuzhiyun - $ref: /schemas/cache-controller.yaml# 52*4882a593Smuzhiyun 53*4882a593SmuzhiyunadditionalProperties: false 54*4882a593Smuzhiyun 55*4882a593Smuzhiyunrequired: 56*4882a593Smuzhiyun - compatible 57*4882a593Smuzhiyun - reg 58*4882a593Smuzhiyun - interrupts 59*4882a593Smuzhiyun - cache-unified 60*4882a593Smuzhiyun - cache-size 61*4882a593Smuzhiyun - cache-sets 62*4882a593Smuzhiyun - cache-line-size 63*4882a593Smuzhiyun - cache-level 64*4882a593Smuzhiyun 65*4882a593Smuzhiyunexamples: 66*4882a593Smuzhiyun - | 67*4882a593Smuzhiyun // System with L2. 68*4882a593Smuzhiyun cache-controller@500c0000 { 69*4882a593Smuzhiyun compatible = "socionext,uniphier-system-cache"; 70*4882a593Smuzhiyun reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>; 71*4882a593Smuzhiyun interrupts = <0 174 4>, <0 175 4>, <0 190 4>, <0 191 4>; 72*4882a593Smuzhiyun cache-unified; 73*4882a593Smuzhiyun cache-size = <0x140000>; 74*4882a593Smuzhiyun cache-sets = <512>; 75*4882a593Smuzhiyun cache-line-size = <128>; 76*4882a593Smuzhiyun cache-level = <2>; 77*4882a593Smuzhiyun }; 78*4882a593Smuzhiyun - | 79*4882a593Smuzhiyun // System with L2 and L3. 80*4882a593Smuzhiyun // L2 should specify the next level cache by 'next-level-cache'. 81*4882a593Smuzhiyun l2: cache-controller@500c0000 { 82*4882a593Smuzhiyun compatible = "socionext,uniphier-system-cache"; 83*4882a593Smuzhiyun reg = <0x500c0000 0x2000>, <0x503c0100 0x8>, <0x506c0000 0x400>; 84*4882a593Smuzhiyun interrupts = <0 190 4>, <0 191 4>; 85*4882a593Smuzhiyun cache-unified; 86*4882a593Smuzhiyun cache-size = <0x200000>; 87*4882a593Smuzhiyun cache-sets = <512>; 88*4882a593Smuzhiyun cache-line-size = <128>; 89*4882a593Smuzhiyun cache-level = <2>; 90*4882a593Smuzhiyun next-level-cache = <&l3>; 91*4882a593Smuzhiyun }; 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun l3: cache-controller@500c8000 { 94*4882a593Smuzhiyun compatible = "socionext,uniphier-system-cache"; 95*4882a593Smuzhiyun reg = <0x500c8000 0x2000>, <0x503c8100 0x8>, <0x506c8000 0x400>; 96*4882a593Smuzhiyun interrupts = <0 174 4>, <0 175 4>; 97*4882a593Smuzhiyun cache-unified; 98*4882a593Smuzhiyun cache-size = <0x200000>; 99*4882a593Smuzhiyun cache-sets = <512>; 100*4882a593Smuzhiyun cache-line-size = <256>; 101*4882a593Smuzhiyun cache-level = <3>; 102*4882a593Smuzhiyun }; 103