1*376ac00dSRyder Lee/* 2*376ac00dSRyder Lee * Copyright (C) 2018 MediaTek Inc. 3*376ac00dSRyder Lee * Author: Ryder Lee <ryder.lee@mediatek.com> 4*376ac00dSRyder Lee * 5*376ac00dSRyder Lee * SPDX-License-Identifier: (GPL-2.0 OR MIT) 6*376ac00dSRyder Lee */ 7*376ac00dSRyder Lee 8*376ac00dSRyder Lee#include <dt-bindings/clock/mt7629-clk.h> 9*376ac00dSRyder Lee#include <dt-bindings/gpio/gpio.h> 10*376ac00dSRyder Lee#include <dt-bindings/interrupt-controller/irq.h> 11*376ac00dSRyder Lee#include <dt-bindings/interrupt-controller/arm-gic.h> 12*376ac00dSRyder Lee#include <dt-bindings/power/mt7629-power.h> 13*376ac00dSRyder Lee#include "skeleton.dtsi" 14*376ac00dSRyder Lee 15*376ac00dSRyder Lee/ { 16*376ac00dSRyder Lee compatible = "mediatek,mt7629"; 17*376ac00dSRyder Lee interrupt-parent = <&sysirq>; 18*376ac00dSRyder Lee #address-cells = <1>; 19*376ac00dSRyder Lee #size-cells = <1>; 20*376ac00dSRyder Lee 21*376ac00dSRyder Lee cpus { 22*376ac00dSRyder Lee #address-cells = <1>; 23*376ac00dSRyder Lee #size-cells = <0>; 24*376ac00dSRyder Lee enable-method = "mediatek,mt6589-smp"; 25*376ac00dSRyder Lee 26*376ac00dSRyder Lee cpu@0 { 27*376ac00dSRyder Lee device_type = "cpu"; 28*376ac00dSRyder Lee compatible = "arm,cortex-a7"; 29*376ac00dSRyder Lee reg = <0x0>; 30*376ac00dSRyder Lee clock-frequency = <1250000000>; 31*376ac00dSRyder Lee }; 32*376ac00dSRyder Lee 33*376ac00dSRyder Lee cpu@1 { 34*376ac00dSRyder Lee device_type = "cpu"; 35*376ac00dSRyder Lee compatible = "arm,cortex-a7"; 36*376ac00dSRyder Lee reg = <0x1>; 37*376ac00dSRyder Lee clock-frequency = <1250000000>; 38*376ac00dSRyder Lee }; 39*376ac00dSRyder Lee }; 40*376ac00dSRyder Lee 41*376ac00dSRyder Lee clk20m: oscillator@0 { 42*376ac00dSRyder Lee compatible = "fixed-clock"; 43*376ac00dSRyder Lee #clock-cells = <0>; 44*376ac00dSRyder Lee clock-frequency = <20000000>; 45*376ac00dSRyder Lee clock-output-names = "clk20m"; 46*376ac00dSRyder Lee }; 47*376ac00dSRyder Lee 48*376ac00dSRyder Lee clk40m: oscillator@1 { 49*376ac00dSRyder Lee compatible = "fixed-clock"; 50*376ac00dSRyder Lee #clock-cells = <0>; 51*376ac00dSRyder Lee clock-frequency = <40000000>; 52*376ac00dSRyder Lee clock-output-names = "clkxtal"; 53*376ac00dSRyder Lee }; 54*376ac00dSRyder Lee 55*376ac00dSRyder Lee timer { 56*376ac00dSRyder Lee compatible = "arm,armv7-timer"; 57*376ac00dSRyder Lee interrupt-parent = <&gic>; 58*376ac00dSRyder Lee interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 59*376ac00dSRyder Lee <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 60*376ac00dSRyder Lee <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 61*376ac00dSRyder Lee <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 62*376ac00dSRyder Lee clock-frequency = <20000000>; 63*376ac00dSRyder Lee arm,cpu-registers-not-fw-configured; 64*376ac00dSRyder Lee }; 65*376ac00dSRyder Lee 66*376ac00dSRyder Lee infracfg: syscon@10000000 { 67*376ac00dSRyder Lee compatible = "mediatek,mt7629-infracfg", "syscon"; 68*376ac00dSRyder Lee reg = <0x10000000 0x1000>; 69*376ac00dSRyder Lee #clock-cells = <1>; 70*376ac00dSRyder Lee u-boot,dm-pre-reloc; 71*376ac00dSRyder Lee }; 72*376ac00dSRyder Lee 73*376ac00dSRyder Lee pericfg: syscon@10002000 { 74*376ac00dSRyder Lee compatible = "mediatek,mt7629-pericfg", "syscon"; 75*376ac00dSRyder Lee reg = <0x10002000 0x1000>; 76*376ac00dSRyder Lee #clock-cells = <1>; 77*376ac00dSRyder Lee u-boot,dm-pre-reloc; 78*376ac00dSRyder Lee }; 79*376ac00dSRyder Lee 80*376ac00dSRyder Lee timer0: timer@10004000 { 81*376ac00dSRyder Lee compatible = "mediatek,timer"; 82*376ac00dSRyder Lee reg = <0x10004000 0x80>; 83*376ac00dSRyder Lee interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_LOW>; 84*376ac00dSRyder Lee clocks = <&topckgen CLK_TOP_10M_SEL>, 85*376ac00dSRyder Lee <&topckgen CLK_TOP_CLKXTAL_D4>; 86*376ac00dSRyder Lee clock-names = "mux", "src"; 87*376ac00dSRyder Lee u-boot,dm-pre-reloc; 88*376ac00dSRyder Lee }; 89*376ac00dSRyder Lee 90*376ac00dSRyder Lee scpsys: scpsys@10006000 { 91*376ac00dSRyder Lee compatible = "mediatek,mt7629-scpsys"; 92*376ac00dSRyder Lee reg = <0x10006000 0x1000>; 93*376ac00dSRyder Lee clocks = <&topckgen CLK_TOP_HIF_SEL>; 94*376ac00dSRyder Lee clock-names = "hif_sel"; 95*376ac00dSRyder Lee assigned-clocks = <&topckgen CLK_TOP_HIF_SEL>; 96*376ac00dSRyder Lee assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL1_D2>; 97*376ac00dSRyder Lee #power-domain-cells = <1>; 98*376ac00dSRyder Lee infracfg = <&infracfg>; 99*376ac00dSRyder Lee }; 100*376ac00dSRyder Lee 101*376ac00dSRyder Lee mcucfg: syscon@10200000 { 102*376ac00dSRyder Lee compatible = "mediatek,mt7629-mcucfg", "syscon"; 103*376ac00dSRyder Lee reg = <0x10200000 0x1000>; 104*376ac00dSRyder Lee #clock-cells = <1>; 105*376ac00dSRyder Lee u-boot,dm-pre-reloc; 106*376ac00dSRyder Lee }; 107*376ac00dSRyder Lee 108*376ac00dSRyder Lee sysirq: interrupt-controller@10200a80 { 109*376ac00dSRyder Lee compatible = "mediatek,sysirq"; 110*376ac00dSRyder Lee reg = <0x10200a80 0x20>; 111*376ac00dSRyder Lee interrupt-controller; 112*376ac00dSRyder Lee #interrupt-cells = <3>; 113*376ac00dSRyder Lee interrupt-parent = <&gic>; 114*376ac00dSRyder Lee }; 115*376ac00dSRyder Lee 116*376ac00dSRyder Lee dramc: dramc@10203000 { 117*376ac00dSRyder Lee compatible = "mediatek,mt7629-dramc"; 118*376ac00dSRyder Lee reg = <0x10203000 0x600>, /* EMI */ 119*376ac00dSRyder Lee <0x10213000 0x1000>, /* DDRPHY */ 120*376ac00dSRyder Lee <0x10214000 0xd00>; /* DRAMC_AO */ 121*376ac00dSRyder Lee clocks = <&topckgen CLK_TOP_DDRPHYCFG_SEL>, 122*376ac00dSRyder Lee <&topckgen CLK_TOP_SYSPLL1_D8>, 123*376ac00dSRyder Lee <&topckgen CLK_TOP_MEM_SEL>, 124*376ac00dSRyder Lee <&topckgen CLK_TOP_DMPLL>; 125*376ac00dSRyder Lee clock-names = "phy", "phy_mux", "mem", "mem_mux"; 126*376ac00dSRyder Lee u-boot,dm-pre-reloc; 127*376ac00dSRyder Lee }; 128*376ac00dSRyder Lee 129*376ac00dSRyder Lee apmixedsys: clock-controller@10209000 { 130*376ac00dSRyder Lee compatible = "mediatek,mt7629-apmixedsys"; 131*376ac00dSRyder Lee reg = <0x10209000 0x1000>; 132*376ac00dSRyder Lee #clock-cells = <1>; 133*376ac00dSRyder Lee u-boot,dm-pre-reloc; 134*376ac00dSRyder Lee }; 135*376ac00dSRyder Lee 136*376ac00dSRyder Lee topckgen: clock-controller@10210000 { 137*376ac00dSRyder Lee compatible = "mediatek,mt7629-topckgen"; 138*376ac00dSRyder Lee reg = <0x10210000 0x1000>; 139*376ac00dSRyder Lee #clock-cells = <1>; 140*376ac00dSRyder Lee u-boot,dm-pre-reloc; 141*376ac00dSRyder Lee }; 142*376ac00dSRyder Lee 143*376ac00dSRyder Lee watchdog: watchdog@10212000 { 144*376ac00dSRyder Lee compatible = "mediatek,wdt"; 145*376ac00dSRyder Lee reg = <0x10212000 0x600>; 146*376ac00dSRyder Lee interrupts = <GIC_SPI 128 IRQ_TYPE_EDGE_FALLING>; 147*376ac00dSRyder Lee #reset-cells = <1>; 148*376ac00dSRyder Lee status = "disabled"; 149*376ac00dSRyder Lee }; 150*376ac00dSRyder Lee 151*376ac00dSRyder Lee wdt-reboot { 152*376ac00dSRyder Lee compatible = "wdt-reboot"; 153*376ac00dSRyder Lee wdt = <&watchdog>; 154*376ac00dSRyder Lee }; 155*376ac00dSRyder Lee 156*376ac00dSRyder Lee pinctrl: pinctrl@10217000 { 157*376ac00dSRyder Lee compatible = "mediatek,mt7629-pinctrl"; 158*376ac00dSRyder Lee reg = <0x10217000 0x8000>; 159*376ac00dSRyder Lee 160*376ac00dSRyder Lee gpio: gpio-controller { 161*376ac00dSRyder Lee gpio-controller; 162*376ac00dSRyder Lee #gpio-cells = <2>; 163*376ac00dSRyder Lee }; 164*376ac00dSRyder Lee }; 165*376ac00dSRyder Lee 166*376ac00dSRyder Lee gic: interrupt-controller@10300000 { 167*376ac00dSRyder Lee compatible = "arm,gic-400"; 168*376ac00dSRyder Lee interrupt-controller; 169*376ac00dSRyder Lee #interrupt-cells = <3>; 170*376ac00dSRyder Lee interrupt-parent = <&gic>; 171*376ac00dSRyder Lee reg = <0x10310000 0x1000>, 172*376ac00dSRyder Lee <0x10320000 0x1000>, 173*376ac00dSRyder Lee <0x10340000 0x2000>, 174*376ac00dSRyder Lee <0x10360000 0x2000>; 175*376ac00dSRyder Lee }; 176*376ac00dSRyder Lee 177*376ac00dSRyder Lee uart0: serial@11002000 { 178*376ac00dSRyder Lee compatible = "mediatek,hsuart"; 179*376ac00dSRyder Lee reg = <0x11002000 0x400>; 180*376ac00dSRyder Lee reg-shift = <2>; 181*376ac00dSRyder Lee interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>; 182*376ac00dSRyder Lee clocks = <&topckgen CLK_TOP_UART_SEL>, 183*376ac00dSRyder Lee <&pericfg CLK_PERI_UART0_PD>; 184*376ac00dSRyder Lee clock-names = "baud", "bus"; 185*376ac00dSRyder Lee status = "disabled"; 186*376ac00dSRyder Lee assigned-clocks = <&topckgen CLK_TOP_AXI_SEL>; 187*376ac00dSRyder Lee assigned-clock-parents = <&topckgen CLK_TOP_SYSPLL1_D2>; 188*376ac00dSRyder Lee u-boot,dm-pre-reloc; 189*376ac00dSRyder Lee }; 190*376ac00dSRyder Lee 191*376ac00dSRyder Lee uart1: serial@11003000 { 192*376ac00dSRyder Lee compatible = "mediatek,hsuart"; 193*376ac00dSRyder Lee reg = <0x11003000 0x400>; 194*376ac00dSRyder Lee reg-shift = <2>; 195*376ac00dSRyder Lee interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>; 196*376ac00dSRyder Lee clocks = <&topckgen CLK_TOP_UART_SEL>, 197*376ac00dSRyder Lee <&pericfg CLK_PERI_UART1_PD>; 198*376ac00dSRyder Lee clock-names = "baud", "bus"; 199*376ac00dSRyder Lee assigned-clocks = <&topckgen CLK_TOP_AXI_SEL>; 200*376ac00dSRyder Lee assigned-clock-parents = <&topckgen CLK_TOP_SYSPLL1_D2>; 201*376ac00dSRyder Lee status = "disabled"; 202*376ac00dSRyder Lee }; 203*376ac00dSRyder Lee 204*376ac00dSRyder Lee uart2: serial@11004000 { 205*376ac00dSRyder Lee compatible = "mediatek,hsuart"; 206*376ac00dSRyder Lee reg = <0x11004000 0x400>; 207*376ac00dSRyder Lee reg-shift = <2>; 208*376ac00dSRyder Lee interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>; 209*376ac00dSRyder Lee clocks = <&topckgen CLK_TOP_UART_SEL>, 210*376ac00dSRyder Lee <&pericfg CLK_PERI_UART2_PD>; 211*376ac00dSRyder Lee clock-names = "baud", "bus"; 212*376ac00dSRyder Lee assigned-clocks = <&topckgen CLK_TOP_AXI_SEL>; 213*376ac00dSRyder Lee assigned-clock-parents = <&topckgen CLK_TOP_SYSPLL1_D2>; 214*376ac00dSRyder Lee status = "disabled"; 215*376ac00dSRyder Lee }; 216*376ac00dSRyder Lee 217*376ac00dSRyder Lee qspi: qspi@11014000 { 218*376ac00dSRyder Lee compatible = "mediatek,mt7629-qspi"; 219*376ac00dSRyder Lee reg = <0x11014000 0xe0>, <0x30000000 0x10000000>; 220*376ac00dSRyder Lee reg-names = "reg_base", "mem_base"; 221*376ac00dSRyder Lee status = "disabled"; 222*376ac00dSRyder Lee #address-cells = <1>; 223*376ac00dSRyder Lee #size-cells = <0>; 224*376ac00dSRyder Lee u-boot,dm-pre-reloc; 225*376ac00dSRyder Lee }; 226*376ac00dSRyder Lee 227*376ac00dSRyder Lee ethsys: syscon@1b000000 { 228*376ac00dSRyder Lee compatible = "mediatek,mt7629-ethsys", "syscon"; 229*376ac00dSRyder Lee reg = <0x1b000000 0x1000>; 230*376ac00dSRyder Lee #clock-cells = <1>; 231*376ac00dSRyder Lee }; 232*376ac00dSRyder Lee 233*376ac00dSRyder Lee sgmiisys0: syscon@1b128000 { 234*376ac00dSRyder Lee compatible = "mediatek,mt7629-sgmiisys", "syscon"; 235*376ac00dSRyder Lee reg = <0x1b128000 0x1000>; 236*376ac00dSRyder Lee #clock-cells = <1>; 237*376ac00dSRyder Lee }; 238*376ac00dSRyder Lee 239*376ac00dSRyder Lee sgmiisys1: syscon@1b130000 { 240*376ac00dSRyder Lee compatible = "mediatek,mt7629-sgmiisys", "syscon"; 241*376ac00dSRyder Lee reg = <0x1b130000 0x1000>; 242*376ac00dSRyder Lee #clock-cells = <1>; 243*376ac00dSRyder Lee }; 244*376ac00dSRyder Lee}; 245