Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/iommu/renesas,ipmmu-vmsa.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Renesas VMSA-Compatible IOMMU
0008 
0009 maintainers:
0010   - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
0011 
0012 description:
0013   The IPMMU is an IOMMU implementation compatible with the ARM VMSA page tables.
0014   It provides address translation for bus masters outside of the CPU, each
0015   connected to the IPMMU through a port called micro-TLB.
0016 
0017 properties:
0018   compatible:
0019     oneOf:
0020       - items:
0021           - enum:
0022               - renesas,ipmmu-r8a73a4  # R-Mobile APE6
0023               - renesas,ipmmu-r8a7742  # RZ/G1H
0024               - renesas,ipmmu-r8a7743  # RZ/G1M
0025               - renesas,ipmmu-r8a7744  # RZ/G1N
0026               - renesas,ipmmu-r8a7745  # RZ/G1E
0027               - renesas,ipmmu-r8a7790  # R-Car H2
0028               - renesas,ipmmu-r8a7791  # R-Car M2-W
0029               - renesas,ipmmu-r8a7793  # R-Car M2-N
0030               - renesas,ipmmu-r8a7794  # R-Car E2
0031           - const: renesas,ipmmu-vmsa  # R-Mobile APE6 or R-Car Gen2 or RZ/G1
0032       - items:
0033           - enum:
0034               - renesas,ipmmu-r8a774a1 # RZ/G2M
0035               - renesas,ipmmu-r8a774b1 # RZ/G2N
0036               - renesas,ipmmu-r8a774c0 # RZ/G2E
0037               - renesas,ipmmu-r8a774e1 # RZ/G2H
0038               - renesas,ipmmu-r8a7795  # R-Car H3
0039               - renesas,ipmmu-r8a7796  # R-Car M3-W
0040               - renesas,ipmmu-r8a77961 # R-Car M3-W+
0041               - renesas,ipmmu-r8a77965 # R-Car M3-N
0042               - renesas,ipmmu-r8a77970 # R-Car V3M
0043               - renesas,ipmmu-r8a77980 # R-Car V3H
0044               - renesas,ipmmu-r8a77990 # R-Car E3
0045               - renesas,ipmmu-r8a77995 # R-Car D3
0046               - renesas,ipmmu-r8a779a0 # R-Car V3U
0047       - items:
0048           - enum:
0049               - renesas,ipmmu-r8a779f0 # R-Car S4-8
0050           - const: renesas,rcar-gen4-ipmmu-vmsa  # R-Car Gen4
0051 
0052   reg:
0053     maxItems: 1
0054 
0055   interrupts:
0056     minItems: 1
0057     description:
0058       Specifiers for the MMU fault interrupts. Not required for cache IPMMUs.
0059     items:
0060       - description: non-secure mode
0061       - description: secure mode if supported
0062 
0063   '#iommu-cells':
0064     const: 1
0065     description:
0066       The number of the micro-TLB that the device is connected to.
0067 
0068   power-domains:
0069     maxItems: 1
0070 
0071   renesas,ipmmu-main:
0072     $ref: /schemas/types.yaml#/definitions/phandle-array
0073     items:
0074       - items:
0075           - description: phandle to main IPMMU
0076           - description: the interrupt bit number associated with the particular
0077               cache IPMMU device. The interrupt bit number needs to match the main
0078               IPMMU IMSSTR register. Only used by cache IPMMU instances.
0079     description:
0080       Reference to the main IPMMU phandle plus 1 cell. The cell is
0081       the interrupt bit number associated with the particular cache IPMMU
0082       device. The interrupt bit number needs to match the main IPMMU IMSSTR
0083       register. Only used by cache IPMMU instances.
0084 
0085 required:
0086   - compatible
0087   - reg
0088   - '#iommu-cells'
0089 
0090 oneOf:
0091   - required:
0092       - interrupts
0093   - required:
0094       - renesas,ipmmu-main
0095 
0096 additionalProperties: false
0097 
0098 allOf:
0099   - if:
0100       properties:
0101         compatible:
0102           not:
0103             contains:
0104               const: renesas,ipmmu-vmsa
0105     then:
0106       required:
0107         - power-domains
0108 
0109 examples:
0110   - |
0111     #include <dt-bindings/clock/r8a7791-cpg-mssr.h>
0112     #include <dt-bindings/interrupt-controller/arm-gic.h>
0113     #include <dt-bindings/power/r8a7791-sysc.h>
0114 
0115     ipmmu_mx: iommu@fe951000 {
0116         compatible = "renesas,ipmmu-r8a7791", "renesas,ipmmu-vmsa";
0117         reg = <0xfe951000 0x1000>;
0118         interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>,
0119                      <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
0120         #iommu-cells = <1>;
0121     };