Samsung Exynos IOMMU H/W, System MMU (System Memory Management Unit)

Samsung's Exynos architecture contains System MMUs that enables scattered
physical memory chunks visible as a contiguous region to DMA-capable peripheral
devices like MFC, FIMC, FIMD, GScaler, FIMC-IS and so forth.

System MMU is an IOMMU and supports identical translation table format to
ARMv7 translation tables with minimum set of page properties including access
permissions, shareability and security protection. In addition, System MMU has
another capabilities like L2 TLB or block-fetch buffers to minimize translation
latency.

System MMUs are in many to one relation with peripheral devices, i.e. single
peripheral device might have multiple System MMUs (usually one for each bus
master), but one System MMU can handle transactions from only one peripheral
device. The relation between a System MMU and the peripheral device needs to be
defined in device node of the peripheral device.

MFC in all Exynos SoCs and FIMD, M2M Scalers and G2D in Exynos5420 has 2 System
MMUs.
* MFC has one System MMU on its left and right bus.
* FIMD in Exynos5420 has one System MMU for window 0 and 4, the other system MMU
  for window 1, 2 and 3.
* M2M Scalers and G2D in Exynos5420 has one System MMU on the read channel and
  the other System MMU on the write channel.
The drivers must consider how to handle those System MMUs. One of the idea is
to implement child devices or sub-devices which are the client devices of the
System MMU.

Required properties:
- compatible: Should be one of:
		"samsung,sysmmu-v1"
		"samsung,sysmmu-v2"
		"samsung,sysmmu-v3.1"
		"samsung,sysmmu-v3.2"
		"samsung,sysmmu-v3.3"

- reg: A tuple of base address and size of System MMU registers.
- interrupt-parent: The phandle of the interrupt controller of System MMU
- interrupts: An interrupt specifier for interrupt signal of System MMU,
	      according to the format defined by a particular interrupt
	      controller.
- clock-names: Should be "sysmmu" if the System MMU is needed to gate its clock.
               Please refer to the following documents:
	       Documentation/devicetree/bindings/clock/clock-bindings.txt
	       Documentation/devicetree/bindings/clock/exynos4-clock.txt
	       Documentation/devicetree/bindings/clock/exynos5250-clock.txt
	       Documentation/devicetree/bindings/clock/exynos5420-clock.txt
	       Optional "master" if the clock to the System MMU is gated by
	       another gate clock other than "sysmmu". The System MMU driver
	       sets "master" the parent of "sysmmu".
	       Exynos4 SoCs, there needs no "master" clockj.
	       Exynos5 SoCs, some System MMUs must have "master" clocks.
- clocks: Required if the System MMU is needed to gate its clock.
	  Please refer to the documents listed above.
- samsung,power-domain: Required if the System MMU is needed to gate its power.
	  Please refer to the following document:
	  Documentation/devicetree/bindings/arm/exynos/power_domain.txt
- mmu-masters: A phandle to device nodes representing the master for which
               the System MMU can provide a translation. Any additional values
	       after the phandle will be ignored because a System MMU never
	       have two or more masters. "#stream-id-cells" specified in the
	       master's node will be also ignored.
	       If more than one phandle is specified, only the first phandle
	       will be treated.

Examples:
	gsc_0: gsc@13e00000 {
		compatible = "samsung,exynos5-gsc";
		reg = <0x13e00000 0x1000>;
		interrupts = <0 85 0>;
		samsung,power-domain = <&pd_gsc>;
		clocks = <&clock 256>;
		clock-names = "gscl";
	};

	sysmmu_gsc0: sysmmu@13E80000 {
		compatible = "samsung,exynos4210-sysmmu";
		reg = <0x13E80000 0x1000>;
		interrupt-parent = <&combiner>;
		interrupts = <2 0>;
		clock-names = "sysmmu", "master";
		clocks = <&clock 262>, <&clock 256>;
		samsung,power-domain = <&pd_gsc>;
		mmu-masters = <&gsc_0>;
	};
