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/iommu/renesas,ipmmu-vmsa.yaml# 5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml# 6*4882a593Smuzhiyun 7*4882a593Smuzhiyuntitle: Renesas VMSA-Compatible IOMMU 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunmaintainers: 10*4882a593Smuzhiyun - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyundescription: 13*4882a593Smuzhiyun The IPMMU is an IOMMU implementation compatible with the ARM VMSA page tables. 14*4882a593Smuzhiyun It provides address translation for bus masters outside of the CPU, each 15*4882a593Smuzhiyun connected to the IPMMU through a port called micro-TLB. 16*4882a593Smuzhiyun 17*4882a593Smuzhiyunproperties: 18*4882a593Smuzhiyun compatible: 19*4882a593Smuzhiyun oneOf: 20*4882a593Smuzhiyun - items: 21*4882a593Smuzhiyun - enum: 22*4882a593Smuzhiyun - renesas,ipmmu-r8a73a4 # R-Mobile APE6 23*4882a593Smuzhiyun - renesas,ipmmu-r8a7742 # RZ/G1H 24*4882a593Smuzhiyun - renesas,ipmmu-r8a7743 # RZ/G1M 25*4882a593Smuzhiyun - renesas,ipmmu-r8a7744 # RZ/G1N 26*4882a593Smuzhiyun - renesas,ipmmu-r8a7745 # RZ/G1E 27*4882a593Smuzhiyun - renesas,ipmmu-r8a7790 # R-Car H2 28*4882a593Smuzhiyun - renesas,ipmmu-r8a7791 # R-Car M2-W 29*4882a593Smuzhiyun - renesas,ipmmu-r8a7793 # R-Car M2-N 30*4882a593Smuzhiyun - renesas,ipmmu-r8a7794 # R-Car E2 31*4882a593Smuzhiyun - const: renesas,ipmmu-vmsa # R-Mobile APE6 or R-Car Gen2 or RZ/G1 32*4882a593Smuzhiyun - items: 33*4882a593Smuzhiyun - enum: 34*4882a593Smuzhiyun - renesas,ipmmu-r8a774a1 # RZ/G2M 35*4882a593Smuzhiyun - renesas,ipmmu-r8a774b1 # RZ/G2N 36*4882a593Smuzhiyun - renesas,ipmmu-r8a774c0 # RZ/G2E 37*4882a593Smuzhiyun - renesas,ipmmu-r8a774e1 # RZ/G2H 38*4882a593Smuzhiyun - renesas,ipmmu-r8a7795 # R-Car H3 39*4882a593Smuzhiyun - renesas,ipmmu-r8a7796 # R-Car M3-W 40*4882a593Smuzhiyun - renesas,ipmmu-r8a77961 # R-Car M3-W+ 41*4882a593Smuzhiyun - renesas,ipmmu-r8a77965 # R-Car M3-N 42*4882a593Smuzhiyun - renesas,ipmmu-r8a77970 # R-Car V3M 43*4882a593Smuzhiyun - renesas,ipmmu-r8a77980 # R-Car V3H 44*4882a593Smuzhiyun - renesas,ipmmu-r8a77990 # R-Car E3 45*4882a593Smuzhiyun - renesas,ipmmu-r8a77995 # R-Car D3 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun reg: 48*4882a593Smuzhiyun maxItems: 1 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun interrupts: 51*4882a593Smuzhiyun minItems: 1 52*4882a593Smuzhiyun maxItems: 2 53*4882a593Smuzhiyun description: 54*4882a593Smuzhiyun Specifiers for the MMU fault interrupts. Not required for cache IPMMUs. 55*4882a593Smuzhiyun items: 56*4882a593Smuzhiyun - description: non-secure mode 57*4882a593Smuzhiyun - description: secure mode if supported 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun '#iommu-cells': 60*4882a593Smuzhiyun const: 1 61*4882a593Smuzhiyun description: 62*4882a593Smuzhiyun The number of the micro-TLB that the device is connected to. 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun power-domains: 65*4882a593Smuzhiyun maxItems: 1 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun renesas,ipmmu-main: 68*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/phandle-array 69*4882a593Smuzhiyun description: 70*4882a593Smuzhiyun Reference to the main IPMMU phandle plus 1 cell. The cell is 71*4882a593Smuzhiyun the interrupt bit number associated with the particular cache IPMMU 72*4882a593Smuzhiyun device. The interrupt bit number needs to match the main IPMMU IMSSTR 73*4882a593Smuzhiyun register. Only used by cache IPMMU instances. 74*4882a593Smuzhiyun 75*4882a593Smuzhiyunrequired: 76*4882a593Smuzhiyun - compatible 77*4882a593Smuzhiyun - reg 78*4882a593Smuzhiyun - '#iommu-cells' 79*4882a593Smuzhiyun - power-domains 80*4882a593Smuzhiyun 81*4882a593SmuzhiyunoneOf: 82*4882a593Smuzhiyun - required: 83*4882a593Smuzhiyun - interrupts 84*4882a593Smuzhiyun - required: 85*4882a593Smuzhiyun - renesas,ipmmu-main 86*4882a593Smuzhiyun 87*4882a593SmuzhiyunadditionalProperties: false 88*4882a593Smuzhiyun 89*4882a593Smuzhiyunexamples: 90*4882a593Smuzhiyun - | 91*4882a593Smuzhiyun #include <dt-bindings/clock/r8a7791-cpg-mssr.h> 92*4882a593Smuzhiyun #include <dt-bindings/interrupt-controller/arm-gic.h> 93*4882a593Smuzhiyun #include <dt-bindings/power/r8a7791-sysc.h> 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun ipmmu_mx: iommu@fe951000 { 96*4882a593Smuzhiyun compatible = "renasas,ipmmu-r8a7791", "renasas,ipmmu-vmsa"; 97*4882a593Smuzhiyun reg = <0xfe951000 0x1000>; 98*4882a593Smuzhiyun interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>, 99*4882a593Smuzhiyun <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>; 100*4882a593Smuzhiyun #iommu-cells = <1>; 101*4882a593Smuzhiyun }; 102