blob: 3ed027cfca95cc98010342cf5d68363bbc801301 [file] [log] [blame]
Laurent Pinchart4a93f212014-03-17 01:02:46 +01001* Renesas VMSA-Compatible IOMMU
2
3The IPMMU is an IOMMU implementation compatible with the ARM VMSA page tables.
4It provides address translation for bus masters outside of the CPU, each
5connected to the IPMMU through a port called micro-TLB.
6
7
8Required Properties:
9
Magnus Dammd4e42e72016-02-29 23:33:09 +090010 - compatible: Must contain SoC-specific and generic entry below in case
11 the device is compatible with the R-Car Gen2 VMSA-compatible IPMMU.
Magnus Damm89ae54b2015-11-17 12:53:20 +090012
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.
Magnus Dammd4e42e72016-02-29 23:33:09 +090018 - "renesas,ipmmu-r8a7795" for the R8A7795 (R-Car H3) IPMMU.
Magnus Damm89ae54b2015-11-17 12:53:20 +090019 - "renesas,ipmmu-vmsa" for generic R-Car Gen2 VMSA-compatible IPMMU.
20
Laurent Pinchart4a93f212014-03-17 01:02:46 +010021 - reg: Base address and size of the IPMMU registers.
22 - interrupts: Specifiers for the MMU fault interrupts. For instances that
23 support secure mode two interrupts must be specified, for non-secure and
24 secure mode, in that order. For instances that don't support secure mode a
Magnus Dammd4e42e72016-02-29 23:33:09 +090025 single interrupt must be specified. Not required for cache IPMMUs.
Laurent Pinchart4a93f212014-03-17 01:02:46 +010026
27 - #iommu-cells: Must be 1.
28
Magnus Dammd4e42e72016-02-29 23:33:09 +090029Optional properties:
30
31 - renesas,ipmmu-main: reference to the main IPMMU instance in two cells.
32 The first cell is a phandle to the main IPMMU and the second cell is
33 the interrupt bit number associated with the particular cache IPMMU device.
34 The interrupt bit number needs to match the main IPMMU IMSSTR register.
35 Only used by cache IPMMU instances.
36
37
Laurent Pinchart4a93f212014-03-17 01:02:46 +010038Each bus master connected to an IPMMU must reference the IPMMU in its device
39node with the following property:
40
41 - iommus: A reference to the IPMMU in two cells. The first cell is a phandle
42 to the IPMMU and the second cell the number of the micro-TLB that the
43 device is connected to.
44
45
46Example: R8A7791 IPMMU-MX and VSP1-D0 bus master
47
48 ipmmu_mx: mmu@fe951000 {
Magnus Damm89ae54b2015-11-17 12:53:20 +090049 compatible = "renasas,ipmmu-r8a7791", "renasas,ipmmu-vmsa";
Laurent Pinchart4a93f212014-03-17 01:02:46 +010050 reg = <0 0xfe951000 0 0x1000>;
51 interrupts = <0 222 IRQ_TYPE_LEVEL_HIGH>,
52 <0 221 IRQ_TYPE_LEVEL_HIGH>;
53 #iommu-cells = <1>;
54 };
55
56 vsp1@fe928000 {
57 ...
58 iommus = <&ipmmu_mx 13>;
59 ...
60 };