162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2020 MediaTek Inc. 462306a36Sopenharmony_ci * Copyright (c) 2020 BayLibre, SAS. 562306a36Sopenharmony_ci * Author: Fabien Parent <fparent@baylibre.com> 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#include <dt-bindings/clock/mt8167-clk.h> 962306a36Sopenharmony_ci#include <dt-bindings/memory/mt8167-larb-port.h> 1062306a36Sopenharmony_ci#include <dt-bindings/power/mt8167-power.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#include "mt8167-pinfunc.h" 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#include "mt8516.dtsi" 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci/ { 1762306a36Sopenharmony_ci compatible = "mediatek,mt8167"; 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci soc { 2062306a36Sopenharmony_ci topckgen: topckgen@10000000 { 2162306a36Sopenharmony_ci compatible = "mediatek,mt8167-topckgen", "syscon"; 2262306a36Sopenharmony_ci reg = <0 0x10000000 0 0x1000>; 2362306a36Sopenharmony_ci #clock-cells = <1>; 2462306a36Sopenharmony_ci }; 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci infracfg: infracfg@10001000 { 2762306a36Sopenharmony_ci compatible = "mediatek,mt8167-infracfg", "syscon"; 2862306a36Sopenharmony_ci reg = <0 0x10001000 0 0x1000>; 2962306a36Sopenharmony_ci #clock-cells = <1>; 3062306a36Sopenharmony_ci }; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci apmixedsys: apmixedsys@10018000 { 3362306a36Sopenharmony_ci compatible = "mediatek,mt8167-apmixedsys", "syscon"; 3462306a36Sopenharmony_ci reg = <0 0x10018000 0 0x710>; 3562306a36Sopenharmony_ci #clock-cells = <1>; 3662306a36Sopenharmony_ci }; 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci scpsys: syscon@10006000 { 3962306a36Sopenharmony_ci compatible = "mediatek,mt8167-scpsys", "syscon", "simple-mfd"; 4062306a36Sopenharmony_ci reg = <0 0x10006000 0 0x1000>; 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci spm: power-controller { 4362306a36Sopenharmony_ci compatible = "mediatek,mt8167-power-controller"; 4462306a36Sopenharmony_ci #address-cells = <1>; 4562306a36Sopenharmony_ci #size-cells = <0>; 4662306a36Sopenharmony_ci #power-domain-cells = <1>; 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci /* power domains of the SoC */ 4962306a36Sopenharmony_ci power-domain@MT8167_POWER_DOMAIN_MM { 5062306a36Sopenharmony_ci reg = <MT8167_POWER_DOMAIN_MM>; 5162306a36Sopenharmony_ci clocks = <&topckgen CLK_TOP_SMI_MM>; 5262306a36Sopenharmony_ci clock-names = "mm"; 5362306a36Sopenharmony_ci #power-domain-cells = <0>; 5462306a36Sopenharmony_ci mediatek,infracfg = <&infracfg>; 5562306a36Sopenharmony_ci }; 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci power-domain@MT8167_POWER_DOMAIN_VDEC { 5862306a36Sopenharmony_ci reg = <MT8167_POWER_DOMAIN_VDEC>; 5962306a36Sopenharmony_ci clocks = <&topckgen CLK_TOP_SMI_MM>, 6062306a36Sopenharmony_ci <&topckgen CLK_TOP_RG_VDEC>; 6162306a36Sopenharmony_ci clock-names = "mm", "vdec"; 6262306a36Sopenharmony_ci #power-domain-cells = <0>; 6362306a36Sopenharmony_ci }; 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci power-domain@MT8167_POWER_DOMAIN_ISP { 6662306a36Sopenharmony_ci reg = <MT8167_POWER_DOMAIN_ISP>; 6762306a36Sopenharmony_ci clocks = <&topckgen CLK_TOP_SMI_MM>; 6862306a36Sopenharmony_ci clock-names = "mm"; 6962306a36Sopenharmony_ci #power-domain-cells = <0>; 7062306a36Sopenharmony_ci }; 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci power-domain@MT8167_POWER_DOMAIN_MFG_ASYNC { 7362306a36Sopenharmony_ci reg = <MT8167_POWER_DOMAIN_MFG_ASYNC>; 7462306a36Sopenharmony_ci clocks = <&topckgen CLK_TOP_RG_AXI_MFG>, 7562306a36Sopenharmony_ci <&topckgen CLK_TOP_RG_SLOW_MFG>; 7662306a36Sopenharmony_ci clock-names = "axi_mfg", "mfg"; 7762306a36Sopenharmony_ci #address-cells = <1>; 7862306a36Sopenharmony_ci #size-cells = <0>; 7962306a36Sopenharmony_ci #power-domain-cells = <1>; 8062306a36Sopenharmony_ci mediatek,infracfg = <&infracfg>; 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci power-domain@MT8167_POWER_DOMAIN_MFG_2D { 8362306a36Sopenharmony_ci reg = <MT8167_POWER_DOMAIN_MFG_2D>; 8462306a36Sopenharmony_ci #address-cells = <1>; 8562306a36Sopenharmony_ci #size-cells = <0>; 8662306a36Sopenharmony_ci #power-domain-cells = <1>; 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci power-domain@MT8167_POWER_DOMAIN_MFG { 8962306a36Sopenharmony_ci reg = <MT8167_POWER_DOMAIN_MFG>; 9062306a36Sopenharmony_ci #power-domain-cells = <0>; 9162306a36Sopenharmony_ci mediatek,infracfg = <&infracfg>; 9262306a36Sopenharmony_ci }; 9362306a36Sopenharmony_ci }; 9462306a36Sopenharmony_ci }; 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci power-domain@MT8167_POWER_DOMAIN_CONN { 9762306a36Sopenharmony_ci reg = <MT8167_POWER_DOMAIN_CONN>; 9862306a36Sopenharmony_ci #power-domain-cells = <0>; 9962306a36Sopenharmony_ci mediatek,infracfg = <&infracfg>; 10062306a36Sopenharmony_ci }; 10162306a36Sopenharmony_ci }; 10262306a36Sopenharmony_ci }; 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci imgsys: syscon@15000000 { 10562306a36Sopenharmony_ci compatible = "mediatek,mt8167-imgsys", "syscon"; 10662306a36Sopenharmony_ci reg = <0 0x15000000 0 0x1000>; 10762306a36Sopenharmony_ci #clock-cells = <1>; 10862306a36Sopenharmony_ci }; 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci vdecsys: syscon@16000000 { 11162306a36Sopenharmony_ci compatible = "mediatek,mt8167-vdecsys", "syscon"; 11262306a36Sopenharmony_ci reg = <0 0x16000000 0 0x1000>; 11362306a36Sopenharmony_ci #clock-cells = <1>; 11462306a36Sopenharmony_ci }; 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_ci pio: pinctrl@1000b000 { 11762306a36Sopenharmony_ci compatible = "mediatek,mt8167-pinctrl"; 11862306a36Sopenharmony_ci reg = <0 0x1000b000 0 0x1000>; 11962306a36Sopenharmony_ci mediatek,pctl-regmap = <&syscfg_pctl>; 12062306a36Sopenharmony_ci gpio-controller; 12162306a36Sopenharmony_ci #gpio-cells = <2>; 12262306a36Sopenharmony_ci interrupt-controller; 12362306a36Sopenharmony_ci #interrupt-cells = <2>; 12462306a36Sopenharmony_ci interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; 12562306a36Sopenharmony_ci }; 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ci mmsys: syscon@14000000 { 12862306a36Sopenharmony_ci compatible = "mediatek,mt8167-mmsys", "syscon"; 12962306a36Sopenharmony_ci reg = <0 0x14000000 0 0x1000>; 13062306a36Sopenharmony_ci #clock-cells = <1>; 13162306a36Sopenharmony_ci }; 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ci smi_common: smi@14017000 { 13462306a36Sopenharmony_ci compatible = "mediatek,mt8167-smi-common"; 13562306a36Sopenharmony_ci reg = <0 0x14017000 0 0x1000>; 13662306a36Sopenharmony_ci clocks = <&mmsys CLK_MM_SMI_COMMON>, 13762306a36Sopenharmony_ci <&mmsys CLK_MM_SMI_COMMON>; 13862306a36Sopenharmony_ci clock-names = "apb", "smi"; 13962306a36Sopenharmony_ci power-domains = <&spm MT8167_POWER_DOMAIN_MM>; 14062306a36Sopenharmony_ci }; 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci larb0: larb@14016000 { 14362306a36Sopenharmony_ci compatible = "mediatek,mt8167-smi-larb"; 14462306a36Sopenharmony_ci reg = <0 0x14016000 0 0x1000>; 14562306a36Sopenharmony_ci mediatek,smi = <&smi_common>; 14662306a36Sopenharmony_ci clocks = <&mmsys CLK_MM_SMI_LARB0>, 14762306a36Sopenharmony_ci <&mmsys CLK_MM_SMI_LARB0>; 14862306a36Sopenharmony_ci clock-names = "apb", "smi"; 14962306a36Sopenharmony_ci power-domains = <&spm MT8167_POWER_DOMAIN_MM>; 15062306a36Sopenharmony_ci }; 15162306a36Sopenharmony_ci 15262306a36Sopenharmony_ci larb1: larb@15001000 { 15362306a36Sopenharmony_ci compatible = "mediatek,mt8167-smi-larb"; 15462306a36Sopenharmony_ci reg = <0 0x15001000 0 0x1000>; 15562306a36Sopenharmony_ci mediatek,smi = <&smi_common>; 15662306a36Sopenharmony_ci clocks = <&imgsys CLK_IMG_LARB1_SMI>, 15762306a36Sopenharmony_ci <&imgsys CLK_IMG_LARB1_SMI>; 15862306a36Sopenharmony_ci clock-names = "apb", "smi"; 15962306a36Sopenharmony_ci power-domains = <&spm MT8167_POWER_DOMAIN_ISP>; 16062306a36Sopenharmony_ci }; 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ci larb2: larb@16010000 { 16362306a36Sopenharmony_ci compatible = "mediatek,mt8167-smi-larb"; 16462306a36Sopenharmony_ci reg = <0 0x16010000 0 0x1000>; 16562306a36Sopenharmony_ci mediatek,smi = <&smi_common>; 16662306a36Sopenharmony_ci clocks = <&vdecsys CLK_VDEC_CKEN>, 16762306a36Sopenharmony_ci <&vdecsys CLK_VDEC_LARB1_CKEN>; 16862306a36Sopenharmony_ci clock-names = "apb", "smi"; 16962306a36Sopenharmony_ci power-domains = <&spm MT8167_POWER_DOMAIN_VDEC>; 17062306a36Sopenharmony_ci }; 17162306a36Sopenharmony_ci 17262306a36Sopenharmony_ci iommu: m4u@10203000 { 17362306a36Sopenharmony_ci compatible = "mediatek,mt8167-m4u"; 17462306a36Sopenharmony_ci reg = <0 0x10203000 0 0x1000>; 17562306a36Sopenharmony_ci mediatek,larbs = <&larb0>, <&larb1>, <&larb2>; 17662306a36Sopenharmony_ci interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_LOW>; 17762306a36Sopenharmony_ci #iommu-cells = <1>; 17862306a36Sopenharmony_ci }; 17962306a36Sopenharmony_ci }; 18062306a36Sopenharmony_ci}; 181