1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright (c) 2019 MediaTek Inc. 4*4882a593Smuzhiyun * Copyright (c) 2019 BayLibre, SAS. 5*4882a593Smuzhiyun * Author: Fabien Parent <fparent@baylibre.com> 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun#include <dt-bindings/clock/mt8516-clk.h> 9*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 10*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h> 11*4882a593Smuzhiyun#include <dt-bindings/phy/phy.h> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun#include "mt8516-pinfunc.h" 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun/ { 16*4882a593Smuzhiyun compatible = "mediatek,mt8516"; 17*4882a593Smuzhiyun interrupt-parent = <&sysirq>; 18*4882a593Smuzhiyun #address-cells = <2>; 19*4882a593Smuzhiyun #size-cells = <2>; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun cluster0_opp: opp-table-0 { 22*4882a593Smuzhiyun compatible = "operating-points-v2"; 23*4882a593Smuzhiyun opp-shared; 24*4882a593Smuzhiyun opp-598000000 { 25*4882a593Smuzhiyun opp-hz = /bits/ 64 <598000000>; 26*4882a593Smuzhiyun opp-microvolt = <1150000>; 27*4882a593Smuzhiyun }; 28*4882a593Smuzhiyun opp-747500000 { 29*4882a593Smuzhiyun opp-hz = /bits/ 64 <747500000>; 30*4882a593Smuzhiyun opp-microvolt = <1150000>; 31*4882a593Smuzhiyun }; 32*4882a593Smuzhiyun opp-1040000000 { 33*4882a593Smuzhiyun opp-hz = /bits/ 64 <1040000000>; 34*4882a593Smuzhiyun opp-microvolt = <1200000>; 35*4882a593Smuzhiyun }; 36*4882a593Smuzhiyun opp-1196000000 { 37*4882a593Smuzhiyun opp-hz = /bits/ 64 <1196000000>; 38*4882a593Smuzhiyun opp-microvolt = <1250000>; 39*4882a593Smuzhiyun }; 40*4882a593Smuzhiyun opp-1300000000 { 41*4882a593Smuzhiyun opp-hz = /bits/ 64 <1300000000>; 42*4882a593Smuzhiyun opp-microvolt = <1300000>; 43*4882a593Smuzhiyun }; 44*4882a593Smuzhiyun }; 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun cpus { 47*4882a593Smuzhiyun #address-cells = <1>; 48*4882a593Smuzhiyun #size-cells = <0>; 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun cpu0: cpu@0 { 51*4882a593Smuzhiyun device_type = "cpu"; 52*4882a593Smuzhiyun compatible = "arm,cortex-a35"; 53*4882a593Smuzhiyun reg = <0x0>; 54*4882a593Smuzhiyun enable-method = "psci"; 55*4882a593Smuzhiyun cpu-idle-states = <&CLUSTER_SLEEP_0 &CLUSTER_SLEEP_0>, 56*4882a593Smuzhiyun <&CPU_SLEEP_0_0 &CPU_SLEEP_0_0 &CPU_SLEEP_0_0>; 57*4882a593Smuzhiyun clocks = <&infracfg CLK_IFR_MUX1_SEL>, 58*4882a593Smuzhiyun <&topckgen CLK_TOP_MAINPLL_D2>; 59*4882a593Smuzhiyun clock-names = "cpu", "intermediate"; 60*4882a593Smuzhiyun operating-points-v2 = <&cluster0_opp>; 61*4882a593Smuzhiyun }; 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun cpu1: cpu@1 { 64*4882a593Smuzhiyun device_type = "cpu"; 65*4882a593Smuzhiyun compatible = "arm,cortex-a35"; 66*4882a593Smuzhiyun reg = <0x1>; 67*4882a593Smuzhiyun enable-method = "psci"; 68*4882a593Smuzhiyun cpu-idle-states = <&CLUSTER_SLEEP_0 &CLUSTER_SLEEP_0>, 69*4882a593Smuzhiyun <&CPU_SLEEP_0_0 &CPU_SLEEP_0_0 &CPU_SLEEP_0_0>; 70*4882a593Smuzhiyun clocks = <&infracfg CLK_IFR_MUX1_SEL>, 71*4882a593Smuzhiyun <&topckgen CLK_TOP_MAINPLL_D2>; 72*4882a593Smuzhiyun clock-names = "cpu", "intermediate"; 73*4882a593Smuzhiyun operating-points-v2 = <&cluster0_opp>; 74*4882a593Smuzhiyun }; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun cpu2: cpu@2 { 77*4882a593Smuzhiyun device_type = "cpu"; 78*4882a593Smuzhiyun compatible = "arm,cortex-a35"; 79*4882a593Smuzhiyun reg = <0x2>; 80*4882a593Smuzhiyun enable-method = "psci"; 81*4882a593Smuzhiyun cpu-idle-states = <&CLUSTER_SLEEP_0 &CLUSTER_SLEEP_0>, 82*4882a593Smuzhiyun <&CPU_SLEEP_0_0 &CPU_SLEEP_0_0 &CPU_SLEEP_0_0>; 83*4882a593Smuzhiyun clocks = <&infracfg CLK_IFR_MUX1_SEL>, 84*4882a593Smuzhiyun <&topckgen CLK_TOP_MAINPLL_D2>; 85*4882a593Smuzhiyun clock-names = "cpu", "intermediate"; 86*4882a593Smuzhiyun operating-points-v2 = <&cluster0_opp>; 87*4882a593Smuzhiyun }; 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun cpu3: cpu@3 { 90*4882a593Smuzhiyun device_type = "cpu"; 91*4882a593Smuzhiyun compatible = "arm,cortex-a35"; 92*4882a593Smuzhiyun reg = <0x3>; 93*4882a593Smuzhiyun enable-method = "psci"; 94*4882a593Smuzhiyun cpu-idle-states = <&CLUSTER_SLEEP_0 &CLUSTER_SLEEP_0>, 95*4882a593Smuzhiyun <&CPU_SLEEP_0_0 &CPU_SLEEP_0_0 &CPU_SLEEP_0_0>; 96*4882a593Smuzhiyun clocks = <&infracfg CLK_IFR_MUX1_SEL>, 97*4882a593Smuzhiyun <&topckgen CLK_TOP_MAINPLL_D2>; 98*4882a593Smuzhiyun clock-names = "cpu", "intermediate", "armpll"; 99*4882a593Smuzhiyun operating-points-v2 = <&cluster0_opp>; 100*4882a593Smuzhiyun }; 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun idle-states { 103*4882a593Smuzhiyun entry-method = "psci"; 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun CPU_SLEEP_0_0: cpu-sleep-0-0 { 106*4882a593Smuzhiyun compatible = "arm,idle-state"; 107*4882a593Smuzhiyun entry-latency-us = <600>; 108*4882a593Smuzhiyun exit-latency-us = <600>; 109*4882a593Smuzhiyun min-residency-us = <1200>; 110*4882a593Smuzhiyun arm,psci-suspend-param = <0x0010000>; 111*4882a593Smuzhiyun }; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun CLUSTER_SLEEP_0: cluster-sleep-0 { 114*4882a593Smuzhiyun compatible = "arm,idle-state"; 115*4882a593Smuzhiyun entry-latency-us = <800>; 116*4882a593Smuzhiyun exit-latency-us = <1000>; 117*4882a593Smuzhiyun min-residency-us = <2000>; 118*4882a593Smuzhiyun arm,psci-suspend-param = <0x2010000>; 119*4882a593Smuzhiyun }; 120*4882a593Smuzhiyun }; 121*4882a593Smuzhiyun }; 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun psci { 124*4882a593Smuzhiyun compatible = "arm,psci-1.0"; 125*4882a593Smuzhiyun method = "smc"; 126*4882a593Smuzhiyun }; 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun clk26m: clk26m { 129*4882a593Smuzhiyun compatible = "fixed-clock"; 130*4882a593Smuzhiyun #clock-cells = <0>; 131*4882a593Smuzhiyun clock-frequency = <26000000>; 132*4882a593Smuzhiyun clock-output-names = "clk26m"; 133*4882a593Smuzhiyun }; 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun clk32k: clk32k { 136*4882a593Smuzhiyun compatible = "fixed-clock"; 137*4882a593Smuzhiyun #clock-cells = <0>; 138*4882a593Smuzhiyun clock-frequency = <32000>; 139*4882a593Smuzhiyun clock-output-names = "clk32k"; 140*4882a593Smuzhiyun }; 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun reserved-memory { 143*4882a593Smuzhiyun #address-cells = <2>; 144*4882a593Smuzhiyun #size-cells = <2>; 145*4882a593Smuzhiyun ranges; 146*4882a593Smuzhiyun 147*4882a593Smuzhiyun /* 128 KiB reserved for ARM Trusted Firmware (BL31) */ 148*4882a593Smuzhiyun bl31_secmon_reserved: secmon@43000000 { 149*4882a593Smuzhiyun no-map; 150*4882a593Smuzhiyun reg = <0 0x43000000 0 0x20000>; 151*4882a593Smuzhiyun }; 152*4882a593Smuzhiyun }; 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun timer { 155*4882a593Smuzhiyun compatible = "arm,armv8-timer"; 156*4882a593Smuzhiyun interrupt-parent = <&gic>; 157*4882a593Smuzhiyun interrupts = <GIC_PPI 13 158*4882a593Smuzhiyun (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 159*4882a593Smuzhiyun <GIC_PPI 14 160*4882a593Smuzhiyun (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 161*4882a593Smuzhiyun <GIC_PPI 11 162*4882a593Smuzhiyun (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 163*4882a593Smuzhiyun <GIC_PPI 10 164*4882a593Smuzhiyun (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 165*4882a593Smuzhiyun }; 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun pmu { 168*4882a593Smuzhiyun compatible = "arm,armv8-pmuv3"; 169*4882a593Smuzhiyun interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_LOW>, 170*4882a593Smuzhiyun <GIC_SPI 5 IRQ_TYPE_LEVEL_LOW>, 171*4882a593Smuzhiyun <GIC_SPI 6 IRQ_TYPE_LEVEL_LOW>, 172*4882a593Smuzhiyun <GIC_SPI 7 IRQ_TYPE_LEVEL_LOW>; 173*4882a593Smuzhiyun interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 174*4882a593Smuzhiyun }; 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun soc { 177*4882a593Smuzhiyun #address-cells = <2>; 178*4882a593Smuzhiyun #size-cells = <2>; 179*4882a593Smuzhiyun compatible = "simple-bus"; 180*4882a593Smuzhiyun ranges; 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun topckgen: topckgen@10000000 { 183*4882a593Smuzhiyun compatible = "mediatek,mt8516-topckgen", "syscon"; 184*4882a593Smuzhiyun reg = <0 0x10000000 0 0x1000>; 185*4882a593Smuzhiyun #clock-cells = <1>; 186*4882a593Smuzhiyun }; 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun infracfg: infracfg@10001000 { 189*4882a593Smuzhiyun compatible = "mediatek,mt8516-infracfg", "syscon"; 190*4882a593Smuzhiyun reg = <0 0x10001000 0 0x1000>; 191*4882a593Smuzhiyun #clock-cells = <1>; 192*4882a593Smuzhiyun }; 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun pericfg: pericfg@10003050 { 195*4882a593Smuzhiyun compatible = "mediatek,mt8516-pericfg", "syscon"; 196*4882a593Smuzhiyun reg = <0 0x10003050 0 0x1000>; 197*4882a593Smuzhiyun }; 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun apmixedsys: apmixedsys@10018000 { 200*4882a593Smuzhiyun compatible = "mediatek,mt8516-apmixedsys", "syscon"; 201*4882a593Smuzhiyun reg = <0 0x10018000 0 0x710>; 202*4882a593Smuzhiyun #clock-cells = <1>; 203*4882a593Smuzhiyun }; 204*4882a593Smuzhiyun 205*4882a593Smuzhiyun toprgu: toprgu@10007000 { 206*4882a593Smuzhiyun compatible = "mediatek,mt8516-wdt", 207*4882a593Smuzhiyun "mediatek,mt6589-wdt"; 208*4882a593Smuzhiyun reg = <0 0x10007000 0 0x1000>; 209*4882a593Smuzhiyun interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_FALLING>; 210*4882a593Smuzhiyun #reset-cells = <1>; 211*4882a593Smuzhiyun }; 212*4882a593Smuzhiyun 213*4882a593Smuzhiyun timer: timer@10008000 { 214*4882a593Smuzhiyun compatible = "mediatek,mt8516-timer", 215*4882a593Smuzhiyun "mediatek,mt6577-timer"; 216*4882a593Smuzhiyun reg = <0 0x10008000 0 0x1000>; 217*4882a593Smuzhiyun interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>; 218*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_CLK26M_D2>, 219*4882a593Smuzhiyun <&topckgen CLK_TOP_APXGPT>; 220*4882a593Smuzhiyun clock-names = "clk13m", "bus"; 221*4882a593Smuzhiyun }; 222*4882a593Smuzhiyun 223*4882a593Smuzhiyun syscfg_pctl: syscfg-pctl@10005000 { 224*4882a593Smuzhiyun compatible = "syscon"; 225*4882a593Smuzhiyun reg = <0 0x10005000 0 0x1000>; 226*4882a593Smuzhiyun }; 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun pio: pinctrl@1000b000 { 229*4882a593Smuzhiyun compatible = "mediatek,mt8516-pinctrl"; 230*4882a593Smuzhiyun reg = <0 0x1000b000 0 0x1000>; 231*4882a593Smuzhiyun mediatek,pctl-regmap = <&syscfg_pctl>; 232*4882a593Smuzhiyun pins-are-numbered; 233*4882a593Smuzhiyun gpio-controller; 234*4882a593Smuzhiyun #gpio-cells = <2>; 235*4882a593Smuzhiyun interrupt-controller; 236*4882a593Smuzhiyun #interrupt-cells = <2>; 237*4882a593Smuzhiyun interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; 238*4882a593Smuzhiyun }; 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun pwrap: pwrap@1000f000 { 241*4882a593Smuzhiyun compatible = "mediatek,mt8516-pwrap"; 242*4882a593Smuzhiyun reg = <0 0x1000f000 0 0x1000>; 243*4882a593Smuzhiyun reg-names = "pwrap"; 244*4882a593Smuzhiyun interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_LOW>; 245*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_PMICWRAP_26M>, 246*4882a593Smuzhiyun <&topckgen CLK_TOP_PMICWRAP_AP>; 247*4882a593Smuzhiyun clock-names = "spi", "wrap"; 248*4882a593Smuzhiyun }; 249*4882a593Smuzhiyun 250*4882a593Smuzhiyun sysirq: interrupt-controller@10200620 { 251*4882a593Smuzhiyun compatible = "mediatek,mt8516-sysirq", 252*4882a593Smuzhiyun "mediatek,mt6577-sysirq"; 253*4882a593Smuzhiyun interrupt-controller; 254*4882a593Smuzhiyun #interrupt-cells = <3>; 255*4882a593Smuzhiyun interrupt-parent = <&gic>; 256*4882a593Smuzhiyun reg = <0 0x10200620 0 0x20>; 257*4882a593Smuzhiyun }; 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun gic: interrupt-controller@10310000 { 260*4882a593Smuzhiyun compatible = "arm,gic-400"; 261*4882a593Smuzhiyun #interrupt-cells = <3>; 262*4882a593Smuzhiyun interrupt-parent = <&gic>; 263*4882a593Smuzhiyun interrupt-controller; 264*4882a593Smuzhiyun reg = <0 0x10310000 0 0x1000>, 265*4882a593Smuzhiyun <0 0x10320000 0 0x1000>, 266*4882a593Smuzhiyun <0 0x10340000 0 0x2000>, 267*4882a593Smuzhiyun <0 0x10360000 0 0x2000>; 268*4882a593Smuzhiyun interrupts = <GIC_PPI 9 269*4882a593Smuzhiyun (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 270*4882a593Smuzhiyun }; 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun uart0: serial@11005000 { 273*4882a593Smuzhiyun compatible = "mediatek,mt8516-uart", 274*4882a593Smuzhiyun "mediatek,mt6577-uart"; 275*4882a593Smuzhiyun reg = <0 0x11005000 0 0x1000>; 276*4882a593Smuzhiyun interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>; 277*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_UART0_SEL>, 278*4882a593Smuzhiyun <&topckgen CLK_TOP_UART0>; 279*4882a593Smuzhiyun clock-names = "baud", "bus"; 280*4882a593Smuzhiyun status = "disabled"; 281*4882a593Smuzhiyun }; 282*4882a593Smuzhiyun 283*4882a593Smuzhiyun uart1: serial@11006000 { 284*4882a593Smuzhiyun compatible = "mediatek,mt8516-uart", 285*4882a593Smuzhiyun "mediatek,mt6577-uart"; 286*4882a593Smuzhiyun reg = <0 0x11006000 0 0x1000>; 287*4882a593Smuzhiyun interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>; 288*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_UART1_SEL>, 289*4882a593Smuzhiyun <&topckgen CLK_TOP_UART1>; 290*4882a593Smuzhiyun clock-names = "baud", "bus"; 291*4882a593Smuzhiyun status = "disabled"; 292*4882a593Smuzhiyun }; 293*4882a593Smuzhiyun 294*4882a593Smuzhiyun uart2: serial@11007000 { 295*4882a593Smuzhiyun compatible = "mediatek,mt8516-uart", 296*4882a593Smuzhiyun "mediatek,mt6577-uart"; 297*4882a593Smuzhiyun reg = <0 0x11007000 0 0x1000>; 298*4882a593Smuzhiyun interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_LOW>; 299*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_UART2_SEL>, 300*4882a593Smuzhiyun <&topckgen CLK_TOP_UART2>; 301*4882a593Smuzhiyun clock-names = "baud", "bus"; 302*4882a593Smuzhiyun status = "disabled"; 303*4882a593Smuzhiyun }; 304*4882a593Smuzhiyun 305*4882a593Smuzhiyun i2c0: i2c@11009000 { 306*4882a593Smuzhiyun compatible = "mediatek,mt8516-i2c", 307*4882a593Smuzhiyun "mediatek,mt2712-i2c"; 308*4882a593Smuzhiyun reg = <0 0x11009000 0 0x90>, 309*4882a593Smuzhiyun <0 0x11000180 0 0x80>; 310*4882a593Smuzhiyun interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_LOW>; 311*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_AHB_INFRA_D2>, 312*4882a593Smuzhiyun <&infracfg CLK_IFR_I2C0_SEL>, 313*4882a593Smuzhiyun <&topckgen CLK_TOP_I2C0>, 314*4882a593Smuzhiyun <&topckgen CLK_TOP_APDMA>; 315*4882a593Smuzhiyun clock-names = "main-source", 316*4882a593Smuzhiyun "main-sel", 317*4882a593Smuzhiyun "main", 318*4882a593Smuzhiyun "dma"; 319*4882a593Smuzhiyun #address-cells = <1>; 320*4882a593Smuzhiyun #size-cells = <0>; 321*4882a593Smuzhiyun status = "disabled"; 322*4882a593Smuzhiyun }; 323*4882a593Smuzhiyun 324*4882a593Smuzhiyun i2c1: i2c@1100a000 { 325*4882a593Smuzhiyun compatible = "mediatek,mt8516-i2c", 326*4882a593Smuzhiyun "mediatek,mt2712-i2c"; 327*4882a593Smuzhiyun reg = <0 0x1100a000 0 0x90>, 328*4882a593Smuzhiyun <0 0x11000200 0 0x80>; 329*4882a593Smuzhiyun interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_LOW>; 330*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_AHB_INFRA_D2>, 331*4882a593Smuzhiyun <&infracfg CLK_IFR_I2C1_SEL>, 332*4882a593Smuzhiyun <&topckgen CLK_TOP_I2C1>, 333*4882a593Smuzhiyun <&topckgen CLK_TOP_APDMA>; 334*4882a593Smuzhiyun clock-names = "main-source", 335*4882a593Smuzhiyun "main-sel", 336*4882a593Smuzhiyun "main", 337*4882a593Smuzhiyun "dma"; 338*4882a593Smuzhiyun #address-cells = <1>; 339*4882a593Smuzhiyun #size-cells = <0>; 340*4882a593Smuzhiyun status = "disabled"; 341*4882a593Smuzhiyun }; 342*4882a593Smuzhiyun 343*4882a593Smuzhiyun i2c2: i2c@1100b000 { 344*4882a593Smuzhiyun compatible = "mediatek,mt8516-i2c", 345*4882a593Smuzhiyun "mediatek,mt2712-i2c"; 346*4882a593Smuzhiyun reg = <0 0x1100b000 0 0x90>, 347*4882a593Smuzhiyun <0 0x11000280 0 0x80>; 348*4882a593Smuzhiyun interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>; 349*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_AHB_INFRA_D2>, 350*4882a593Smuzhiyun <&infracfg CLK_IFR_I2C2_SEL>, 351*4882a593Smuzhiyun <&topckgen CLK_TOP_I2C2>, 352*4882a593Smuzhiyun <&topckgen CLK_TOP_APDMA>; 353*4882a593Smuzhiyun clock-names = "main-source", 354*4882a593Smuzhiyun "main-sel", 355*4882a593Smuzhiyun "main", 356*4882a593Smuzhiyun "dma"; 357*4882a593Smuzhiyun #address-cells = <1>; 358*4882a593Smuzhiyun #size-cells = <0>; 359*4882a593Smuzhiyun status = "disabled"; 360*4882a593Smuzhiyun }; 361*4882a593Smuzhiyun 362*4882a593Smuzhiyun spi: spi@1100c000 { 363*4882a593Smuzhiyun compatible = "mediatek,mt8516-spi", 364*4882a593Smuzhiyun "mediatek,mt2712-spi"; 365*4882a593Smuzhiyun #address-cells = <1>; 366*4882a593Smuzhiyun #size-cells = <0>; 367*4882a593Smuzhiyun reg = <0 0x1100c000 0 0x1000>; 368*4882a593Smuzhiyun interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>; 369*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_UNIVPLL_D12>, 370*4882a593Smuzhiyun <&topckgen CLK_TOP_SPI_SEL>, 371*4882a593Smuzhiyun <&topckgen CLK_TOP_SPI>; 372*4882a593Smuzhiyun clock-names = "parent-clk", "sel-clk", "spi-clk"; 373*4882a593Smuzhiyun status = "disabled"; 374*4882a593Smuzhiyun }; 375*4882a593Smuzhiyun 376*4882a593Smuzhiyun mmc0: mmc@11120000 { 377*4882a593Smuzhiyun compatible = "mediatek,mt8516-mmc"; 378*4882a593Smuzhiyun reg = <0 0x11120000 0 0x1000>; 379*4882a593Smuzhiyun interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>; 380*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_MSDC0>, 381*4882a593Smuzhiyun <&topckgen CLK_TOP_AHB_INFRA_SEL>, 382*4882a593Smuzhiyun <&topckgen CLK_TOP_MSDC0_INFRA>; 383*4882a593Smuzhiyun clock-names = "source", "hclk", "source_cg"; 384*4882a593Smuzhiyun status = "disabled"; 385*4882a593Smuzhiyun }; 386*4882a593Smuzhiyun 387*4882a593Smuzhiyun mmc1: mmc@11130000 { 388*4882a593Smuzhiyun compatible = "mediatek,mt8516-mmc"; 389*4882a593Smuzhiyun reg = <0 0x11130000 0 0x1000>; 390*4882a593Smuzhiyun interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>; 391*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_MSDC1>, 392*4882a593Smuzhiyun <&topckgen CLK_TOP_AHB_INFRA_SEL>, 393*4882a593Smuzhiyun <&topckgen CLK_TOP_MSDC1_INFRA>; 394*4882a593Smuzhiyun clock-names = "source", "hclk", "source_cg"; 395*4882a593Smuzhiyun status = "disabled"; 396*4882a593Smuzhiyun }; 397*4882a593Smuzhiyun 398*4882a593Smuzhiyun mmc2: mmc@11170000 { 399*4882a593Smuzhiyun compatible = "mediatek,mt8516-mmc"; 400*4882a593Smuzhiyun reg = <0 0x11170000 0 0x1000>; 401*4882a593Smuzhiyun interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_LOW>; 402*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_MSDC2>, 403*4882a593Smuzhiyun <&topckgen CLK_TOP_RG_MSDC2>, 404*4882a593Smuzhiyun <&topckgen CLK_TOP_MSDC2_INFRA>; 405*4882a593Smuzhiyun clock-names = "source", "hclk", "source_cg"; 406*4882a593Smuzhiyun status = "disabled"; 407*4882a593Smuzhiyun }; 408*4882a593Smuzhiyun 409*4882a593Smuzhiyun ethernet: ethernet@11180000 { 410*4882a593Smuzhiyun compatible = "mediatek,mt8516-eth"; 411*4882a593Smuzhiyun reg = <0 0x11180000 0 0x1000>; 412*4882a593Smuzhiyun mediatek,pericfg = <&pericfg>; 413*4882a593Smuzhiyun interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_LOW>; 414*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_RG_ETH>, 415*4882a593Smuzhiyun <&topckgen CLK_TOP_66M_ETH>, 416*4882a593Smuzhiyun <&topckgen CLK_TOP_133M_ETH>; 417*4882a593Smuzhiyun clock-names = "core", "reg", "trans"; 418*4882a593Smuzhiyun status = "disabled"; 419*4882a593Smuzhiyun }; 420*4882a593Smuzhiyun 421*4882a593Smuzhiyun rng: rng@1020c000 { 422*4882a593Smuzhiyun compatible = "mediatek,mt8516-rng", 423*4882a593Smuzhiyun "mediatek,mt7623-rng"; 424*4882a593Smuzhiyun reg = <0 0x1020c000 0 0x100>; 425*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_TRNG>; 426*4882a593Smuzhiyun clock-names = "rng"; 427*4882a593Smuzhiyun }; 428*4882a593Smuzhiyun 429*4882a593Smuzhiyun pwm: pwm@11008000 { 430*4882a593Smuzhiyun compatible = "mediatek,mt8516-pwm"; 431*4882a593Smuzhiyun reg = <0 0x11008000 0 0x1000>; 432*4882a593Smuzhiyun #pwm-cells = <2>; 433*4882a593Smuzhiyun interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_LOW>; 434*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_PWM>, 435*4882a593Smuzhiyun <&topckgen CLK_TOP_PWM_B>, 436*4882a593Smuzhiyun <&topckgen CLK_TOP_PWM1_FB>, 437*4882a593Smuzhiyun <&topckgen CLK_TOP_PWM2_FB>, 438*4882a593Smuzhiyun <&topckgen CLK_TOP_PWM3_FB>, 439*4882a593Smuzhiyun <&topckgen CLK_TOP_PWM4_FB>, 440*4882a593Smuzhiyun <&topckgen CLK_TOP_PWM5_FB>; 441*4882a593Smuzhiyun clock-names = "top", "main", "pwm1", "pwm2", "pwm3", 442*4882a593Smuzhiyun "pwm4", "pwm5"; 443*4882a593Smuzhiyun }; 444*4882a593Smuzhiyun 445*4882a593Smuzhiyun usb0: usb@11100000 { 446*4882a593Smuzhiyun compatible = "mediatek,mtk-musb"; 447*4882a593Smuzhiyun reg = <0 0x11100000 0 0x1000>; 448*4882a593Smuzhiyun interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>; 449*4882a593Smuzhiyun interrupt-names = "mc"; 450*4882a593Smuzhiyun phys = <&usb0_port PHY_TYPE_USB2>; 451*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_USB>, 452*4882a593Smuzhiyun <&topckgen CLK_TOP_USBIF>, 453*4882a593Smuzhiyun <&topckgen CLK_TOP_USB_1P>; 454*4882a593Smuzhiyun clock-names = "main","mcu","univpll"; 455*4882a593Smuzhiyun status = "disabled"; 456*4882a593Smuzhiyun }; 457*4882a593Smuzhiyun 458*4882a593Smuzhiyun usb0_phy: usb@11110000 { 459*4882a593Smuzhiyun compatible = "mediatek,generic-tphy-v1"; 460*4882a593Smuzhiyun reg = <0 0x11110000 0 0x800>; 461*4882a593Smuzhiyun #address-cells = <2>; 462*4882a593Smuzhiyun #size-cells = <2>; 463*4882a593Smuzhiyun ranges; 464*4882a593Smuzhiyun status = "disabled"; 465*4882a593Smuzhiyun 466*4882a593Smuzhiyun usb0_port: usb-phy@11110800 { 467*4882a593Smuzhiyun reg = <0 0x11110800 0 0x100>; 468*4882a593Smuzhiyun clocks = <&topckgen CLK_TOP_USB_PHY48M>; 469*4882a593Smuzhiyun clock-names = "ref"; 470*4882a593Smuzhiyun #phy-cells = <1>; 471*4882a593Smuzhiyun }; 472*4882a593Smuzhiyun }; 473*4882a593Smuzhiyun }; 474*4882a593Smuzhiyun}; 475