# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iommu/mediatek,iommu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MediaTek IOMMU Architecture Implementation

maintainers:
  - Yong Wu <yong.wu@mediatek.com>

description: |+
  Some MediaTek SOCs contain a Multimedia Memory Management Unit (M4U), and
  this M4U have two generations of HW architecture. Generation one uses flat
  pagetable, and only supports 4K size page mapping. Generation two uses the
  ARM Short-Descriptor translation table format for address translation.

  About the M4U Hardware Block Diagram, please check below:

                EMI (External Memory Interface)
                 |
                m4u (Multimedia Memory Management Unit)
                 |
            +--------+
            |        |
        gals0-rx   gals1-rx    (Global Async Local Sync rx)
            |        |
            |        |
        gals0-tx   gals1-tx    (Global Async Local Sync tx)
            |        |          Some SoCs may have GALS.
            +--------+
                 |
             SMI Common(Smart Multimedia Interface Common)
                 |
         +----------------+-------
         |                |
         |             gals-rx        There may be GALS in some larbs.
         |                |
         |                |
         |             gals-tx
         |                |
     SMI larb0        SMI larb1   ... SoCs have several SMI local arbiter(larb).
     (display)         (vdec)
         |                |
         |                |
   +-----+-----+     +----+----+
   |     |     |     |    |    |
   |     |     |...  |    |    |  ... There are different ports in each larb.
   |     |     |     |    |    |
  OVL0 RDMA0 WDMA0  MC   PP   VLD

  As above, The Multimedia HW will go through SMI and M4U while it
  access EMI. SMI is a bridge between m4u and the Multimedia HW. It contain
  smi local arbiter and smi common. It will control whether the Multimedia
  HW should go though the m4u for translation or bypass it and talk
  directly with EMI. And also SMI help control the power domain and clocks for
  each local arbiter.

  Normally we specify a local arbiter(larb) for each multimedia HW
  like display, video decode, and camera. And there are different ports
  in each larb. Take a example, There are many ports like MC, PP, VLD in the
  video decode local arbiter, all these ports are according to the video HW.

  In some SoCs, there may be a GALS(Global Async Local Sync) module between
  smi-common and m4u, and additional GALS module between smi-larb and
  smi-common. GALS can been seen as a "asynchronous fifo" which could help
  synchronize for the modules in different clock frequency.

properties:
  compatible:
    oneOf:
      - enum:
          - mediatek,mt2701-m4u  # generation one
          - mediatek,mt2712-m4u  # generation two
          - mediatek,mt6779-m4u  # generation two
          - mediatek,mt6795-m4u  # generation two
          - mediatek,mt6893-iommu-mm         # generation two
          - mediatek,mt8167-m4u  # generation two
          - mediatek,mt8173-m4u  # generation two
          - mediatek,mt8183-m4u  # generation two
          - mediatek,mt8186-iommu-mm         # generation two
          - mediatek,mt8188-iommu-vdo        # generation two
          - mediatek,mt8188-iommu-vpp        # generation two
          - mediatek,mt8188-iommu-infra      # generation two
          - mediatek,mt8192-m4u  # generation two
          - mediatek,mt8195-iommu-vdo        # generation two
          - mediatek,mt8195-iommu-vpp        # generation two
          - mediatek,mt8195-iommu-infra      # generation two
          - mediatek,mt8365-m4u  # generation two

      - description: mt7623 generation one
        items:
          - const: mediatek,mt7623-m4u
          - const: mediatek,mt2701-m4u

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: bclk is the block clock.

  clock-names:
    items:
      - const: bclk

  mediatek,infracfg:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: The phandle to the mediatek infracfg syscon

  mediatek,larbs:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    minItems: 1
    maxItems: 32
    items:
      maxItems: 1
    description: |
      List of phandle to the local arbiters in the current Socs.
      Refer to bindings/memory-controllers/mediatek,smi-larb.yaml. It must sort
      according to the local arbiter index, like larb0, larb1, larb2...

  '#iommu-cells':
    const: 1
    description: |
      This is the mtk_m4u_id according to the HW. Specifies the mtk_m4u_id as
      defined in
      dt-binding/memory/mediatek,mt8188-memory-port.h for mt8188,
      dt-binding/memory/mt2701-larb-port.h for mt2701 and mt7623,
      dt-binding/memory/mt2712-larb-port.h for mt2712,
      dt-binding/memory/mt6779-larb-port.h for mt6779,
      dt-binding/memory/mt6795-larb-port.h for mt6795,
      dt-binding/memory/mediatek,mt6893-memory-port.h for mt6893,
      dt-binding/memory/mt8167-larb-port.h for mt8167,
      dt-binding/memory/mt8173-larb-port.h for mt8173,
      dt-binding/memory/mt8183-larb-port.h for mt8183,
      dt-binding/memory/mt8186-memory-port.h for mt8186,
      dt-binding/memory/mt8192-larb-port.h for mt8192.
      dt-binding/memory/mt8195-memory-port.h for mt8195.
      dt-binding/memory/mediatek,mt8365-larb-port.h for mt8365.

  power-domains:
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts
  - '#iommu-cells'

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - mediatek,mt2701-m4u
              - mediatek,mt2712-m4u
              - mediatek,mt6795-m4u
              - mediatek,mt6893-iommu-mm
              - mediatek,mt8173-m4u
              - mediatek,mt8186-iommu-mm
              - mediatek,mt8188-iommu-vdo
              - mediatek,mt8188-iommu-vpp
              - mediatek,mt8192-m4u
              - mediatek,mt8195-iommu-vdo
              - mediatek,mt8195-iommu-vpp

    then:
      required:
        - clocks

  - if:
      properties:
        compatible:
          enum:
            - mediatek,mt6893-iommu-mm
            - mediatek,mt8186-iommu-mm
            - mediatek,mt8188-iommu-vdo
            - mediatek,mt8188-iommu-vpp
            - mediatek,mt8192-m4u
            - mediatek,mt8195-iommu-vdo
            - mediatek,mt8195-iommu-vpp

    then:
      required:
        - power-domains

  - if:
      properties:
        compatible:
          contains:
            enum:
              - mediatek,mt2712-m4u
              - mediatek,mt6795-m4u
              - mediatek,mt8173-m4u

    then:
      required:
        - mediatek,infracfg

  - if: # The IOMMUs don't have larbs.
      not:
        properties:
          compatible:
            contains:
              enum:
                - mediatek,mt8188-iommu-infra
                - mediatek,mt8195-iommu-infra

    then:
      required:
        - mediatek,larbs

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/mt8173-clk.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    iommu: iommu@10205000 {
            compatible = "mediatek,mt8173-m4u";
            reg = <0x10205000 0x1000>;
            interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_LOW>;
            clocks = <&infracfg CLK_INFRA_M4U>;
            clock-names = "bclk";
            mediatek,infracfg = <&infracfg>;
            mediatek,larbs = <&larb0>, <&larb1>, <&larb2>,
                             <&larb3>, <&larb4>, <&larb5>;
            #iommu-cells = <1>;
    };
