2016-02-23 01:20:48 +08:00
|
|
|
SMI (Smart Multimedia Interface) Local Arbiter
|
|
|
|
|
|
|
|
The hardware block diagram please check bindings/iommu/mediatek,iommu.txt
|
|
|
|
|
|
|
|
Required properties:
|
2016-06-08 17:50:57 +08:00
|
|
|
- compatible : must be one of :
|
|
|
|
"mediatek,mt2701-smi-larb"
|
2018-05-24 20:35:31 +08:00
|
|
|
"mediatek,mt2712-smi-larb"
|
2018-10-03 17:09:12 +08:00
|
|
|
"mediatek,mt7623-smi-larb", "mediatek,mt2701-smi-larb"
|
2018-05-24 20:35:31 +08:00
|
|
|
"mediatek,mt8173-smi-larb"
|
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-24 11:01:46 +08:00
|
|
|
"mediatek,mt8183-smi-larb"
|
2016-02-23 01:20:48 +08:00
|
|
|
- reg : the register and size of this local arbiter.
|
|
|
|
- mediatek,smi : a phandle to the smi_common node.
|
|
|
|
- power-domains : a phandle to the power domain of this local arbiter.
|
|
|
|
- clocks : Must contain an entry for each entry in clock-names.
|
|
|
|
- clock-names: must contain 2 entries, as follows:
|
|
|
|
- "apb" : Advanced Peripheral Bus clock, It's the clock for setting
|
|
|
|
the register.
|
|
|
|
- "smi" : It's the clock for transfer data and command.
|
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-24 11:01:46 +08:00
|
|
|
and this optional clock name:
|
|
|
|
- "gals": the clock for GALS(Global Async Local Sync).
|
|
|
|
Here is the list which has this GALS: mt8183.
|
2016-02-23 01:20:48 +08:00
|
|
|
|
2018-10-03 17:09:12 +08:00
|
|
|
Required property for mt2701, mt2712 and mt7623:
|
2017-08-04 09:32:27 +08:00
|
|
|
- mediatek,larb-id :the hardware id of this larb.
|
|
|
|
|
2016-02-23 01:20:48 +08:00
|
|
|
Example:
|
|
|
|
larb1: larb@16010000 {
|
|
|
|
compatible = "mediatek,mt8173-smi-larb";
|
|
|
|
reg = <0 0x16010000 0 0x1000>;
|
|
|
|
mediatek,smi = <&smi_common>;
|
|
|
|
power-domains = <&scpsys MT8173_POWER_DOMAIN_VDEC>;
|
|
|
|
clocks = <&vdecsys CLK_VDEC_CKEN>,
|
|
|
|
<&vdecsys CLK_VDEC_LARB_CKEN>;
|
|
|
|
clock-names = "apb", "smi";
|
|
|
|
};
|
2017-08-04 09:32:27 +08:00
|
|
|
|
|
|
|
Example for mt2701:
|
|
|
|
larb0: larb@14010000 {
|
|
|
|
compatible = "mediatek,mt2701-smi-larb";
|
|
|
|
reg = <0 0x14010000 0 0x1000>;
|
|
|
|
mediatek,smi = <&smi_common>;
|
|
|
|
mediatek,larb-id = <0>;
|
|
|
|
clocks = <&mmsys CLK_MM_SMI_LARB0>,
|
|
|
|
<&mmsys CLK_MM_SMI_LARB0>;
|
|
|
|
clock-names = "apb", "smi";
|
|
|
|
power-domains = <&scpsys MT2701_POWER_DOMAIN_DISP>;
|
|
|
|
};
|