xref: /freebsd-src/sys/contrib/device-tree/src/arm64/mediatek/mt8167.dtsi (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
15def4c47SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
25def4c47SEmmanuel Vadot/*
35def4c47SEmmanuel Vadot * Copyright (c) 2020 MediaTek Inc.
45def4c47SEmmanuel Vadot * Copyright (c) 2020 BayLibre, SAS.
55def4c47SEmmanuel Vadot * Author: Fabien Parent <fparent@baylibre.com>
65def4c47SEmmanuel Vadot */
75def4c47SEmmanuel Vadot
85def4c47SEmmanuel Vadot#include <dt-bindings/clock/mt8167-clk.h>
95def4c47SEmmanuel Vadot#include <dt-bindings/memory/mt8167-larb-port.h>
105956d97fSEmmanuel Vadot#include <dt-bindings/power/mt8167-power.h>
115def4c47SEmmanuel Vadot
125def4c47SEmmanuel Vadot#include "mt8167-pinfunc.h"
135def4c47SEmmanuel Vadot
145def4c47SEmmanuel Vadot#include "mt8516.dtsi"
155def4c47SEmmanuel Vadot
165def4c47SEmmanuel Vadot/ {
175def4c47SEmmanuel Vadot	compatible = "mediatek,mt8167";
185def4c47SEmmanuel Vadot
195def4c47SEmmanuel Vadot	soc {
205def4c47SEmmanuel Vadot		topckgen: topckgen@10000000 {
215def4c47SEmmanuel Vadot			compatible = "mediatek,mt8167-topckgen", "syscon";
225def4c47SEmmanuel Vadot			reg = <0 0x10000000 0 0x1000>;
235def4c47SEmmanuel Vadot			#clock-cells = <1>;
245def4c47SEmmanuel Vadot		};
255def4c47SEmmanuel Vadot
265def4c47SEmmanuel Vadot		infracfg: infracfg@10001000 {
275def4c47SEmmanuel Vadot			compatible = "mediatek,mt8167-infracfg", "syscon";
285def4c47SEmmanuel Vadot			reg = <0 0x10001000 0 0x1000>;
295def4c47SEmmanuel Vadot			#clock-cells = <1>;
305def4c47SEmmanuel Vadot		};
315def4c47SEmmanuel Vadot
325def4c47SEmmanuel Vadot		apmixedsys: apmixedsys@10018000 {
335def4c47SEmmanuel Vadot			compatible = "mediatek,mt8167-apmixedsys", "syscon";
345def4c47SEmmanuel Vadot			reg = <0 0x10018000 0 0x710>;
355def4c47SEmmanuel Vadot			#clock-cells = <1>;
365def4c47SEmmanuel Vadot		};
375def4c47SEmmanuel Vadot
385956d97fSEmmanuel Vadot		scpsys: syscon@10006000 {
397ef62cebSEmmanuel Vadot			compatible = "mediatek,mt8167-scpsys", "syscon", "simple-mfd";
405956d97fSEmmanuel Vadot			reg = <0 0x10006000 0 0x1000>;
415956d97fSEmmanuel Vadot
425956d97fSEmmanuel Vadot			spm: power-controller {
435956d97fSEmmanuel Vadot				compatible = "mediatek,mt8167-power-controller";
445956d97fSEmmanuel Vadot				#address-cells = <1>;
455956d97fSEmmanuel Vadot				#size-cells = <0>;
465956d97fSEmmanuel Vadot				#power-domain-cells = <1>;
475956d97fSEmmanuel Vadot
485956d97fSEmmanuel Vadot				/* power domains of the SoC */
495956d97fSEmmanuel Vadot				power-domain@MT8167_POWER_DOMAIN_MM {
505956d97fSEmmanuel Vadot					reg = <MT8167_POWER_DOMAIN_MM>;
515956d97fSEmmanuel Vadot					clocks = <&topckgen CLK_TOP_SMI_MM>;
525956d97fSEmmanuel Vadot					clock-names = "mm";
535956d97fSEmmanuel Vadot					#power-domain-cells = <0>;
545956d97fSEmmanuel Vadot					mediatek,infracfg = <&infracfg>;
555956d97fSEmmanuel Vadot				};
565956d97fSEmmanuel Vadot
575956d97fSEmmanuel Vadot				power-domain@MT8167_POWER_DOMAIN_VDEC {
585956d97fSEmmanuel Vadot					reg = <MT8167_POWER_DOMAIN_VDEC>;
595956d97fSEmmanuel Vadot					clocks = <&topckgen CLK_TOP_SMI_MM>,
605956d97fSEmmanuel Vadot						 <&topckgen CLK_TOP_RG_VDEC>;
615956d97fSEmmanuel Vadot					clock-names = "mm", "vdec";
625956d97fSEmmanuel Vadot					#power-domain-cells = <0>;
635956d97fSEmmanuel Vadot				};
645956d97fSEmmanuel Vadot
655956d97fSEmmanuel Vadot				power-domain@MT8167_POWER_DOMAIN_ISP {
665956d97fSEmmanuel Vadot					reg = <MT8167_POWER_DOMAIN_ISP>;
675956d97fSEmmanuel Vadot					clocks = <&topckgen CLK_TOP_SMI_MM>;
685956d97fSEmmanuel Vadot					clock-names = "mm";
695956d97fSEmmanuel Vadot					#power-domain-cells = <0>;
705956d97fSEmmanuel Vadot				};
715956d97fSEmmanuel Vadot
725956d97fSEmmanuel Vadot				power-domain@MT8167_POWER_DOMAIN_MFG_ASYNC {
735956d97fSEmmanuel Vadot					reg = <MT8167_POWER_DOMAIN_MFG_ASYNC>;
745956d97fSEmmanuel Vadot					clocks = <&topckgen CLK_TOP_RG_AXI_MFG>,
755956d97fSEmmanuel Vadot						 <&topckgen CLK_TOP_RG_SLOW_MFG>;
765956d97fSEmmanuel Vadot					clock-names = "axi_mfg", "mfg";
775956d97fSEmmanuel Vadot					#address-cells = <1>;
785956d97fSEmmanuel Vadot					#size-cells = <0>;
795956d97fSEmmanuel Vadot					#power-domain-cells = <1>;
805956d97fSEmmanuel Vadot					mediatek,infracfg = <&infracfg>;
815956d97fSEmmanuel Vadot
825956d97fSEmmanuel Vadot					power-domain@MT8167_POWER_DOMAIN_MFG_2D {
835956d97fSEmmanuel Vadot						reg = <MT8167_POWER_DOMAIN_MFG_2D>;
845956d97fSEmmanuel Vadot						#address-cells = <1>;
855956d97fSEmmanuel Vadot						#size-cells = <0>;
865956d97fSEmmanuel Vadot						#power-domain-cells = <1>;
875956d97fSEmmanuel Vadot
885956d97fSEmmanuel Vadot						power-domain@MT8167_POWER_DOMAIN_MFG {
895956d97fSEmmanuel Vadot							reg = <MT8167_POWER_DOMAIN_MFG>;
905956d97fSEmmanuel Vadot							#power-domain-cells = <0>;
915956d97fSEmmanuel Vadot							mediatek,infracfg = <&infracfg>;
925956d97fSEmmanuel Vadot						};
935956d97fSEmmanuel Vadot					};
945956d97fSEmmanuel Vadot				};
955956d97fSEmmanuel Vadot
965956d97fSEmmanuel Vadot				power-domain@MT8167_POWER_DOMAIN_CONN {
975956d97fSEmmanuel Vadot					reg = <MT8167_POWER_DOMAIN_CONN>;
985956d97fSEmmanuel Vadot					#power-domain-cells = <0>;
995956d97fSEmmanuel Vadot					mediatek,infracfg = <&infracfg>;
1005956d97fSEmmanuel Vadot				};
1015956d97fSEmmanuel Vadot			};
1025956d97fSEmmanuel Vadot		};
1035956d97fSEmmanuel Vadot
1045def4c47SEmmanuel Vadot		imgsys: syscon@15000000 {
1055def4c47SEmmanuel Vadot			compatible = "mediatek,mt8167-imgsys", "syscon";
1065def4c47SEmmanuel Vadot			reg = <0 0x15000000 0 0x1000>;
1075def4c47SEmmanuel Vadot			#clock-cells = <1>;
1085def4c47SEmmanuel Vadot		};
1095def4c47SEmmanuel Vadot
1105def4c47SEmmanuel Vadot		vdecsys: syscon@16000000 {
1115def4c47SEmmanuel Vadot			compatible = "mediatek,mt8167-vdecsys", "syscon";
1125def4c47SEmmanuel Vadot			reg = <0 0x16000000 0 0x1000>;
1135def4c47SEmmanuel Vadot			#clock-cells = <1>;
1145def4c47SEmmanuel Vadot		};
1155def4c47SEmmanuel Vadot
1165def4c47SEmmanuel Vadot		pio: pinctrl@1000b000 {
1175def4c47SEmmanuel Vadot			compatible = "mediatek,mt8167-pinctrl";
1185def4c47SEmmanuel Vadot			reg = <0 0x1000b000 0 0x1000>;
1195def4c47SEmmanuel Vadot			mediatek,pctl-regmap = <&syscfg_pctl>;
1205def4c47SEmmanuel Vadot			gpio-controller;
1215def4c47SEmmanuel Vadot			#gpio-cells = <2>;
1225def4c47SEmmanuel Vadot			interrupt-controller;
1235def4c47SEmmanuel Vadot			#interrupt-cells = <2>;
1245def4c47SEmmanuel Vadot			interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
1255def4c47SEmmanuel Vadot		};
1265956d97fSEmmanuel Vadot
127*fac71e4eSEmmanuel Vadot		mmsys: syscon@14000000 {
1285956d97fSEmmanuel Vadot			compatible = "mediatek,mt8167-mmsys", "syscon";
1295956d97fSEmmanuel Vadot			reg = <0 0x14000000 0 0x1000>;
1305956d97fSEmmanuel Vadot			#clock-cells = <1>;
1315956d97fSEmmanuel Vadot		};
1325956d97fSEmmanuel Vadot
1335956d97fSEmmanuel Vadot		smi_common: smi@14017000 {
1345956d97fSEmmanuel Vadot			compatible = "mediatek,mt8167-smi-common";
1355956d97fSEmmanuel Vadot			reg = <0 0x14017000 0 0x1000>;
1365956d97fSEmmanuel Vadot			clocks = <&mmsys CLK_MM_SMI_COMMON>,
1375956d97fSEmmanuel Vadot				 <&mmsys CLK_MM_SMI_COMMON>;
1385956d97fSEmmanuel Vadot			clock-names = "apb", "smi";
1395956d97fSEmmanuel Vadot			power-domains = <&spm MT8167_POWER_DOMAIN_MM>;
1405956d97fSEmmanuel Vadot		};
1415956d97fSEmmanuel Vadot
1425956d97fSEmmanuel Vadot		larb0: larb@14016000 {
1435956d97fSEmmanuel Vadot			compatible = "mediatek,mt8167-smi-larb";
1445956d97fSEmmanuel Vadot			reg = <0 0x14016000 0 0x1000>;
1455956d97fSEmmanuel Vadot			mediatek,smi = <&smi_common>;
1465956d97fSEmmanuel Vadot			clocks = <&mmsys CLK_MM_SMI_LARB0>,
1475956d97fSEmmanuel Vadot				 <&mmsys CLK_MM_SMI_LARB0>;
1485956d97fSEmmanuel Vadot			clock-names = "apb", "smi";
1495956d97fSEmmanuel Vadot			power-domains = <&spm MT8167_POWER_DOMAIN_MM>;
1505956d97fSEmmanuel Vadot		};
1515956d97fSEmmanuel Vadot
1525956d97fSEmmanuel Vadot		larb1: larb@15001000 {
1535956d97fSEmmanuel Vadot			compatible = "mediatek,mt8167-smi-larb";
1545956d97fSEmmanuel Vadot			reg = <0 0x15001000 0 0x1000>;
1555956d97fSEmmanuel Vadot			mediatek,smi = <&smi_common>;
1565956d97fSEmmanuel Vadot			clocks = <&imgsys CLK_IMG_LARB1_SMI>,
1575956d97fSEmmanuel Vadot				 <&imgsys CLK_IMG_LARB1_SMI>;
1585956d97fSEmmanuel Vadot			clock-names = "apb", "smi";
1595956d97fSEmmanuel Vadot			power-domains = <&spm MT8167_POWER_DOMAIN_ISP>;
1605956d97fSEmmanuel Vadot		};
1615956d97fSEmmanuel Vadot
1625956d97fSEmmanuel Vadot		larb2: larb@16010000 {
1635956d97fSEmmanuel Vadot			compatible = "mediatek,mt8167-smi-larb";
1645956d97fSEmmanuel Vadot			reg = <0 0x16010000 0 0x1000>;
1655956d97fSEmmanuel Vadot			mediatek,smi = <&smi_common>;
1665956d97fSEmmanuel Vadot			clocks = <&vdecsys CLK_VDEC_CKEN>,
1675956d97fSEmmanuel Vadot				 <&vdecsys CLK_VDEC_LARB1_CKEN>;
1685956d97fSEmmanuel Vadot			clock-names = "apb", "smi";
1695956d97fSEmmanuel Vadot			power-domains = <&spm MT8167_POWER_DOMAIN_VDEC>;
1705956d97fSEmmanuel Vadot		};
1715956d97fSEmmanuel Vadot
1725956d97fSEmmanuel Vadot		iommu: m4u@10203000 {
1735956d97fSEmmanuel Vadot			compatible = "mediatek,mt8167-m4u";
1745956d97fSEmmanuel Vadot			reg = <0 0x10203000 0 0x1000>;
175d5b0e70fSEmmanuel Vadot			mediatek,larbs = <&larb0>, <&larb1>, <&larb2>;
1765956d97fSEmmanuel Vadot			interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_LOW>;
1775956d97fSEmmanuel Vadot			#iommu-cells = <1>;
1785956d97fSEmmanuel Vadot		};
1795def4c47SEmmanuel Vadot	};
1805def4c47SEmmanuel Vadot};
181