linux/Documentation/devicetree/bindings/iommu
Yong Wu 29746d0125 dt-bindings: mediatek: Add binding for mt8183 IOMMU and SMI
This patch adds decriptions for mt8183 IOMMU and SMI.

mt8183 has only one M4U like mt8173 and is also MTK IOMMU gen2 which
uses ARM Short-Descriptor translation table format.

The mt8183 M4U-SMI HW diagram is as below:

                          EMI
                           |
                          M4U
                           |
                       ----------
                       |        |
                   gals0-rx   gals1-rx
                       |        |
                       |        |
                   gals0-tx   gals1-tx
                       |        |
                      ------------
                       SMI Common
                      ------------
                           |
  +-----+-----+--------+-----+-----+-------+-------+
  |     |     |        |     |     |       |       |
  |     |  gals-rx  gals-rx  |   gals-rx gals-rx gals-rx
  |     |     |        |     |     |       |       |
  |     |     |        |     |     |       |       |
  |     |  gals-tx  gals-tx  |   gals-tx gals-tx gals-tx
  |     |     |        |     |     |       |       |
larb0 larb1  IPU0    IPU1  larb4  larb5  larb6    CCU
disp  vdec   img     cam    venc   img    cam

All the connections are HW fixed, SW can NOT adjust it.

Compared with mt8173, we add a GALS(Global Async Local Sync) module
between SMI-common and M4U, and additional GALS between larb2/3/5/6
and SMI-common. GALS can help synchronize for the modules in different
clock frequency, it can be seen as a "asynchronous fifo".

GALS can only help transfer the command/data while it doesn't have
the configuring register, thus it has the special "smi" clock and it
doesn't have the "apb" clock. From the diagram above, we add "gals0"
and "gals1" clocks for smi-common and add a "gals" clock for smi-larb.

>From the diagram above, IPU0/IPU1(Image Processor Unit) and CCU(Camera
Control Unit) is connected with smi-common directly, we can take them
as "larb2", "larb3" and "larb7", and their register spaces are
different with the normal larb.

Signed-off-by: Yong Wu <yong.wu@mediatek.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Evan Green <evgreen@chromium.org>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
2019-08-30 15:57:26 +02:00
..
arm,smmu-v3.txt iommu/arm-smmu-v3: Add workaround for Cavium ThunderX2 erratum #126 2017-06-23 17:58:04 +01:00
arm,smmu.txt dt-bindings: arm-smmu: Add binding doc for Qcom smmu-500 2018-12-17 10:16:36 +01:00
iommu.txt devicetree: Add generic IOMMU device tree bindings 2014-07-31 20:28:43 +02:00
mediatek,iommu.txt dt-bindings: mediatek: Add binding for mt8183 IOMMU and SMI 2019-08-30 15:57:26 +02:00
msm,iommu-v0.txt documentation: iommu: Add bindings for msm,iommu-v0 ip 2016-06-21 13:56:00 +02:00
nvidia,tegra30-smmu.txt iommu/tegra: smmu: Add device tree support for SMMU 2012-06-25 13:50:43 +02:00
qcom,iommu.txt dt-bindings: Remove leading zeros from bindings notation 2017-11-09 17:05:05 -06:00
renesas,ipmmu-vmsa.txt dt-bindings: iommu: ipmmu-vmsa: Add r8a774c0 support 2018-12-17 10:25:52 +01:00
rockchip,iommu.txt dt-bindings: iommu/rockchip: Add clock property 2018-03-29 12:22:27 +02:00
samsung,sysmmu.txt dt-bindings: remove 'interrupt-parent' from bindings 2018-07-25 14:09:39 -06:00
ti,omap-iommu.txt Documentation: dt: Update OMAP iommu bindings for DRA7 DSPs 2015-10-14 14:35:47 +02:00