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