1d84982dbSRyder Lee/* 2d84982dbSRyder Lee * Copyright (C) 2018 MediaTek Inc. 3d84982dbSRyder Lee * Author: Ryder Lee <ryder.lee@mediatek.com> 4d84982dbSRyder Lee * 5d84982dbSRyder Lee * SPDX-License-Identifier: (GPL-2.0 OR MIT) 6d84982dbSRyder Lee */ 7d84982dbSRyder Lee 8d84982dbSRyder Lee#include <dt-bindings/clock/mt7623-clk.h> 9d84982dbSRyder Lee#include <dt-bindings/gpio/gpio.h> 10d84982dbSRyder Lee#include <dt-bindings/interrupt-controller/irq.h> 11d84982dbSRyder Lee#include <dt-bindings/interrupt-controller/arm-gic.h> 12d84982dbSRyder Lee#include <dt-bindings/power/mt7623-power.h> 13*d9506a6fSWeijie Gao#include <dt-bindings/reset/mtk-reset.h> 14d84982dbSRyder Lee#include "skeleton.dtsi" 15d84982dbSRyder Lee 16d84982dbSRyder Lee/ { 17d84982dbSRyder Lee compatible = "mediatek,mt7623"; 18d84982dbSRyder Lee interrupt-parent = <&sysirq>; 19d84982dbSRyder Lee #address-cells = <1>; 20d84982dbSRyder Lee #size-cells = <1>; 21d84982dbSRyder Lee 22d84982dbSRyder Lee cpus { 23d84982dbSRyder Lee #address-cells = <1>; 24d84982dbSRyder Lee #size-cells = <0>; 25d84982dbSRyder Lee enable-method = "mediatek,mt6589-smp"; 26d84982dbSRyder Lee 27d84982dbSRyder Lee cpu0: cpu@0 { 28d84982dbSRyder Lee device_type = "cpu"; 29d84982dbSRyder Lee compatible = "arm,cortex-a7"; 30d84982dbSRyder Lee reg = <0x0>; 31d84982dbSRyder Lee clocks = <&infracfg CLK_INFRA_CPUSEL>, 32d84982dbSRyder Lee <&apmixedsys CLK_APMIXED_MAINPLL>; 33d84982dbSRyder Lee clock-names = "cpu", "intermediate"; 34d84982dbSRyder Lee clock-frequency = <1300000000>; 35d84982dbSRyder Lee }; 36d84982dbSRyder Lee 37d84982dbSRyder Lee cpu1: cpu@1 { 38d84982dbSRyder Lee device_type = "cpu"; 39d84982dbSRyder Lee compatible = "arm,cortex-a7"; 40d84982dbSRyder Lee reg = <0x1>; 41d84982dbSRyder Lee clocks = <&infracfg CLK_INFRA_CPUSEL>, 42d84982dbSRyder Lee <&apmixedsys CLK_APMIXED_MAINPLL>; 43d84982dbSRyder Lee clock-names = "cpu", "intermediate"; 44d84982dbSRyder Lee clock-frequency = <1300000000>; 45d84982dbSRyder Lee }; 46d84982dbSRyder Lee 47d84982dbSRyder Lee cpu2: cpu@2 { 48d84982dbSRyder Lee device_type = "cpu"; 49d84982dbSRyder Lee compatible = "arm,cortex-a7"; 50d84982dbSRyder Lee reg = <0x2>; 51d84982dbSRyder Lee clocks = <&infracfg CLK_INFRA_CPUSEL>, 52d84982dbSRyder Lee <&apmixedsys CLK_APMIXED_MAINPLL>; 53d84982dbSRyder Lee clock-names = "cpu", "intermediate"; 54d84982dbSRyder Lee clock-frequency = <1300000000>; 55d84982dbSRyder Lee }; 56d84982dbSRyder Lee 57d84982dbSRyder Lee cpu3: cpu@3 { 58d84982dbSRyder Lee device_type = "cpu"; 59d84982dbSRyder Lee compatible = "arm,cortex-a7"; 60d84982dbSRyder Lee reg = <0x3>; 61d84982dbSRyder Lee clocks = <&infracfg CLK_INFRA_CPUSEL>, 62d84982dbSRyder Lee <&apmixedsys CLK_APMIXED_MAINPLL>; 63d84982dbSRyder Lee clock-names = "cpu", "intermediate"; 64d84982dbSRyder Lee clock-frequency = <1300000000>; 65d84982dbSRyder Lee }; 66d84982dbSRyder Lee }; 67d84982dbSRyder Lee 68d84982dbSRyder Lee system_clk: dummy13m { 69d84982dbSRyder Lee compatible = "fixed-clock"; 70d84982dbSRyder Lee clock-frequency = <13000000>; 71d84982dbSRyder Lee #clock-cells = <0>; 72d84982dbSRyder Lee }; 73d84982dbSRyder Lee 74d84982dbSRyder Lee rtc32k: oscillator-1 { 75d84982dbSRyder Lee compatible = "fixed-clock"; 76d84982dbSRyder Lee #clock-cells = <0>; 77d84982dbSRyder Lee clock-frequency = <32000>; 78d84982dbSRyder Lee clock-output-names = "rtc32k"; 79d84982dbSRyder Lee }; 80d84982dbSRyder Lee 81d84982dbSRyder Lee clk26m: oscillator-0 { 82d84982dbSRyder Lee compatible = "fixed-clock"; 83d84982dbSRyder Lee #clock-cells = <0>; 84d84982dbSRyder Lee clock-frequency = <26000000>; 85d84982dbSRyder Lee clock-output-names = "clk26m"; 86d84982dbSRyder Lee }; 87d84982dbSRyder Lee 88d84982dbSRyder Lee timer { 89d84982dbSRyder Lee compatible = "arm,armv7-timer"; 90d84982dbSRyder Lee interrupt-parent = <&gic>; 91d84982dbSRyder Lee interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 92d84982dbSRyder Lee <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 93d84982dbSRyder Lee <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 94d84982dbSRyder Lee <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 95d84982dbSRyder Lee clock-frequency = <13000000>; 96d84982dbSRyder Lee arm,cpu-registers-not-fw-configured; 97d84982dbSRyder Lee }; 98d84982dbSRyder Lee 99d84982dbSRyder Lee topckgen: clock-controller@10000000 { 100d84982dbSRyder Lee compatible = "mediatek,mt7623-topckgen"; 101d84982dbSRyder Lee reg = <0x10000000 0x1000>; 102d84982dbSRyder Lee #clock-cells = <1>; 103d84982dbSRyder Lee u-boot,dm-pre-reloc; 104d84982dbSRyder Lee }; 105d84982dbSRyder Lee 106d84982dbSRyder Lee infracfg: syscon@10001000 { 107d84982dbSRyder Lee compatible = "mediatek,mt7623-infracfg", "syscon"; 108d84982dbSRyder Lee reg = <0x10001000 0x1000>; 109d84982dbSRyder Lee #clock-cells = <1>; 110d84982dbSRyder Lee u-boot,dm-pre-reloc; 111d84982dbSRyder Lee }; 112d84982dbSRyder Lee 113d84982dbSRyder Lee pericfg: syscon@10003000 { 114d84982dbSRyder Lee compatible = "mediatek,mt7623-pericfg", "syscon"; 115d84982dbSRyder Lee reg = <0x10003000 0x1000>; 116d84982dbSRyder Lee #clock-cells = <1>; 117d84982dbSRyder Lee u-boot,dm-pre-reloc; 118d84982dbSRyder Lee }; 119d84982dbSRyder Lee 120d84982dbSRyder Lee pinctrl: pinctrl@10005000 { 121d84982dbSRyder Lee compatible = "mediatek,mt7623-pinctrl"; 122d84982dbSRyder Lee reg = <0x10005000 0x1000>; 123d84982dbSRyder Lee 124d84982dbSRyder Lee gpio: gpio-controller { 125d84982dbSRyder Lee gpio-controller; 126d84982dbSRyder Lee #gpio-cells = <2>; 127d84982dbSRyder Lee }; 128d84982dbSRyder Lee }; 129d84982dbSRyder Lee 130d84982dbSRyder Lee scpsys: scpsys@10006000 { 131d84982dbSRyder Lee compatible = "mediatek,mt7623-scpsys"; 132d84982dbSRyder Lee #power-domain-cells = <1>; 133d84982dbSRyder Lee reg = <0x10006000 0x1000>; 134d84982dbSRyder Lee infracfg = <&infracfg>; 135d84982dbSRyder Lee clocks = <&topckgen CLK_TOP_MM_SEL>, 136d84982dbSRyder Lee <&topckgen CLK_TOP_MFG_SEL>, 137d84982dbSRyder Lee <&topckgen CLK_TOP_ETHIF_SEL>; 138d84982dbSRyder Lee clock-names = "mm", "mfg", "ethif"; 139d84982dbSRyder Lee }; 140d84982dbSRyder Lee 141d84982dbSRyder Lee watchdog: watchdog@10007000 { 142d84982dbSRyder Lee compatible = "mediatek,wdt"; 143d84982dbSRyder Lee reg = <0x10007000 0x100>; 144d84982dbSRyder Lee }; 145d84982dbSRyder Lee 146d84982dbSRyder Lee wdt-reboot { 147d84982dbSRyder Lee compatible = "wdt-reboot"; 148d84982dbSRyder Lee wdt = <&watchdog>; 149d84982dbSRyder Lee }; 150d84982dbSRyder Lee 151d84982dbSRyder Lee timer0: timer@10008000 { 152d84982dbSRyder Lee compatible = "mediatek,timer"; 153d84982dbSRyder Lee reg = <0x10008000 0x80>; 154d84982dbSRyder Lee interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_LOW>; 155d84982dbSRyder Lee clocks = <&system_clk>; 156d84982dbSRyder Lee clock-names = "system-clk"; 157d84982dbSRyder Lee u-boot,dm-pre-reloc; 158d84982dbSRyder Lee }; 159d84982dbSRyder Lee 160d84982dbSRyder Lee sysirq: interrupt-controller@10200100 { 161d84982dbSRyder Lee compatible = "mediatek,sysirq"; 162d84982dbSRyder Lee interrupt-controller; 163d84982dbSRyder Lee #interrupt-cells = <3>; 164d84982dbSRyder Lee interrupt-parent = <&gic>; 165d84982dbSRyder Lee reg = <0x10200100 0x1c>; 166d84982dbSRyder Lee }; 167d84982dbSRyder Lee 168d84982dbSRyder Lee apmixedsys: clock-controller@10209000 { 169d84982dbSRyder Lee compatible = "mediatek,mt7623-apmixedsys"; 170d84982dbSRyder Lee reg = <0x10209000 0x1000>; 171d84982dbSRyder Lee #clock-cells = <1>; 172d84982dbSRyder Lee u-boot,dm-pre-reloc; 173d84982dbSRyder Lee }; 174d84982dbSRyder Lee 175d84982dbSRyder Lee gic: interrupt-controller@10211000 { 176d84982dbSRyder Lee compatible = "arm,cortex-a7-gic"; 177d84982dbSRyder Lee interrupt-controller; 178d84982dbSRyder Lee #interrupt-cells = <3>; 179d84982dbSRyder Lee interrupt-parent = <&gic>; 180d84982dbSRyder Lee reg = <0x10211000 0x1000>, 181d84982dbSRyder Lee <0x10212000 0x1000>, 182d84982dbSRyder Lee <0x10214000 0x2000>, 183d84982dbSRyder Lee <0x10216000 0x2000>; 184d84982dbSRyder Lee }; 185d84982dbSRyder Lee 186d84982dbSRyder Lee uart0: serial@11002000 { 187d84982dbSRyder Lee compatible = "mediatek,hsuart"; 188d84982dbSRyder Lee reg = <0x11002000 0x400>; 189d84982dbSRyder Lee reg-shift = <2>; 190d84982dbSRyder Lee interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>; 191d84982dbSRyder Lee clocks = <&topckgen CLK_TOP_UART_SEL>, 192d84982dbSRyder Lee <&pericfg CLK_PERI_UART0>; 193d84982dbSRyder Lee clock-names = "baud", "bus"; 194d84982dbSRyder Lee status = "disabled"; 195d84982dbSRyder Lee }; 196d84982dbSRyder Lee 197d84982dbSRyder Lee uart1: serial@11003000 { 198d84982dbSRyder Lee compatible = "mediatek,hsuart"; 199d84982dbSRyder Lee reg = <0x11003000 0x400>; 200d84982dbSRyder Lee reg-shift = <2>; 201d84982dbSRyder Lee interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>; 202d84982dbSRyder Lee clocks = <&topckgen CLK_TOP_UART_SEL>, 203d84982dbSRyder Lee <&pericfg CLK_PERI_UART1>; 204d84982dbSRyder Lee clock-names = "baud", "bus"; 205d84982dbSRyder Lee status = "disabled"; 206d84982dbSRyder Lee }; 207d84982dbSRyder Lee 208d84982dbSRyder Lee uart2: serial@11004000 { 209d84982dbSRyder Lee compatible = "mediatek,hsuart"; 210d84982dbSRyder Lee reg = <0x11004000 0x400>; 211d84982dbSRyder Lee reg-shift = <2>; 212d84982dbSRyder Lee interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>; 213d84982dbSRyder Lee clocks = <&topckgen CLK_TOP_UART_SEL>, 214d84982dbSRyder Lee <&pericfg CLK_PERI_UART2>; 215d84982dbSRyder Lee clock-names = "baud", "bus"; 216d84982dbSRyder Lee status = "disabled"; 217d84982dbSRyder Lee u-boot,dm-pre-reloc; 218d84982dbSRyder Lee }; 219d84982dbSRyder Lee 220d84982dbSRyder Lee uart3: serial@11005000 { 221d84982dbSRyder Lee compatible = "mediatek,hsuart"; 222d84982dbSRyder Lee reg = <0x11005000 0x400>; 223d84982dbSRyder Lee reg-shift = <2>; 224d84982dbSRyder Lee interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>; 225d84982dbSRyder Lee clocks = <&topckgen CLK_TOP_UART_SEL>, 226d84982dbSRyder Lee <&pericfg CLK_PERI_UART3>; 227d84982dbSRyder Lee clock-names = "baud", "bus"; 228d84982dbSRyder Lee status = "disabled"; 229d84982dbSRyder Lee }; 230d84982dbSRyder Lee 231d84982dbSRyder Lee mmc0: mmc@11230000 { 232d84982dbSRyder Lee compatible = "mediatek,mt7623-mmc"; 233d84982dbSRyder Lee reg = <0x11230000 0x1000>; 234d84982dbSRyder Lee interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_LOW>; 235d84982dbSRyder Lee clocks = <&pericfg CLK_PERI_MSDC30_0>, 236d84982dbSRyder Lee <&topckgen CLK_TOP_MSDC30_0_SEL>; 237d84982dbSRyder Lee clock-names = "source", "hclk"; 238d84982dbSRyder Lee status = "disabled"; 239d84982dbSRyder Lee }; 240d84982dbSRyder Lee 241d84982dbSRyder Lee mmc1: mmc@11240000 { 242d84982dbSRyder Lee compatible = "mediatek,mt7623-mmc"; 243d84982dbSRyder Lee reg = <0x11240000 0x1000>; 244d84982dbSRyder Lee interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_LOW>; 245d84982dbSRyder Lee clocks = <&pericfg CLK_PERI_MSDC30_1>, 246d84982dbSRyder Lee <&topckgen CLK_TOP_MSDC30_1_SEL>; 247d84982dbSRyder Lee clock-names = "source", "hclk"; 248d84982dbSRyder Lee status = "disabled"; 249d84982dbSRyder Lee }; 250d84982dbSRyder Lee 251d84982dbSRyder Lee ethsys: syscon@1b000000 { 252*d9506a6fSWeijie Gao compatible = "mediatek,mt7623-ethsys", "syscon"; 253d84982dbSRyder Lee reg = <0x1b000000 0x1000>; 254d84982dbSRyder Lee #clock-cells = <1>; 255*d9506a6fSWeijie Gao #reset-cells = <1>; 256*d9506a6fSWeijie Gao }; 257*d9506a6fSWeijie Gao 258*d9506a6fSWeijie Gao eth: ethernet@1b100000 { 259*d9506a6fSWeijie Gao compatible = "mediatek,mt7623-eth", "syscon"; 260*d9506a6fSWeijie Gao reg = <0x1b100000 0x20000>; 261*d9506a6fSWeijie Gao clocks = <&topckgen CLK_TOP_ETHIF_SEL>, 262*d9506a6fSWeijie Gao <ðsys CLK_ETHSYS_ESW>, 263*d9506a6fSWeijie Gao <ðsys CLK_ETHSYS_GP1>, 264*d9506a6fSWeijie Gao <ðsys CLK_ETHSYS_GP2>, 265*d9506a6fSWeijie Gao <&apmixedsys CLK_APMIXED_TRGPLL>; 266*d9506a6fSWeijie Gao clock-names = "ethif", "esw", "gp1", "gp2", "trgpll"; 267*d9506a6fSWeijie Gao power-domains = <&scpsys MT7623_POWER_DOMAIN_ETH>; 268*d9506a6fSWeijie Gao resets = <ðsys ETHSYS_FE_RST>, 269*d9506a6fSWeijie Gao <ðsys ETHSYS_MCM_RST>; 270*d9506a6fSWeijie Gao reset-names = "fe", "mcm"; 271*d9506a6fSWeijie Gao mediatek,ethsys = <ðsys>; 272*d9506a6fSWeijie Gao status = "disabled"; 273d84982dbSRyder Lee }; 274d84982dbSRyder Lee}; 275