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/iommu/renesas,ipmmu-vmsa.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Renesas VMSA-Compatible IOMMU 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cidescription: 138c2ecf20Sopenharmony_ci The IPMMU is an IOMMU implementation compatible with the ARM VMSA page tables. 148c2ecf20Sopenharmony_ci It provides address translation for bus masters outside of the CPU, each 158c2ecf20Sopenharmony_ci connected to the IPMMU through a port called micro-TLB. 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciproperties: 188c2ecf20Sopenharmony_ci compatible: 198c2ecf20Sopenharmony_ci oneOf: 208c2ecf20Sopenharmony_ci - items: 218c2ecf20Sopenharmony_ci - enum: 228c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a73a4 # R-Mobile APE6 238c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a7742 # RZ/G1H 248c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a7743 # RZ/G1M 258c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a7744 # RZ/G1N 268c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a7745 # RZ/G1E 278c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a7790 # R-Car H2 288c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a7791 # R-Car M2-W 298c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a7793 # R-Car M2-N 308c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a7794 # R-Car E2 318c2ecf20Sopenharmony_ci - const: renesas,ipmmu-vmsa # R-Mobile APE6 or R-Car Gen2 or RZ/G1 328c2ecf20Sopenharmony_ci - items: 338c2ecf20Sopenharmony_ci - enum: 348c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a774a1 # RZ/G2M 358c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a774b1 # RZ/G2N 368c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a774c0 # RZ/G2E 378c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a774e1 # RZ/G2H 388c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a7795 # R-Car H3 398c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a7796 # R-Car M3-W 408c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a77961 # R-Car M3-W+ 418c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a77965 # R-Car M3-N 428c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a77970 # R-Car V3M 438c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a77980 # R-Car V3H 448c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a77990 # R-Car E3 458c2ecf20Sopenharmony_ci - renesas,ipmmu-r8a77995 # R-Car D3 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci reg: 488c2ecf20Sopenharmony_ci maxItems: 1 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci interrupts: 518c2ecf20Sopenharmony_ci minItems: 1 528c2ecf20Sopenharmony_ci maxItems: 2 538c2ecf20Sopenharmony_ci description: 548c2ecf20Sopenharmony_ci Specifiers for the MMU fault interrupts. Not required for cache IPMMUs. 558c2ecf20Sopenharmony_ci items: 568c2ecf20Sopenharmony_ci - description: non-secure mode 578c2ecf20Sopenharmony_ci - description: secure mode if supported 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci '#iommu-cells': 608c2ecf20Sopenharmony_ci const: 1 618c2ecf20Sopenharmony_ci description: 628c2ecf20Sopenharmony_ci The number of the micro-TLB that the device is connected to. 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ci power-domains: 658c2ecf20Sopenharmony_ci maxItems: 1 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ci renesas,ipmmu-main: 688c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/phandle-array 698c2ecf20Sopenharmony_ci description: 708c2ecf20Sopenharmony_ci Reference to the main IPMMU phandle plus 1 cell. The cell is 718c2ecf20Sopenharmony_ci the interrupt bit number associated with the particular cache IPMMU 728c2ecf20Sopenharmony_ci device. The interrupt bit number needs to match the main IPMMU IMSSTR 738c2ecf20Sopenharmony_ci register. Only used by cache IPMMU instances. 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_cirequired: 768c2ecf20Sopenharmony_ci - compatible 778c2ecf20Sopenharmony_ci - reg 788c2ecf20Sopenharmony_ci - '#iommu-cells' 798c2ecf20Sopenharmony_ci - power-domains 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_cioneOf: 828c2ecf20Sopenharmony_ci - required: 838c2ecf20Sopenharmony_ci - interrupts 848c2ecf20Sopenharmony_ci - required: 858c2ecf20Sopenharmony_ci - renesas,ipmmu-main 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ciadditionalProperties: false 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ciexamples: 908c2ecf20Sopenharmony_ci - | 918c2ecf20Sopenharmony_ci #include <dt-bindings/clock/r8a7791-cpg-mssr.h> 928c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 938c2ecf20Sopenharmony_ci #include <dt-bindings/power/r8a7791-sysc.h> 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ci ipmmu_mx: iommu@fe951000 { 968c2ecf20Sopenharmony_ci compatible = "renasas,ipmmu-r8a7791", "renasas,ipmmu-vmsa"; 978c2ecf20Sopenharmony_ci reg = <0xfe951000 0x1000>; 988c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>, 998c2ecf20Sopenharmony_ci <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>; 1008c2ecf20Sopenharmony_ci #iommu-cells = <1>; 1018c2ecf20Sopenharmony_ci }; 102