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