18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/arm/socionext/socionext,uniphier-system-cache.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: UniPhier outer cache controller 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cidescription: | 108c2ecf20Sopenharmony_ci UniPhier ARM 32-bit SoCs are integrated with a full-custom outer cache 118c2ecf20Sopenharmony_ci controller system. All of them have a level 2 cache controller, and some 128c2ecf20Sopenharmony_ci have a level 3 cache controller as well. 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_cimaintainers: 158c2ecf20Sopenharmony_ci - Masahiro Yamada <yamada.masahiro@socionext.com> 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciproperties: 188c2ecf20Sopenharmony_ci compatible: 198c2ecf20Sopenharmony_ci const: socionext,uniphier-system-cache 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci reg: 228c2ecf20Sopenharmony_ci description: | 238c2ecf20Sopenharmony_ci should contain 3 regions: control register, revision register, 248c2ecf20Sopenharmony_ci operation register, in this order. 258c2ecf20Sopenharmony_ci minItems: 3 268c2ecf20Sopenharmony_ci maxItems: 3 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci interrupts: 298c2ecf20Sopenharmony_ci description: | 308c2ecf20Sopenharmony_ci Interrupts can be used to notify the completion of cache operations. 318c2ecf20Sopenharmony_ci The number of interrupts should match to the number of CPU cores. 328c2ecf20Sopenharmony_ci The specified interrupts correspond to CPU0, CPU1, ... in this order. 338c2ecf20Sopenharmony_ci minItems: 1 348c2ecf20Sopenharmony_ci maxItems: 4 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci cache-unified: true 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci cache-size: true 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci cache-sets: true 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci cache-line-size: true 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci cache-level: 458c2ecf20Sopenharmony_ci minimum: 2 468c2ecf20Sopenharmony_ci maximum: 3 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci next-level-cache: true 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ciallOf: 518c2ecf20Sopenharmony_ci - $ref: /schemas/cache-controller.yaml# 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ciadditionalProperties: false 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_cirequired: 568c2ecf20Sopenharmony_ci - compatible 578c2ecf20Sopenharmony_ci - reg 588c2ecf20Sopenharmony_ci - interrupts 598c2ecf20Sopenharmony_ci - cache-unified 608c2ecf20Sopenharmony_ci - cache-size 618c2ecf20Sopenharmony_ci - cache-sets 628c2ecf20Sopenharmony_ci - cache-line-size 638c2ecf20Sopenharmony_ci - cache-level 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ciexamples: 668c2ecf20Sopenharmony_ci - | 678c2ecf20Sopenharmony_ci // System with L2. 688c2ecf20Sopenharmony_ci cache-controller@500c0000 { 698c2ecf20Sopenharmony_ci compatible = "socionext,uniphier-system-cache"; 708c2ecf20Sopenharmony_ci reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>; 718c2ecf20Sopenharmony_ci interrupts = <0 174 4>, <0 175 4>, <0 190 4>, <0 191 4>; 728c2ecf20Sopenharmony_ci cache-unified; 738c2ecf20Sopenharmony_ci cache-size = <0x140000>; 748c2ecf20Sopenharmony_ci cache-sets = <512>; 758c2ecf20Sopenharmony_ci cache-line-size = <128>; 768c2ecf20Sopenharmony_ci cache-level = <2>; 778c2ecf20Sopenharmony_ci }; 788c2ecf20Sopenharmony_ci - | 798c2ecf20Sopenharmony_ci // System with L2 and L3. 808c2ecf20Sopenharmony_ci // L2 should specify the next level cache by 'next-level-cache'. 818c2ecf20Sopenharmony_ci l2: cache-controller@500c0000 { 828c2ecf20Sopenharmony_ci compatible = "socionext,uniphier-system-cache"; 838c2ecf20Sopenharmony_ci reg = <0x500c0000 0x2000>, <0x503c0100 0x8>, <0x506c0000 0x400>; 848c2ecf20Sopenharmony_ci interrupts = <0 190 4>, <0 191 4>; 858c2ecf20Sopenharmony_ci cache-unified; 868c2ecf20Sopenharmony_ci cache-size = <0x200000>; 878c2ecf20Sopenharmony_ci cache-sets = <512>; 888c2ecf20Sopenharmony_ci cache-line-size = <128>; 898c2ecf20Sopenharmony_ci cache-level = <2>; 908c2ecf20Sopenharmony_ci next-level-cache = <&l3>; 918c2ecf20Sopenharmony_ci }; 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci l3: cache-controller@500c8000 { 948c2ecf20Sopenharmony_ci compatible = "socionext,uniphier-system-cache"; 958c2ecf20Sopenharmony_ci reg = <0x500c8000 0x2000>, <0x503c8100 0x8>, <0x506c8000 0x400>; 968c2ecf20Sopenharmony_ci interrupts = <0 174 4>, <0 175 4>; 978c2ecf20Sopenharmony_ci cache-unified; 988c2ecf20Sopenharmony_ci cache-size = <0x200000>; 998c2ecf20Sopenharmony_ci cache-sets = <512>; 1008c2ecf20Sopenharmony_ci cache-line-size = <256>; 1018c2ecf20Sopenharmony_ci cache-level = <3>; 1028c2ecf20Sopenharmony_ci }; 103