Add nodes for M4U, smi-common, and smi-larbs.

Signed-off-by: Yong Wu <yong...@mediatek.com>
---
This one is based on MTK IOMMU v6[1] and basical nodes of clocks and powers.

[1] https://patchwork.kernel.org/patch/10816827/
[2] https://patchwork.kernel.org/patch/10858941/
---
 arch/arm64/boot/dts/mediatek/mt8183.dtsi | 85 ++++++++++++++++++++++++++++++++
 1 file changed, 85 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt8183.dtsi 
b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
index 75c4881..1138da2 100644
--- a/arch/arm64/boot/dts/mediatek/mt8183.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
@@ -8,6 +8,7 @@
 #include <dt-bindings/clock/mt8183-clk.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/memory/mt8183-larb-port.h>
 #include <dt-bindings/power/mt8183-power.h>
 
 / {
@@ -269,6 +270,15 @@
                        clock-names = "spi", "wrap";
                };
 
+               iommu: iommu@10205000 {
+                       compatible = "mediatek,mt8183-m4u";
+                       reg = <0 0x10205000 0 0x1000>;
+                       interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_LOW>;
+                       mediatek,larbs = <&larb0 &larb1 &larb2 &larb3
+                                         &larb4 &larb5 &larb6>;
+                       #iommu-cells = <1>;
+               };
+
                uart0: serial@11002000 {
                        compatible = "mediatek,mt8183-uart",
                                     "mediatek,mt6577-uart";
@@ -317,9 +327,25 @@
                        #clock-cells = <1>;
                };
 
+               larb0: larb@14017000 {
+                       compatible = "mediatek,mt8183-smi-larb";
+                       reg = <0 0x14017000 0 0x1000>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&mmsys CLK_MM_SMI_LARB0>,
+                                <&mmsys CLK_MM_SMI_LARB0>;
+                       power-domains = <&scpsys MT8183_POWER_DOMAIN_DISP>;
+                       clock-names = "apb", "smi";
+               };
+
                smi_common: smi@14019000 {
                        compatible = "mediatek,mt8183-smi-common", "syscon";
                        reg = <0 0x14019000 0 0x1000>;
+                       clocks = <&mmsys CLK_MM_SMI_COMMON>,
+                                <&mmsys CLK_MM_SMI_COMMON>,
+                                <&mmsys CLK_MM_GALS_COMM0>,
+                                <&mmsys CLK_MM_GALS_COMM1>;
+                       clock-names = "apb", "smi", "gals0", "gals1";
+                       power-domains = <&scpsys MT8183_POWER_DOMAIN_DISP>;
                };
 
                imgsys: syscon@15020000 {
@@ -328,18 +354,57 @@
                        #clock-cells = <1>;
                };
 
+               larb5: larb@15021000 {
+                       compatible = "mediatek,mt8183-smi-larb";
+                       reg = <0 0x15021000 0 0x1000>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&imgsys CLK_IMG_LARB5>, <&imgsys 
CLK_IMG_LARB5>,
+                                <&mmsys CLK_MM_GALS_IMG2MM>;
+                       clock-names = "apb", "smi", "gals";
+                       power-domains = <&scpsys MT8183_POWER_DOMAIN_ISP>;
+               };
+
+               larb2: larb@1502f000 {
+                       compatible = "mediatek,mt8183-smi-larb";
+                       reg = <0 0x1502f000 0 0x1000>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&imgsys CLK_IMG_LARB2>, <&imgsys 
CLK_IMG_LARB2>,
+                                <&mmsys CLK_MM_GALS_IPU2MM>;
+                       clock-names = "apb", "smi", "gals";
+                       power-domains = <&scpsys MT8183_POWER_DOMAIN_ISP>;
+               };
+
                vdecsys: syscon@16000000 {
                        compatible = "mediatek,mt8183-vdecsys", "syscon";
                        reg = <0 0x16000000 0 0x1000>;
                        #clock-cells = <1>;
                };
 
+               larb1: larb@16010000 {
+                       compatible = "mediatek,mt8183-smi-larb";
+                       reg = <0 0x16010000 0 0x1000>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&vdecsys CLK_VDEC_VDEC>, <&vdecsys 
CLK_VDEC_LARB1>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&scpsys MT8183_POWER_DOMAIN_VDEC>;
+               };
+
                vencsys: syscon@17000000 {
                        compatible = "mediatek,mt8183-vencsys", "syscon";
                        reg = <0 0x17000000 0 0x1000>;
                        #clock-cells = <1>;
                };
 
+               larb4: larb@17010000 {
+                       compatible = "mediatek,mt8183-smi-larb";
+                       reg = <0 0x17010000 0 0x1000>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&vencsys CLK_VENC_LARB>,
+                                <&vencsys CLK_VENC_LARB>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&scpsys MT8183_POWER_DOMAIN_VENC>;
+               };
+
                ipu_conn: syscon@19000000 {
                        compatible = "mediatek,mt8183-ipu_conn", "syscon";
                        reg = <0 0x19000000 0 0x1000>;
@@ -369,5 +434,25 @@
                        reg = <0 0x1a000000 0 0x1000>;
                        #clock-cells = <1>;
                };
+
+               larb6: larb@1a001000 {
+                       compatible = "mediatek,mt8183-smi-larb";
+                       reg = <0 0x1a001000 0 0x1000>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&camsys CLK_CAM_LARB6>, <&camsys 
CLK_CAM_LARB6>,
+                                <&mmsys CLK_MM_GALS_CAM2MM>;
+                       clock-names = "apb", "smi", "gals";
+                       power-domains = <&scpsys MT8183_POWER_DOMAIN_CAM>;
+               };
+
+               larb3: larb@1a002000 {
+                       compatible = "mediatek,mt8183-smi-larb";
+                       reg = <0 0x1a002000 0 0x1000>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&camsys CLK_CAM_LARB3>, <&camsys 
CLK_CAM_LARB3>,
+                                <&mmsys CLK_MM_GALS_IPU12MM>;
+                       clock-names = "apb", "smi", "gals";
+                       power-domains = <&scpsys MT8183_POWER_DOMAIN_CAM>;
+               };
        };
 };
-- 
1.9.1

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to