OpenCloudOS-Kernel/include/dt-bindings/memory
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
..
mt2701-larb-port.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
mt2712-larb-port.h dt-bindings: mediatek: Add binding for mt2712 IOMMU and SMI 2018-07-18 17:01:04 +02:00
mt8173-larb-port.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
mt8183-larb-port.h dt-bindings: mediatek: Add binding for mt8183 IOMMU and SMI 2019-08-30 15:57:26 +02:00
tegra20-mc.h dt-bindings: memory: tegra: Add hot resets definitions 2018-04-27 11:21:21 +02:00
tegra30-mc.h dt-bindings: memory: tegra: Add hot resets definitions 2018-04-27 11:21:21 +02:00
tegra114-mc.h dt-bindings: memory: tegra: Remove Tegra114 SATA and AFI reset definitions 2018-05-18 22:45:01 +02:00
tegra124-mc.h dt-bindings: memory: tegra: Add hot resets definitions 2018-04-27 11:21:21 +02:00
tegra186-mc.h dt-bindings: memory: Add Tegra186 support 2017-12-13 12:53:43 +01:00
tegra210-mc.h dt-bindings: memory: tegra: Add hot resets definitions 2018-04-27 11:21:21 +02:00