# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/iommu/samsung,sysmmu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

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

maintainers:
  - Marek Szyprowski <m.szyprowski@samsung.com>

description: |+
  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.

  For information on assigning System MMU controller to its peripheral devices,
  see generic IOMMU bindings.

properties:
  compatible:
    const: samsung,exynos-sysmmu

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 2

  clock-names:
    oneOf:
      - items:
          - const: sysmmu
      - items:
          - const: sysmmu
          - const: master
      - items:
          - const: aclk
          - const: pclk

  "#iommu-cells":
    const: 0

  power-domains:
    description: |
      Required if the System MMU is needed to gate its power.
      Please refer to the following document:
      Documentation/devicetree/bindings/power/pd-samsung.yaml
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - "#iommu-cells"

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/exynos5250.h>

    gsc_0: scaler@13e00000 {
      compatible = "samsung,exynos5-gsc";
      reg = <0x13e00000 0x1000>;
      interrupts = <0 85 0>;
      power-domains = <&pd_gsc>;
      clocks = <&clock CLK_GSCL0>;
      clock-names = "gscl";
      iommus = <&sysmmu_gsc0>;
    };

    sysmmu_gsc0: iommu@13e80000 {
      compatible = "samsung,exynos-sysmmu";
      reg = <0x13E80000 0x1000>;
      interrupt-parent = <&combiner>;
      interrupts = <2 0>;
      clock-names = "sysmmu", "master";
      clocks = <&clock CLK_SMMU_GSCL0>,
               <&clock CLK_GSCL0>;
      power-domains = <&pd_gsc>;
      #iommu-cells = <0>;
    };

