// SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) 2020 MediaTek Inc. * Copyright (c) 2020 BayLibre, SAS. * Author: Fabien Parent <fparent@baylibre.com> */ #include <dt-bindings/clock/mt8167-clk.h> #include <dt-bindings/memory/mt8167-larb-port.h> #include <dt-bindings/power/mt8167-power.h> #include "mt8167-pinfunc.h" #include "mt8516.dtsi" / { compatible = "mediatek,mt8167"; soc { topckgen: topckgen@10000000 { compatible = "mediatek,mt8167-topckgen", "syscon"; reg = <0 0x10000000 0 0x1000>; #clock-cells = <1>; }; infracfg: infracfg@10001000 { compatible = "mediatek,mt8167-infracfg", "syscon"; reg = <0 0x10001000 0 0x1000>; #clock-cells = <1>; }; apmixedsys: apmixedsys@10018000 { compatible = "mediatek,mt8167-apmixedsys", "syscon"; reg = <0 0x10018000 0 0x710>; #clock-cells = <1>; }; scpsys: syscon@10006000 { compatible = "mediatek,mt8167-scpsys", "syscon", "simple-mfd"; reg = <0 0x10006000 0 0x1000>; spm: power-controller { compatible = "mediatek,mt8167-power-controller"; #address-cells = <1>; #size-cells = <0>; #power-domain-cells = <1>; /* power domains of the SoC */ power-domain@MT8167_POWER_DOMAIN_MM { reg = <MT8167_POWER_DOMAIN_MM>; clocks = <&topckgen CLK_TOP_SMI_MM>; clock-names = "mm"; #power-domain-cells = <0>; mediatek,infracfg = <&infracfg>; }; power-domain@MT8167_POWER_DOMAIN_VDEC { reg = <MT8167_POWER_DOMAIN_VDEC>; clocks = <&topckgen CLK_TOP_SMI_MM>, <&topckgen CLK_TOP_RG_VDEC>; clock-names = "mm", "vdec"; #power-domain-cells = <0>; }; power-domain@MT8167_POWER_DOMAIN_ISP { reg = <MT8167_POWER_DOMAIN_ISP>; clocks = <&topckgen CLK_TOP_SMI_MM>; clock-names = "mm"; #power-domain-cells = <0>; }; power-domain@MT8167_POWER_DOMAIN_MFG_ASYNC { reg = <MT8167_POWER_DOMAIN_MFG_ASYNC>; clocks = <&topckgen CLK_TOP_RG_AXI_MFG>, <&topckgen CLK_TOP_RG_SLOW_MFG>; clock-names = "axi_mfg", "mfg"; #address-cells = <1>; #size-cells = <0>; #power-domain-cells = <1>; mediatek,infracfg = <&infracfg>; power-domain@MT8167_POWER_DOMAIN_MFG_2D { reg = <MT8167_POWER_DOMAIN_MFG_2D>; #address-cells = <1>; #size-cells = <0>; #power-domain-cells = <1>; power-domain@MT8167_POWER_DOMAIN_MFG { reg = <MT8167_POWER_DOMAIN_MFG>; #power-domain-cells = <0>; mediatek,infracfg = <&infracfg>; }; }; }; power-domain@MT8167_POWER_DOMAIN_CONN { reg = <MT8167_POWER_DOMAIN_CONN>; #power-domain-cells = <0>; mediatek,infracfg = <&infracfg>; }; }; }; imgsys: syscon@15000000 { compatible = "mediatek,mt8167-imgsys", "syscon"; reg = <0 0x15000000 0 0x1000>; #clock-cells = <1>; }; vdecsys: syscon@16000000 { compatible = "mediatek,mt8167-vdecsys", "syscon"; reg = <0 0x16000000 0 0x1000>; #clock-cells = <1>; }; pio: pinctrl@1000b000 { compatible = "mediatek,mt8167-pinctrl"; reg = <0 0x1000b000 0 0x1000>; mediatek,pctl-regmap = <&syscfg_pctl>; gpio-controller; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; }; mmsys: syscon@14000000 { compatible = "mediatek,mt8167-mmsys", "syscon"; reg = <0 0x14000000 0 0x1000>; #clock-cells = <1>; }; smi_common: smi@14017000 { compatible = "mediatek,mt8167-smi-common"; reg = <0 0x14017000 0 0x1000>; clocks = <&mmsys CLK_MM_SMI_COMMON>, <&mmsys CLK_MM_SMI_COMMON>; clock-names = "apb", "smi"; power-domains = <&spm MT8167_POWER_DOMAIN_MM>; }; larb0: larb@14016000 { compatible = "mediatek,mt8167-smi-larb"; reg = <0 0x14016000 0 0x1000>; mediatek,smi = <&smi_common>; clocks = <&mmsys CLK_MM_SMI_LARB0>, <&mmsys CLK_MM_SMI_LARB0>; clock-names = "apb", "smi"; power-domains = <&spm MT8167_POWER_DOMAIN_MM>; }; larb1: larb@15001000 { compatible = "mediatek,mt8167-smi-larb"; reg = <0 0x15001000 0 0x1000>; mediatek,smi = <&smi_common>; clocks = <&imgsys CLK_IMG_LARB1_SMI>, <&imgsys CLK_IMG_LARB1_SMI>; clock-names = "apb", "smi"; power-domains = <&spm MT8167_POWER_DOMAIN_ISP>; }; larb2: larb@16010000 { compatible = "mediatek,mt8167-smi-larb"; reg = <0 0x16010000 0 0x1000>; mediatek,smi = <&smi_common>; clocks = <&vdecsys CLK_VDEC_CKEN>, <&vdecsys CLK_VDEC_LARB1_CKEN>; clock-names = "apb", "smi"; power-domains = <&spm MT8167_POWER_DOMAIN_VDEC>; }; iommu: m4u@10203000 { compatible = "mediatek,mt8167-m4u"; reg = <0 0x10203000 0 0x1000>; mediatek,larbs = <&larb0>, <&larb1>, <&larb2>; interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_LOW>; #iommu-cells = <1>; }; }; };