18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (c) 2019 MediaTek Inc.
48c2ecf20Sopenharmony_ci * Copyright (c) 2019 BayLibre, SAS.
58c2ecf20Sopenharmony_ci * Author: Fabien Parent <fparent@baylibre.com>
68c2ecf20Sopenharmony_ci */
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#include <dt-bindings/clock/mt8516-clk.h>
98c2ecf20Sopenharmony_ci#include <dt-bindings/interrupt-controller/arm-gic.h>
108c2ecf20Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h>
118c2ecf20Sopenharmony_ci#include <dt-bindings/phy/phy.h>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci#include "mt8516-pinfunc.h"
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci/ {
168c2ecf20Sopenharmony_ci	compatible = "mediatek,mt8516";
178c2ecf20Sopenharmony_ci	interrupt-parent = <&sysirq>;
188c2ecf20Sopenharmony_ci	#address-cells = <2>;
198c2ecf20Sopenharmony_ci	#size-cells = <2>;
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci	cluster0_opp: opp-table-0 {
228c2ecf20Sopenharmony_ci		compatible = "operating-points-v2";
238c2ecf20Sopenharmony_ci		opp-shared;
248c2ecf20Sopenharmony_ci		opp-598000000 {
258c2ecf20Sopenharmony_ci			opp-hz = /bits/ 64 <598000000>;
268c2ecf20Sopenharmony_ci			opp-microvolt = <1150000>;
278c2ecf20Sopenharmony_ci		};
288c2ecf20Sopenharmony_ci		opp-747500000 {
298c2ecf20Sopenharmony_ci			opp-hz = /bits/ 64 <747500000>;
308c2ecf20Sopenharmony_ci			opp-microvolt = <1150000>;
318c2ecf20Sopenharmony_ci		};
328c2ecf20Sopenharmony_ci		opp-1040000000 {
338c2ecf20Sopenharmony_ci			opp-hz = /bits/ 64 <1040000000>;
348c2ecf20Sopenharmony_ci			opp-microvolt = <1200000>;
358c2ecf20Sopenharmony_ci		};
368c2ecf20Sopenharmony_ci		opp-1196000000 {
378c2ecf20Sopenharmony_ci			opp-hz = /bits/ 64 <1196000000>;
388c2ecf20Sopenharmony_ci			opp-microvolt = <1250000>;
398c2ecf20Sopenharmony_ci		};
408c2ecf20Sopenharmony_ci		opp-1300000000 {
418c2ecf20Sopenharmony_ci			opp-hz = /bits/ 64 <1300000000>;
428c2ecf20Sopenharmony_ci			opp-microvolt = <1300000>;
438c2ecf20Sopenharmony_ci		};
448c2ecf20Sopenharmony_ci	};
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci	cpus {
478c2ecf20Sopenharmony_ci		#address-cells = <1>;
488c2ecf20Sopenharmony_ci		#size-cells = <0>;
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci		cpu0: cpu@0 {
518c2ecf20Sopenharmony_ci			device_type = "cpu";
528c2ecf20Sopenharmony_ci			compatible = "arm,cortex-a35";
538c2ecf20Sopenharmony_ci			reg = <0x0>;
548c2ecf20Sopenharmony_ci			enable-method = "psci";
558c2ecf20Sopenharmony_ci			cpu-idle-states = <&CLUSTER_SLEEP_0 &CLUSTER_SLEEP_0>,
568c2ecf20Sopenharmony_ci				<&CPU_SLEEP_0_0 &CPU_SLEEP_0_0 &CPU_SLEEP_0_0>;
578c2ecf20Sopenharmony_ci			clocks = <&infracfg CLK_IFR_MUX1_SEL>,
588c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_MAINPLL_D2>;
598c2ecf20Sopenharmony_ci			clock-names = "cpu", "intermediate";
608c2ecf20Sopenharmony_ci			operating-points-v2 = <&cluster0_opp>;
618c2ecf20Sopenharmony_ci		};
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci		cpu1: cpu@1 {
648c2ecf20Sopenharmony_ci			device_type = "cpu";
658c2ecf20Sopenharmony_ci			compatible = "arm,cortex-a35";
668c2ecf20Sopenharmony_ci			reg = <0x1>;
678c2ecf20Sopenharmony_ci			enable-method = "psci";
688c2ecf20Sopenharmony_ci			cpu-idle-states = <&CLUSTER_SLEEP_0 &CLUSTER_SLEEP_0>,
698c2ecf20Sopenharmony_ci				<&CPU_SLEEP_0_0 &CPU_SLEEP_0_0 &CPU_SLEEP_0_0>;
708c2ecf20Sopenharmony_ci			clocks = <&infracfg CLK_IFR_MUX1_SEL>,
718c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_MAINPLL_D2>;
728c2ecf20Sopenharmony_ci			clock-names = "cpu", "intermediate";
738c2ecf20Sopenharmony_ci			operating-points-v2 = <&cluster0_opp>;
748c2ecf20Sopenharmony_ci		};
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ci		cpu2: cpu@2 {
778c2ecf20Sopenharmony_ci			device_type = "cpu";
788c2ecf20Sopenharmony_ci			compatible = "arm,cortex-a35";
798c2ecf20Sopenharmony_ci			reg = <0x2>;
808c2ecf20Sopenharmony_ci			enable-method = "psci";
818c2ecf20Sopenharmony_ci			cpu-idle-states = <&CLUSTER_SLEEP_0 &CLUSTER_SLEEP_0>,
828c2ecf20Sopenharmony_ci				<&CPU_SLEEP_0_0 &CPU_SLEEP_0_0 &CPU_SLEEP_0_0>;
838c2ecf20Sopenharmony_ci			clocks = <&infracfg CLK_IFR_MUX1_SEL>,
848c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_MAINPLL_D2>;
858c2ecf20Sopenharmony_ci			clock-names = "cpu", "intermediate";
868c2ecf20Sopenharmony_ci			operating-points-v2 = <&cluster0_opp>;
878c2ecf20Sopenharmony_ci		};
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_ci		cpu3: cpu@3 {
908c2ecf20Sopenharmony_ci			device_type = "cpu";
918c2ecf20Sopenharmony_ci			compatible = "arm,cortex-a35";
928c2ecf20Sopenharmony_ci			reg = <0x3>;
938c2ecf20Sopenharmony_ci			enable-method = "psci";
948c2ecf20Sopenharmony_ci			cpu-idle-states = <&CLUSTER_SLEEP_0 &CLUSTER_SLEEP_0>,
958c2ecf20Sopenharmony_ci				<&CPU_SLEEP_0_0 &CPU_SLEEP_0_0 &CPU_SLEEP_0_0>;
968c2ecf20Sopenharmony_ci			clocks = <&infracfg CLK_IFR_MUX1_SEL>,
978c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_MAINPLL_D2>;
988c2ecf20Sopenharmony_ci			clock-names = "cpu", "intermediate", "armpll";
998c2ecf20Sopenharmony_ci			operating-points-v2 = <&cluster0_opp>;
1008c2ecf20Sopenharmony_ci		};
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ci		idle-states {
1038c2ecf20Sopenharmony_ci			entry-method = "psci";
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ci			CPU_SLEEP_0_0: cpu-sleep-0-0 {
1068c2ecf20Sopenharmony_ci				compatible = "arm,idle-state";
1078c2ecf20Sopenharmony_ci				entry-latency-us = <600>;
1088c2ecf20Sopenharmony_ci				exit-latency-us = <600>;
1098c2ecf20Sopenharmony_ci				min-residency-us = <1200>;
1108c2ecf20Sopenharmony_ci				arm,psci-suspend-param = <0x0010000>;
1118c2ecf20Sopenharmony_ci			};
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ci			CLUSTER_SLEEP_0: cluster-sleep-0 {
1148c2ecf20Sopenharmony_ci				compatible = "arm,idle-state";
1158c2ecf20Sopenharmony_ci				entry-latency-us = <800>;
1168c2ecf20Sopenharmony_ci				exit-latency-us = <1000>;
1178c2ecf20Sopenharmony_ci				min-residency-us = <2000>;
1188c2ecf20Sopenharmony_ci				arm,psci-suspend-param = <0x2010000>;
1198c2ecf20Sopenharmony_ci			};
1208c2ecf20Sopenharmony_ci		};
1218c2ecf20Sopenharmony_ci	};
1228c2ecf20Sopenharmony_ci
1238c2ecf20Sopenharmony_ci	psci {
1248c2ecf20Sopenharmony_ci		compatible = "arm,psci-1.0";
1258c2ecf20Sopenharmony_ci		method = "smc";
1268c2ecf20Sopenharmony_ci	};
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ci	clk26m: clk26m {
1298c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
1308c2ecf20Sopenharmony_ci		#clock-cells = <0>;
1318c2ecf20Sopenharmony_ci		clock-frequency = <26000000>;
1328c2ecf20Sopenharmony_ci		clock-output-names = "clk26m";
1338c2ecf20Sopenharmony_ci	};
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_ci	clk32k: clk32k {
1368c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
1378c2ecf20Sopenharmony_ci		#clock-cells = <0>;
1388c2ecf20Sopenharmony_ci		clock-frequency = <32000>;
1398c2ecf20Sopenharmony_ci		clock-output-names = "clk32k";
1408c2ecf20Sopenharmony_ci	};
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ci	reserved-memory {
1438c2ecf20Sopenharmony_ci		#address-cells = <2>;
1448c2ecf20Sopenharmony_ci		#size-cells = <2>;
1458c2ecf20Sopenharmony_ci		ranges;
1468c2ecf20Sopenharmony_ci
1478c2ecf20Sopenharmony_ci		/* 128 KiB reserved for ARM Trusted Firmware (BL31) */
1488c2ecf20Sopenharmony_ci		bl31_secmon_reserved: secmon@43000000 {
1498c2ecf20Sopenharmony_ci			no-map;
1508c2ecf20Sopenharmony_ci			reg = <0 0x43000000 0 0x20000>;
1518c2ecf20Sopenharmony_ci		};
1528c2ecf20Sopenharmony_ci	};
1538c2ecf20Sopenharmony_ci
1548c2ecf20Sopenharmony_ci	timer {
1558c2ecf20Sopenharmony_ci		compatible = "arm,armv8-timer";
1568c2ecf20Sopenharmony_ci		interrupt-parent = <&gic>;
1578c2ecf20Sopenharmony_ci		interrupts = <GIC_PPI 13
1588c2ecf20Sopenharmony_ci			     (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1598c2ecf20Sopenharmony_ci			     <GIC_PPI 14
1608c2ecf20Sopenharmony_ci			     (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1618c2ecf20Sopenharmony_ci			     <GIC_PPI 11
1628c2ecf20Sopenharmony_ci			     (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1638c2ecf20Sopenharmony_ci			     <GIC_PPI 10
1648c2ecf20Sopenharmony_ci			     (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
1658c2ecf20Sopenharmony_ci	};
1668c2ecf20Sopenharmony_ci
1678c2ecf20Sopenharmony_ci	pmu {
1688c2ecf20Sopenharmony_ci		compatible = "arm,armv8-pmuv3";
1698c2ecf20Sopenharmony_ci		interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_LOW>,
1708c2ecf20Sopenharmony_ci			     <GIC_SPI 5 IRQ_TYPE_LEVEL_LOW>,
1718c2ecf20Sopenharmony_ci			     <GIC_SPI 6 IRQ_TYPE_LEVEL_LOW>,
1728c2ecf20Sopenharmony_ci			     <GIC_SPI 7 IRQ_TYPE_LEVEL_LOW>;
1738c2ecf20Sopenharmony_ci		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
1748c2ecf20Sopenharmony_ci	};
1758c2ecf20Sopenharmony_ci
1768c2ecf20Sopenharmony_ci	soc {
1778c2ecf20Sopenharmony_ci		#address-cells = <2>;
1788c2ecf20Sopenharmony_ci		#size-cells = <2>;
1798c2ecf20Sopenharmony_ci		compatible = "simple-bus";
1808c2ecf20Sopenharmony_ci		ranges;
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_ci		topckgen: topckgen@10000000 {
1838c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-topckgen", "syscon";
1848c2ecf20Sopenharmony_ci			reg = <0 0x10000000 0 0x1000>;
1858c2ecf20Sopenharmony_ci			#clock-cells = <1>;
1868c2ecf20Sopenharmony_ci		};
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_ci		infracfg: infracfg@10001000 {
1898c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-infracfg", "syscon";
1908c2ecf20Sopenharmony_ci			reg = <0 0x10001000 0 0x1000>;
1918c2ecf20Sopenharmony_ci			#clock-cells = <1>;
1928c2ecf20Sopenharmony_ci		};
1938c2ecf20Sopenharmony_ci
1948c2ecf20Sopenharmony_ci		pericfg: pericfg@10003050 {
1958c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-pericfg", "syscon";
1968c2ecf20Sopenharmony_ci			reg = <0 0x10003050 0 0x1000>;
1978c2ecf20Sopenharmony_ci		};
1988c2ecf20Sopenharmony_ci
1998c2ecf20Sopenharmony_ci		apmixedsys: apmixedsys@10018000 {
2008c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-apmixedsys", "syscon";
2018c2ecf20Sopenharmony_ci			reg = <0 0x10018000 0 0x710>;
2028c2ecf20Sopenharmony_ci			#clock-cells = <1>;
2038c2ecf20Sopenharmony_ci		};
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ci		toprgu: toprgu@10007000 {
2068c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-wdt",
2078c2ecf20Sopenharmony_ci				     "mediatek,mt6589-wdt";
2088c2ecf20Sopenharmony_ci			reg = <0 0x10007000 0 0x1000>;
2098c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_FALLING>;
2108c2ecf20Sopenharmony_ci			#reset-cells = <1>;
2118c2ecf20Sopenharmony_ci		};
2128c2ecf20Sopenharmony_ci
2138c2ecf20Sopenharmony_ci		timer: timer@10008000 {
2148c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-timer",
2158c2ecf20Sopenharmony_ci				     "mediatek,mt6577-timer";
2168c2ecf20Sopenharmony_ci			reg = <0 0x10008000 0 0x1000>;
2178c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
2188c2ecf20Sopenharmony_ci			clocks = <&topckgen CLK_TOP_CLK26M_D2>,
2198c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_APXGPT>;
2208c2ecf20Sopenharmony_ci			clock-names = "clk13m", "bus";
2218c2ecf20Sopenharmony_ci		};
2228c2ecf20Sopenharmony_ci
2238c2ecf20Sopenharmony_ci		syscfg_pctl: syscfg-pctl@10005000 {
2248c2ecf20Sopenharmony_ci			compatible = "syscon";
2258c2ecf20Sopenharmony_ci			reg = <0 0x10005000 0 0x1000>;
2268c2ecf20Sopenharmony_ci		};
2278c2ecf20Sopenharmony_ci
2288c2ecf20Sopenharmony_ci		pio: pinctrl@1000b000 {
2298c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-pinctrl";
2308c2ecf20Sopenharmony_ci			reg = <0 0x1000b000 0 0x1000>;
2318c2ecf20Sopenharmony_ci			mediatek,pctl-regmap = <&syscfg_pctl>;
2328c2ecf20Sopenharmony_ci			pins-are-numbered;
2338c2ecf20Sopenharmony_ci			gpio-controller;
2348c2ecf20Sopenharmony_ci			#gpio-cells = <2>;
2358c2ecf20Sopenharmony_ci			interrupt-controller;
2368c2ecf20Sopenharmony_ci			#interrupt-cells = <2>;
2378c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
2388c2ecf20Sopenharmony_ci		};
2398c2ecf20Sopenharmony_ci
2408c2ecf20Sopenharmony_ci		pwrap: pwrap@1000f000 {
2418c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-pwrap";
2428c2ecf20Sopenharmony_ci			reg = <0 0x1000f000 0 0x1000>;
2438c2ecf20Sopenharmony_ci			reg-names = "pwrap";
2448c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_LOW>;
2458c2ecf20Sopenharmony_ci			clocks = <&topckgen CLK_TOP_PMICWRAP_26M>,
2468c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_PMICWRAP_AP>;
2478c2ecf20Sopenharmony_ci			clock-names = "spi", "wrap";
2488c2ecf20Sopenharmony_ci		};
2498c2ecf20Sopenharmony_ci
2508c2ecf20Sopenharmony_ci		sysirq: interrupt-controller@10200620 {
2518c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-sysirq",
2528c2ecf20Sopenharmony_ci				     "mediatek,mt6577-sysirq";
2538c2ecf20Sopenharmony_ci			interrupt-controller;
2548c2ecf20Sopenharmony_ci			#interrupt-cells = <3>;
2558c2ecf20Sopenharmony_ci			interrupt-parent = <&gic>;
2568c2ecf20Sopenharmony_ci			reg = <0 0x10200620 0 0x20>;
2578c2ecf20Sopenharmony_ci		};
2588c2ecf20Sopenharmony_ci
2598c2ecf20Sopenharmony_ci		gic: interrupt-controller@10310000 {
2608c2ecf20Sopenharmony_ci			compatible = "arm,gic-400";
2618c2ecf20Sopenharmony_ci			#interrupt-cells = <3>;
2628c2ecf20Sopenharmony_ci			interrupt-parent = <&gic>;
2638c2ecf20Sopenharmony_ci			interrupt-controller;
2648c2ecf20Sopenharmony_ci			reg = <0 0x10310000 0 0x1000>,
2658c2ecf20Sopenharmony_ci			      <0 0x10320000 0 0x1000>,
2668c2ecf20Sopenharmony_ci			      <0 0x10340000 0 0x2000>,
2678c2ecf20Sopenharmony_ci			      <0 0x10360000 0 0x2000>;
2688c2ecf20Sopenharmony_ci			interrupts = <GIC_PPI 9
2698c2ecf20Sopenharmony_ci				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
2708c2ecf20Sopenharmony_ci		};
2718c2ecf20Sopenharmony_ci
2728c2ecf20Sopenharmony_ci		uart0: serial@11005000 {
2738c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-uart",
2748c2ecf20Sopenharmony_ci				     "mediatek,mt6577-uart";
2758c2ecf20Sopenharmony_ci			reg = <0 0x11005000 0 0x1000>;
2768c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>;
2778c2ecf20Sopenharmony_ci			clocks = <&topckgen CLK_TOP_UART0_SEL>,
2788c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_UART0>;
2798c2ecf20Sopenharmony_ci			clock-names = "baud", "bus";
2808c2ecf20Sopenharmony_ci			status = "disabled";
2818c2ecf20Sopenharmony_ci		};
2828c2ecf20Sopenharmony_ci
2838c2ecf20Sopenharmony_ci		uart1: serial@11006000 {
2848c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-uart",
2858c2ecf20Sopenharmony_ci				     "mediatek,mt6577-uart";
2868c2ecf20Sopenharmony_ci			reg = <0 0x11006000 0 0x1000>;
2878c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>;
2888c2ecf20Sopenharmony_ci			clocks = <&topckgen CLK_TOP_UART1_SEL>,
2898c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_UART1>;
2908c2ecf20Sopenharmony_ci			clock-names = "baud", "bus";
2918c2ecf20Sopenharmony_ci			status = "disabled";
2928c2ecf20Sopenharmony_ci		};
2938c2ecf20Sopenharmony_ci
2948c2ecf20Sopenharmony_ci		uart2: serial@11007000 {
2958c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-uart",
2968c2ecf20Sopenharmony_ci				     "mediatek,mt6577-uart";
2978c2ecf20Sopenharmony_ci			reg = <0 0x11007000 0 0x1000>;
2988c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_LOW>;
2998c2ecf20Sopenharmony_ci			clocks = <&topckgen CLK_TOP_UART2_SEL>,
3008c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_UART2>;
3018c2ecf20Sopenharmony_ci			clock-names = "baud", "bus";
3028c2ecf20Sopenharmony_ci			status = "disabled";
3038c2ecf20Sopenharmony_ci		};
3048c2ecf20Sopenharmony_ci
3058c2ecf20Sopenharmony_ci		i2c0: i2c@11009000 {
3068c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-i2c",
3078c2ecf20Sopenharmony_ci				     "mediatek,mt2712-i2c";
3088c2ecf20Sopenharmony_ci			reg = <0 0x11009000 0 0x90>,
3098c2ecf20Sopenharmony_ci			      <0 0x11000180 0 0x80>;
3108c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_LOW>;
3118c2ecf20Sopenharmony_ci			clocks = <&topckgen CLK_TOP_AHB_INFRA_D2>,
3128c2ecf20Sopenharmony_ci				 <&infracfg CLK_IFR_I2C0_SEL>,
3138c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_I2C0>,
3148c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_APDMA>;
3158c2ecf20Sopenharmony_ci			clock-names = "main-source",
3168c2ecf20Sopenharmony_ci				      "main-sel",
3178c2ecf20Sopenharmony_ci				      "main",
3188c2ecf20Sopenharmony_ci				      "dma";
3198c2ecf20Sopenharmony_ci			#address-cells = <1>;
3208c2ecf20Sopenharmony_ci			#size-cells = <0>;
3218c2ecf20Sopenharmony_ci			status = "disabled";
3228c2ecf20Sopenharmony_ci		};
3238c2ecf20Sopenharmony_ci
3248c2ecf20Sopenharmony_ci		i2c1: i2c@1100a000 {
3258c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-i2c",
3268c2ecf20Sopenharmony_ci				     "mediatek,mt2712-i2c";
3278c2ecf20Sopenharmony_ci			reg = <0 0x1100a000 0 0x90>,
3288c2ecf20Sopenharmony_ci			      <0 0x11000200 0 0x80>;
3298c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_LOW>;
3308c2ecf20Sopenharmony_ci			clocks = <&topckgen CLK_TOP_AHB_INFRA_D2>,
3318c2ecf20Sopenharmony_ci				 <&infracfg CLK_IFR_I2C1_SEL>,
3328c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_I2C1>,
3338c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_APDMA>;
3348c2ecf20Sopenharmony_ci			clock-names = "main-source",
3358c2ecf20Sopenharmony_ci				      "main-sel",
3368c2ecf20Sopenharmony_ci				      "main",
3378c2ecf20Sopenharmony_ci				      "dma";
3388c2ecf20Sopenharmony_ci			#address-cells = <1>;
3398c2ecf20Sopenharmony_ci			#size-cells = <0>;
3408c2ecf20Sopenharmony_ci			status = "disabled";
3418c2ecf20Sopenharmony_ci		};
3428c2ecf20Sopenharmony_ci
3438c2ecf20Sopenharmony_ci		i2c2: i2c@1100b000 {
3448c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-i2c",
3458c2ecf20Sopenharmony_ci				     "mediatek,mt2712-i2c";
3468c2ecf20Sopenharmony_ci			reg = <0 0x1100b000 0 0x90>,
3478c2ecf20Sopenharmony_ci			      <0 0x11000280 0 0x80>;
3488c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>;
3498c2ecf20Sopenharmony_ci			clocks = <&topckgen CLK_TOP_AHB_INFRA_D2>,
3508c2ecf20Sopenharmony_ci				 <&infracfg CLK_IFR_I2C2_SEL>,
3518c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_I2C2>,
3528c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_APDMA>;
3538c2ecf20Sopenharmony_ci			clock-names = "main-source",
3548c2ecf20Sopenharmony_ci				      "main-sel",
3558c2ecf20Sopenharmony_ci				      "main",
3568c2ecf20Sopenharmony_ci				      "dma";
3578c2ecf20Sopenharmony_ci			#address-cells = <1>;
3588c2ecf20Sopenharmony_ci			#size-cells = <0>;
3598c2ecf20Sopenharmony_ci			status = "disabled";
3608c2ecf20Sopenharmony_ci		};
3618c2ecf20Sopenharmony_ci
3628c2ecf20Sopenharmony_ci		spi: spi@1100c000 {
3638c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-spi",
3648c2ecf20Sopenharmony_ci				     "mediatek,mt2712-spi";
3658c2ecf20Sopenharmony_ci			#address-cells = <1>;
3668c2ecf20Sopenharmony_ci			#size-cells = <0>;
3678c2ecf20Sopenharmony_ci			reg = <0 0x1100c000 0 0x1000>;
3688c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>;
3698c2ecf20Sopenharmony_ci			clocks = <&topckgen CLK_TOP_UNIVPLL_D12>,
3708c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_SPI_SEL>,
3718c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_SPI>;
3728c2ecf20Sopenharmony_ci			clock-names = "parent-clk", "sel-clk", "spi-clk";
3738c2ecf20Sopenharmony_ci			status = "disabled";
3748c2ecf20Sopenharmony_ci		};
3758c2ecf20Sopenharmony_ci
3768c2ecf20Sopenharmony_ci		mmc0: mmc@11120000 {
3778c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-mmc";
3788c2ecf20Sopenharmony_ci			reg = <0 0x11120000 0 0x1000>;
3798c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>;
3808c2ecf20Sopenharmony_ci			clocks = <&topckgen CLK_TOP_MSDC0>,
3818c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_AHB_INFRA_SEL>,
3828c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_MSDC0_INFRA>;
3838c2ecf20Sopenharmony_ci			clock-names = "source", "hclk", "source_cg";
3848c2ecf20Sopenharmony_ci			status = "disabled";
3858c2ecf20Sopenharmony_ci		};
3868c2ecf20Sopenharmony_ci
3878c2ecf20Sopenharmony_ci		mmc1: mmc@11130000 {
3888c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-mmc";
3898c2ecf20Sopenharmony_ci			reg = <0 0x11130000 0 0x1000>;
3908c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>;
3918c2ecf20Sopenharmony_ci			clocks = <&topckgen CLK_TOP_MSDC1>,
3928c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_AHB_INFRA_SEL>,
3938c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_MSDC1_INFRA>;
3948c2ecf20Sopenharmony_ci			clock-names = "source", "hclk", "source_cg";
3958c2ecf20Sopenharmony_ci			status = "disabled";
3968c2ecf20Sopenharmony_ci		};
3978c2ecf20Sopenharmony_ci
3988c2ecf20Sopenharmony_ci		mmc2: mmc@11170000 {
3998c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-mmc";
4008c2ecf20Sopenharmony_ci			reg = <0 0x11170000 0 0x1000>;
4018c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_LOW>;
4028c2ecf20Sopenharmony_ci			clocks = <&topckgen CLK_TOP_MSDC2>,
4038c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_RG_MSDC2>,
4048c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_MSDC2_INFRA>;
4058c2ecf20Sopenharmony_ci			clock-names = "source", "hclk", "source_cg";
4068c2ecf20Sopenharmony_ci			status = "disabled";
4078c2ecf20Sopenharmony_ci		};
4088c2ecf20Sopenharmony_ci
4098c2ecf20Sopenharmony_ci		ethernet: ethernet@11180000 {
4108c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-eth";
4118c2ecf20Sopenharmony_ci			reg = <0 0x11180000 0 0x1000>;
4128c2ecf20Sopenharmony_ci			mediatek,pericfg = <&pericfg>;
4138c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_LOW>;
4148c2ecf20Sopenharmony_ci			clocks = <&topckgen CLK_TOP_RG_ETH>,
4158c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_66M_ETH>,
4168c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_133M_ETH>;
4178c2ecf20Sopenharmony_ci			clock-names = "core", "reg", "trans";
4188c2ecf20Sopenharmony_ci			status = "disabled";
4198c2ecf20Sopenharmony_ci		};
4208c2ecf20Sopenharmony_ci
4218c2ecf20Sopenharmony_ci		rng: rng@1020c000 {
4228c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-rng",
4238c2ecf20Sopenharmony_ci				     "mediatek,mt7623-rng";
4248c2ecf20Sopenharmony_ci			reg = <0 0x1020c000 0 0x100>;
4258c2ecf20Sopenharmony_ci			clocks = <&topckgen CLK_TOP_TRNG>;
4268c2ecf20Sopenharmony_ci			clock-names = "rng";
4278c2ecf20Sopenharmony_ci		};
4288c2ecf20Sopenharmony_ci
4298c2ecf20Sopenharmony_ci		pwm: pwm@11008000 {
4308c2ecf20Sopenharmony_ci			compatible = "mediatek,mt8516-pwm";
4318c2ecf20Sopenharmony_ci			reg = <0 0x11008000 0 0x1000>;
4328c2ecf20Sopenharmony_ci			#pwm-cells = <2>;
4338c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_LOW>;
4348c2ecf20Sopenharmony_ci			clocks = <&topckgen CLK_TOP_PWM>,
4358c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_PWM_B>,
4368c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_PWM1_FB>,
4378c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_PWM2_FB>,
4388c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_PWM3_FB>,
4398c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_PWM4_FB>,
4408c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_PWM5_FB>;
4418c2ecf20Sopenharmony_ci			clock-names = "top", "main", "pwm1", "pwm2", "pwm3",
4428c2ecf20Sopenharmony_ci				      "pwm4", "pwm5";
4438c2ecf20Sopenharmony_ci		};
4448c2ecf20Sopenharmony_ci
4458c2ecf20Sopenharmony_ci		usb0: usb@11100000 {
4468c2ecf20Sopenharmony_ci			compatible = "mediatek,mtk-musb";
4478c2ecf20Sopenharmony_ci			reg = <0 0x11100000 0 0x1000>;
4488c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>;
4498c2ecf20Sopenharmony_ci			interrupt-names = "mc";
4508c2ecf20Sopenharmony_ci			phys = <&usb0_port PHY_TYPE_USB2>;
4518c2ecf20Sopenharmony_ci			clocks = <&topckgen CLK_TOP_USB>,
4528c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_USBIF>,
4538c2ecf20Sopenharmony_ci				 <&topckgen CLK_TOP_USB_1P>;
4548c2ecf20Sopenharmony_ci			clock-names = "main","mcu","univpll";
4558c2ecf20Sopenharmony_ci			status = "disabled";
4568c2ecf20Sopenharmony_ci		};
4578c2ecf20Sopenharmony_ci
4588c2ecf20Sopenharmony_ci		usb0_phy: usb@11110000 {
4598c2ecf20Sopenharmony_ci			compatible = "mediatek,generic-tphy-v1";
4608c2ecf20Sopenharmony_ci			reg = <0 0x11110000 0 0x800>;
4618c2ecf20Sopenharmony_ci			#address-cells = <2>;
4628c2ecf20Sopenharmony_ci			#size-cells = <2>;
4638c2ecf20Sopenharmony_ci			ranges;
4648c2ecf20Sopenharmony_ci			status = "disabled";
4658c2ecf20Sopenharmony_ci
4668c2ecf20Sopenharmony_ci			usb0_port: usb-phy@11110800 {
4678c2ecf20Sopenharmony_ci				reg = <0 0x11110800 0 0x100>;
4688c2ecf20Sopenharmony_ci				clocks = <&topckgen CLK_TOP_USB_PHY48M>;
4698c2ecf20Sopenharmony_ci				clock-names = "ref";
4708c2ecf20Sopenharmony_ci				#phy-cells = <1>;
4718c2ecf20Sopenharmony_ci			};
4728c2ecf20Sopenharmony_ci		};
4738c2ecf20Sopenharmony_ci	};
4748c2ecf20Sopenharmony_ci};
475