Merge tag 'iommu-updates-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / iommu / renesas,ipmmu-vmsa.txt
1 * Renesas VMSA-Compatible IOMMU
2
3 The IPMMU is an IOMMU implementation compatible with the ARM VMSA page tables.
4 It provides address translation for bus masters outside of the CPU, each
5 connected to the IPMMU through a port called micro-TLB.
6
7
8 Required Properties:
9
10   - compatible: Must contain SoC-specific and generic entry below in case
11     the device is compatible with the R-Car Gen2 VMSA-compatible IPMMU.
12
13     - "renesas,ipmmu-r8a73a4" for the R8A73A4 (R-Mobile APE6) IPMMU.
14     - "renesas,ipmmu-r8a7790" for the R8A7790 (R-Car H2) IPMMU.
15     - "renesas,ipmmu-r8a7791" for the R8A7791 (R-Car M2-W) IPMMU.
16     - "renesas,ipmmu-r8a7793" for the R8A7793 (R-Car M2-N) IPMMU.
17     - "renesas,ipmmu-r8a7794" for the R8A7794 (R-Car E2) IPMMU.
18     - "renesas,ipmmu-r8a7795" for the R8A7795 (R-Car H3) IPMMU.
19     - "renesas,ipmmu-r8a7796" for the R8A7796 (R-Car M3-W) IPMMU.
20     - "renesas,ipmmu-r8a77970" for the R8A77970 (R-Car V3M) IPMMU.
21     - "renesas,ipmmu-r8a77995" for the R8A77995 (R-Car D3) IPMMU.
22     - "renesas,ipmmu-vmsa" for generic R-Car Gen2 VMSA-compatible IPMMU.
23
24   - reg: Base address and size of the IPMMU registers.
25   - interrupts: Specifiers for the MMU fault interrupts. For instances that
26     support secure mode two interrupts must be specified, for non-secure and
27     secure mode, in that order. For instances that don't support secure mode a
28     single interrupt must be specified. Not required for cache IPMMUs.
29
30   - #iommu-cells: Must be 1.
31
32 Optional properties:
33
34   - renesas,ipmmu-main: reference to the main IPMMU instance in two cells.
35     The first cell is a phandle to the main IPMMU and the second cell is
36     the interrupt bit number associated with the particular cache IPMMU device.
37     The interrupt bit number needs to match the main IPMMU IMSSTR register.
38     Only used by cache IPMMU instances.
39
40
41 Each bus master connected to an IPMMU must reference the IPMMU in its device
42 node with the following property:
43
44   - iommus: A reference to the IPMMU in two cells. The first cell is a phandle
45     to the IPMMU and the second cell the number of the micro-TLB that the
46     device is connected to.
47
48
49 Example: R8A7791 IPMMU-MX and VSP1-D0 bus master
50
51         ipmmu_mx: mmu@fe951000 {
52                 compatible = "renasas,ipmmu-r8a7791", "renasas,ipmmu-vmsa";
53                 reg = <0 0xfe951000 0 0x1000>;
54                 interrupts = <0 222 IRQ_TYPE_LEVEL_HIGH>,
55                              <0 221 IRQ_TYPE_LEVEL_HIGH>;
56                 #iommu-cells = <1>;
57         };
58
59         vsp@fe928000 {
60                 ...
61                 iommus = <&ipmmu_mx 13>;
62                 ...
63         };