1376ac00dSRyder Lee/* 2376ac00dSRyder Lee * Copyright (C) 2018 MediaTek Inc. 3376ac00dSRyder Lee * Author: Ryder Lee <ryder.lee@mediatek.com> 4376ac00dSRyder Lee * 5376ac00dSRyder Lee * SPDX-License-Identifier: (GPL-2.0 OR MIT) 6376ac00dSRyder Lee */ 7376ac00dSRyder Lee 8376ac00dSRyder Lee#include <dt-bindings/clock/mt7629-clk.h> 9376ac00dSRyder Lee#include <dt-bindings/gpio/gpio.h> 10376ac00dSRyder Lee#include <dt-bindings/interrupt-controller/irq.h> 11376ac00dSRyder Lee#include <dt-bindings/interrupt-controller/arm-gic.h> 12376ac00dSRyder Lee#include <dt-bindings/power/mt7629-power.h> 13*9d42b613SWeijie Gao#include <dt-bindings/reset/mtk-reset.h> 14376ac00dSRyder Lee#include "skeleton.dtsi" 15376ac00dSRyder Lee 16376ac00dSRyder Lee/ { 17376ac00dSRyder Lee compatible = "mediatek,mt7629"; 18376ac00dSRyder Lee interrupt-parent = <&sysirq>; 19376ac00dSRyder Lee #address-cells = <1>; 20376ac00dSRyder Lee #size-cells = <1>; 21376ac00dSRyder Lee 22376ac00dSRyder Lee cpus { 23376ac00dSRyder Lee #address-cells = <1>; 24376ac00dSRyder Lee #size-cells = <0>; 25376ac00dSRyder Lee enable-method = "mediatek,mt6589-smp"; 26376ac00dSRyder Lee 27376ac00dSRyder Lee cpu@0 { 28376ac00dSRyder Lee device_type = "cpu"; 29376ac00dSRyder Lee compatible = "arm,cortex-a7"; 30376ac00dSRyder Lee reg = <0x0>; 31376ac00dSRyder Lee clock-frequency = <1250000000>; 32376ac00dSRyder Lee }; 33376ac00dSRyder Lee 34376ac00dSRyder Lee cpu@1 { 35376ac00dSRyder Lee device_type = "cpu"; 36376ac00dSRyder Lee compatible = "arm,cortex-a7"; 37376ac00dSRyder Lee reg = <0x1>; 38376ac00dSRyder Lee clock-frequency = <1250000000>; 39376ac00dSRyder Lee }; 40376ac00dSRyder Lee }; 41376ac00dSRyder Lee 42376ac00dSRyder Lee clk20m: oscillator@0 { 43376ac00dSRyder Lee compatible = "fixed-clock"; 44376ac00dSRyder Lee #clock-cells = <0>; 45376ac00dSRyder Lee clock-frequency = <20000000>; 46376ac00dSRyder Lee clock-output-names = "clk20m"; 47376ac00dSRyder Lee }; 48376ac00dSRyder Lee 49376ac00dSRyder Lee clk40m: oscillator@1 { 50376ac00dSRyder Lee compatible = "fixed-clock"; 51376ac00dSRyder Lee #clock-cells = <0>; 52376ac00dSRyder Lee clock-frequency = <40000000>; 53376ac00dSRyder Lee clock-output-names = "clkxtal"; 54376ac00dSRyder Lee }; 55376ac00dSRyder Lee 56376ac00dSRyder Lee timer { 57376ac00dSRyder Lee compatible = "arm,armv7-timer"; 58376ac00dSRyder Lee interrupt-parent = <&gic>; 59376ac00dSRyder Lee interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 60376ac00dSRyder Lee <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 61376ac00dSRyder Lee <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 62376ac00dSRyder Lee <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 63376ac00dSRyder Lee clock-frequency = <20000000>; 64376ac00dSRyder Lee arm,cpu-registers-not-fw-configured; 65376ac00dSRyder Lee }; 66376ac00dSRyder Lee 67376ac00dSRyder Lee infracfg: syscon@10000000 { 68376ac00dSRyder Lee compatible = "mediatek,mt7629-infracfg", "syscon"; 69376ac00dSRyder Lee reg = <0x10000000 0x1000>; 70376ac00dSRyder Lee #clock-cells = <1>; 71376ac00dSRyder Lee u-boot,dm-pre-reloc; 72376ac00dSRyder Lee }; 73376ac00dSRyder Lee 74376ac00dSRyder Lee pericfg: syscon@10002000 { 75376ac00dSRyder Lee compatible = "mediatek,mt7629-pericfg", "syscon"; 76376ac00dSRyder Lee reg = <0x10002000 0x1000>; 77376ac00dSRyder Lee #clock-cells = <1>; 78376ac00dSRyder Lee u-boot,dm-pre-reloc; 79376ac00dSRyder Lee }; 80376ac00dSRyder Lee 81376ac00dSRyder Lee timer0: timer@10004000 { 82376ac00dSRyder Lee compatible = "mediatek,timer"; 83376ac00dSRyder Lee reg = <0x10004000 0x80>; 84376ac00dSRyder Lee interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_LOW>; 85376ac00dSRyder Lee clocks = <&topckgen CLK_TOP_10M_SEL>, 86376ac00dSRyder Lee <&topckgen CLK_TOP_CLKXTAL_D4>; 87376ac00dSRyder Lee clock-names = "mux", "src"; 88376ac00dSRyder Lee u-boot,dm-pre-reloc; 89376ac00dSRyder Lee }; 90376ac00dSRyder Lee 91376ac00dSRyder Lee scpsys: scpsys@10006000 { 92376ac00dSRyder Lee compatible = "mediatek,mt7629-scpsys"; 93376ac00dSRyder Lee reg = <0x10006000 0x1000>; 94376ac00dSRyder Lee clocks = <&topckgen CLK_TOP_HIF_SEL>; 95376ac00dSRyder Lee clock-names = "hif_sel"; 96376ac00dSRyder Lee assigned-clocks = <&topckgen CLK_TOP_HIF_SEL>; 97376ac00dSRyder Lee assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL1_D2>; 98376ac00dSRyder Lee #power-domain-cells = <1>; 99376ac00dSRyder Lee infracfg = <&infracfg>; 100376ac00dSRyder Lee }; 101376ac00dSRyder Lee 102376ac00dSRyder Lee mcucfg: syscon@10200000 { 103376ac00dSRyder Lee compatible = "mediatek,mt7629-mcucfg", "syscon"; 104376ac00dSRyder Lee reg = <0x10200000 0x1000>; 105376ac00dSRyder Lee #clock-cells = <1>; 106376ac00dSRyder Lee u-boot,dm-pre-reloc; 107376ac00dSRyder Lee }; 108376ac00dSRyder Lee 109376ac00dSRyder Lee sysirq: interrupt-controller@10200a80 { 110376ac00dSRyder Lee compatible = "mediatek,sysirq"; 111376ac00dSRyder Lee reg = <0x10200a80 0x20>; 112376ac00dSRyder Lee interrupt-controller; 113376ac00dSRyder Lee #interrupt-cells = <3>; 114376ac00dSRyder Lee interrupt-parent = <&gic>; 115376ac00dSRyder Lee }; 116376ac00dSRyder Lee 117376ac00dSRyder Lee dramc: dramc@10203000 { 118376ac00dSRyder Lee compatible = "mediatek,mt7629-dramc"; 119376ac00dSRyder Lee reg = <0x10203000 0x600>, /* EMI */ 120376ac00dSRyder Lee <0x10213000 0x1000>, /* DDRPHY */ 121376ac00dSRyder Lee <0x10214000 0xd00>; /* DRAMC_AO */ 122376ac00dSRyder Lee clocks = <&topckgen CLK_TOP_DDRPHYCFG_SEL>, 123376ac00dSRyder Lee <&topckgen CLK_TOP_SYSPLL1_D8>, 124376ac00dSRyder Lee <&topckgen CLK_TOP_MEM_SEL>, 125376ac00dSRyder Lee <&topckgen CLK_TOP_DMPLL>; 126376ac00dSRyder Lee clock-names = "phy", "phy_mux", "mem", "mem_mux"; 127376ac00dSRyder Lee u-boot,dm-pre-reloc; 128376ac00dSRyder Lee }; 129376ac00dSRyder Lee 130376ac00dSRyder Lee apmixedsys: clock-controller@10209000 { 131376ac00dSRyder Lee compatible = "mediatek,mt7629-apmixedsys"; 132376ac00dSRyder Lee reg = <0x10209000 0x1000>; 133376ac00dSRyder Lee #clock-cells = <1>; 134376ac00dSRyder Lee u-boot,dm-pre-reloc; 135376ac00dSRyder Lee }; 136376ac00dSRyder Lee 137376ac00dSRyder Lee topckgen: clock-controller@10210000 { 138376ac00dSRyder Lee compatible = "mediatek,mt7629-topckgen"; 139376ac00dSRyder Lee reg = <0x10210000 0x1000>; 140376ac00dSRyder Lee #clock-cells = <1>; 141376ac00dSRyder Lee u-boot,dm-pre-reloc; 142376ac00dSRyder Lee }; 143376ac00dSRyder Lee 144376ac00dSRyder Lee watchdog: watchdog@10212000 { 145376ac00dSRyder Lee compatible = "mediatek,wdt"; 146376ac00dSRyder Lee reg = <0x10212000 0x600>; 147376ac00dSRyder Lee interrupts = <GIC_SPI 128 IRQ_TYPE_EDGE_FALLING>; 148376ac00dSRyder Lee #reset-cells = <1>; 149376ac00dSRyder Lee status = "disabled"; 150376ac00dSRyder Lee }; 151376ac00dSRyder Lee 152376ac00dSRyder Lee wdt-reboot { 153376ac00dSRyder Lee compatible = "wdt-reboot"; 154376ac00dSRyder Lee wdt = <&watchdog>; 155376ac00dSRyder Lee }; 156376ac00dSRyder Lee 157376ac00dSRyder Lee pinctrl: pinctrl@10217000 { 158376ac00dSRyder Lee compatible = "mediatek,mt7629-pinctrl"; 159376ac00dSRyder Lee reg = <0x10217000 0x8000>; 160376ac00dSRyder Lee 161376ac00dSRyder Lee gpio: gpio-controller { 162376ac00dSRyder Lee gpio-controller; 163376ac00dSRyder Lee #gpio-cells = <2>; 164376ac00dSRyder Lee }; 165376ac00dSRyder Lee }; 166376ac00dSRyder Lee 167376ac00dSRyder Lee gic: interrupt-controller@10300000 { 168376ac00dSRyder Lee compatible = "arm,gic-400"; 169376ac00dSRyder Lee interrupt-controller; 170376ac00dSRyder Lee #interrupt-cells = <3>; 171376ac00dSRyder Lee interrupt-parent = <&gic>; 172376ac00dSRyder Lee reg = <0x10310000 0x1000>, 173376ac00dSRyder Lee <0x10320000 0x1000>, 174376ac00dSRyder Lee <0x10340000 0x2000>, 175376ac00dSRyder Lee <0x10360000 0x2000>; 176376ac00dSRyder Lee }; 177376ac00dSRyder Lee 178376ac00dSRyder Lee uart0: serial@11002000 { 179376ac00dSRyder Lee compatible = "mediatek,hsuart"; 180376ac00dSRyder Lee reg = <0x11002000 0x400>; 181376ac00dSRyder Lee reg-shift = <2>; 182376ac00dSRyder Lee interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>; 183376ac00dSRyder Lee clocks = <&topckgen CLK_TOP_UART_SEL>, 184376ac00dSRyder Lee <&pericfg CLK_PERI_UART0_PD>; 185376ac00dSRyder Lee clock-names = "baud", "bus"; 186376ac00dSRyder Lee status = "disabled"; 187376ac00dSRyder Lee assigned-clocks = <&topckgen CLK_TOP_AXI_SEL>; 188376ac00dSRyder Lee assigned-clock-parents = <&topckgen CLK_TOP_SYSPLL1_D2>; 189376ac00dSRyder Lee u-boot,dm-pre-reloc; 190376ac00dSRyder Lee }; 191376ac00dSRyder Lee 192376ac00dSRyder Lee uart1: serial@11003000 { 193376ac00dSRyder Lee compatible = "mediatek,hsuart"; 194376ac00dSRyder Lee reg = <0x11003000 0x400>; 195376ac00dSRyder Lee reg-shift = <2>; 196376ac00dSRyder Lee interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>; 197376ac00dSRyder Lee clocks = <&topckgen CLK_TOP_UART_SEL>, 198376ac00dSRyder Lee <&pericfg CLK_PERI_UART1_PD>; 199376ac00dSRyder Lee clock-names = "baud", "bus"; 200376ac00dSRyder Lee assigned-clocks = <&topckgen CLK_TOP_AXI_SEL>; 201376ac00dSRyder Lee assigned-clock-parents = <&topckgen CLK_TOP_SYSPLL1_D2>; 202376ac00dSRyder Lee status = "disabled"; 203376ac00dSRyder Lee }; 204376ac00dSRyder Lee 205376ac00dSRyder Lee uart2: serial@11004000 { 206376ac00dSRyder Lee compatible = "mediatek,hsuart"; 207376ac00dSRyder Lee reg = <0x11004000 0x400>; 208376ac00dSRyder Lee reg-shift = <2>; 209376ac00dSRyder Lee interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>; 210376ac00dSRyder Lee clocks = <&topckgen CLK_TOP_UART_SEL>, 211376ac00dSRyder Lee <&pericfg CLK_PERI_UART2_PD>; 212376ac00dSRyder Lee clock-names = "baud", "bus"; 213376ac00dSRyder Lee assigned-clocks = <&topckgen CLK_TOP_AXI_SEL>; 214376ac00dSRyder Lee assigned-clock-parents = <&topckgen CLK_TOP_SYSPLL1_D2>; 215376ac00dSRyder Lee status = "disabled"; 216376ac00dSRyder Lee }; 217376ac00dSRyder Lee 218376ac00dSRyder Lee qspi: qspi@11014000 { 219376ac00dSRyder Lee compatible = "mediatek,mt7629-qspi"; 220376ac00dSRyder Lee reg = <0x11014000 0xe0>, <0x30000000 0x10000000>; 221376ac00dSRyder Lee reg-names = "reg_base", "mem_base"; 222376ac00dSRyder Lee status = "disabled"; 223376ac00dSRyder Lee #address-cells = <1>; 224376ac00dSRyder Lee #size-cells = <0>; 225376ac00dSRyder Lee u-boot,dm-pre-reloc; 226376ac00dSRyder Lee }; 227376ac00dSRyder Lee 228376ac00dSRyder Lee ethsys: syscon@1b000000 { 229376ac00dSRyder Lee compatible = "mediatek,mt7629-ethsys", "syscon"; 230376ac00dSRyder Lee reg = <0x1b000000 0x1000>; 231376ac00dSRyder Lee #clock-cells = <1>; 232*9d42b613SWeijie Gao #reset-cells = <1>; 233*9d42b613SWeijie Gao }; 234*9d42b613SWeijie Gao 235*9d42b613SWeijie Gao eth: ethernet@1b100000 { 236*9d42b613SWeijie Gao compatible = "mediatek,mt7629-eth", "syscon"; 237*9d42b613SWeijie Gao reg = <0x1b100000 0x20000>; 238*9d42b613SWeijie Gao clocks = <&topckgen CLK_TOP_ETH_SEL>, 239*9d42b613SWeijie Gao <&topckgen CLK_TOP_F10M_REF_SEL>, 240*9d42b613SWeijie Gao <ðsys CLK_ETH_ESW_EN>, 241*9d42b613SWeijie Gao <ðsys CLK_ETH_GP0_EN>, 242*9d42b613SWeijie Gao <ðsys CLK_ETH_GP1_EN>, 243*9d42b613SWeijie Gao <ðsys CLK_ETH_GP2_EN>, 244*9d42b613SWeijie Gao <ðsys CLK_ETH_FE_EN>, 245*9d42b613SWeijie Gao <&sgmiisys0 CLK_SGMII_TX_EN>, 246*9d42b613SWeijie Gao <&sgmiisys0 CLK_SGMII_RX_EN>, 247*9d42b613SWeijie Gao <&sgmiisys0 CLK_SGMII_CDR_REF>, 248*9d42b613SWeijie Gao <&sgmiisys0 CLK_SGMII_CDR_FB>, 249*9d42b613SWeijie Gao <&sgmiisys1 CLK_SGMII_TX_EN>, 250*9d42b613SWeijie Gao <&sgmiisys1 CLK_SGMII_RX_EN>, 251*9d42b613SWeijie Gao <&sgmiisys1 CLK_SGMII_CDR_REF>, 252*9d42b613SWeijie Gao <&sgmiisys1 CLK_SGMII_CDR_FB>, 253*9d42b613SWeijie Gao <&apmixedsys CLK_APMIXED_SGMIPLL>, 254*9d42b613SWeijie Gao <&apmixedsys CLK_APMIXED_ETH2PLL>; 255*9d42b613SWeijie Gao clock-names = "ethif", "sgmiitop", "esw", "gp0", "gp1", "gp2", 256*9d42b613SWeijie Gao "fe", "sgmii_tx250m", "sgmii_rx250m", 257*9d42b613SWeijie Gao "sgmii_cdr_ref", "sgmii_cdr_fb", 258*9d42b613SWeijie Gao "sgmii2_tx250m", "sgmii2_rx250m", 259*9d42b613SWeijie Gao "sgmii2_cdr_ref", "sgmii2_cdr_fb", 260*9d42b613SWeijie Gao "sgmii_ck", "eth2pll"; 261*9d42b613SWeijie Gao assigned-clocks = <&topckgen CLK_TOP_ETH_SEL>, 262*9d42b613SWeijie Gao <&topckgen CLK_TOP_F10M_REF_SEL>; 263*9d42b613SWeijie Gao assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL1_D2>, 264*9d42b613SWeijie Gao <&topckgen CLK_TOP_SGMIIPLL_D2>; 265*9d42b613SWeijie Gao power-domains = <&scpsys MT7629_POWER_DOMAIN_ETHSYS>; 266*9d42b613SWeijie Gao resets = <ðsys ETHSYS_FE_RST>; 267*9d42b613SWeijie Gao reset-names = "fe"; 268*9d42b613SWeijie Gao mediatek,ethsys = <ðsys>; 269*9d42b613SWeijie Gao mediatek,sgmiisys = <&sgmiisys0>; 270*9d42b613SWeijie Gao mediatek,infracfg = <&infracfg>; 271*9d42b613SWeijie Gao #address-cells = <1>; 272*9d42b613SWeijie Gao #size-cells = <0>; 273*9d42b613SWeijie Gao status = "disabled"; 274376ac00dSRyder Lee }; 275376ac00dSRyder Lee 276376ac00dSRyder Lee sgmiisys0: syscon@1b128000 { 277376ac00dSRyder Lee compatible = "mediatek,mt7629-sgmiisys", "syscon"; 278376ac00dSRyder Lee reg = <0x1b128000 0x1000>; 279376ac00dSRyder Lee #clock-cells = <1>; 280376ac00dSRyder Lee }; 281376ac00dSRyder Lee 282376ac00dSRyder Lee sgmiisys1: syscon@1b130000 { 283376ac00dSRyder Lee compatible = "mediatek,mt7629-sgmiisys", "syscon"; 284376ac00dSRyder Lee reg = <0x1b130000 0x1000>; 285376ac00dSRyder Lee #clock-cells = <1>; 286376ac00dSRyder Lee }; 287376ac00dSRyder Lee}; 288