101950c46SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only OR MIT 201950c46SEmmanuel Vadot 301950c46SEmmanuel Vadot#include <dt-bindings/clock/mediatek,mt7981-clk.h> 401950c46SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h> 5*0e8011faSEmmanuel Vadot#include <dt-bindings/reset/mt7986-resets.h> 601950c46SEmmanuel Vadot 701950c46SEmmanuel Vadot/ { 801950c46SEmmanuel Vadot compatible = "mediatek,mt7981b"; 901950c46SEmmanuel Vadot interrupt-parent = <&gic>; 1001950c46SEmmanuel Vadot #address-cells = <2>; 1101950c46SEmmanuel Vadot #size-cells = <2>; 1201950c46SEmmanuel Vadot 1301950c46SEmmanuel Vadot cpus { 1401950c46SEmmanuel Vadot #address-cells = <1>; 1501950c46SEmmanuel Vadot #size-cells = <0>; 1601950c46SEmmanuel Vadot 1701950c46SEmmanuel Vadot cpu@0 { 1801950c46SEmmanuel Vadot compatible = "arm,cortex-a53"; 1901950c46SEmmanuel Vadot reg = <0x0>; 2001950c46SEmmanuel Vadot device_type = "cpu"; 2101950c46SEmmanuel Vadot enable-method = "psci"; 2201950c46SEmmanuel Vadot }; 2301950c46SEmmanuel Vadot 2401950c46SEmmanuel Vadot cpu@1 { 2501950c46SEmmanuel Vadot compatible = "arm,cortex-a53"; 2601950c46SEmmanuel Vadot reg = <0x1>; 2701950c46SEmmanuel Vadot device_type = "cpu"; 2801950c46SEmmanuel Vadot enable-method = "psci"; 2901950c46SEmmanuel Vadot }; 3001950c46SEmmanuel Vadot }; 3101950c46SEmmanuel Vadot 3201950c46SEmmanuel Vadot oscillator-40m { 3301950c46SEmmanuel Vadot compatible = "fixed-clock"; 3401950c46SEmmanuel Vadot clock-frequency = <40000000>; 3501950c46SEmmanuel Vadot clock-output-names = "clkxtal"; 3601950c46SEmmanuel Vadot #clock-cells = <0>; 3701950c46SEmmanuel Vadot }; 3801950c46SEmmanuel Vadot 3901950c46SEmmanuel Vadot psci { 4001950c46SEmmanuel Vadot compatible = "arm,psci-1.0"; 4101950c46SEmmanuel Vadot method = "smc"; 4201950c46SEmmanuel Vadot }; 4301950c46SEmmanuel Vadot 4401950c46SEmmanuel Vadot soc { 4501950c46SEmmanuel Vadot compatible = "simple-bus"; 4601950c46SEmmanuel Vadot ranges; 4701950c46SEmmanuel Vadot #address-cells = <2>; 4801950c46SEmmanuel Vadot #size-cells = <2>; 4901950c46SEmmanuel Vadot 5001950c46SEmmanuel Vadot gic: interrupt-controller@c000000 { 5101950c46SEmmanuel Vadot compatible = "arm,gic-v3"; 5201950c46SEmmanuel Vadot reg = <0 0x0c000000 0 0x40000>, /* GICD */ 5301950c46SEmmanuel Vadot <0 0x0c080000 0 0x200000>; /* GICR */ 5401950c46SEmmanuel Vadot interrupt-parent = <&gic>; 5501950c46SEmmanuel Vadot interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 5601950c46SEmmanuel Vadot interrupt-controller; 5701950c46SEmmanuel Vadot #interrupt-cells = <3>; 5801950c46SEmmanuel Vadot }; 5901950c46SEmmanuel Vadot 6001950c46SEmmanuel Vadot infracfg: clock-controller@10001000 { 6101950c46SEmmanuel Vadot compatible = "mediatek,mt7981-infracfg", "syscon"; 6201950c46SEmmanuel Vadot reg = <0 0x10001000 0 0x1000>; 6301950c46SEmmanuel Vadot #clock-cells = <1>; 6401950c46SEmmanuel Vadot }; 6501950c46SEmmanuel Vadot 66*0e8011faSEmmanuel Vadot topckgen: clock-controller@1001b000 { 6701950c46SEmmanuel Vadot compatible = "mediatek,mt7981-topckgen", "syscon"; 6801950c46SEmmanuel Vadot reg = <0 0x1001b000 0 0x1000>; 6901950c46SEmmanuel Vadot #clock-cells = <1>; 7001950c46SEmmanuel Vadot }; 7101950c46SEmmanuel Vadot 72*0e8011faSEmmanuel Vadot watchdog: watchdog@1001c000 { 73*0e8011faSEmmanuel Vadot compatible = "mediatek,mt7986-wdt"; 74*0e8011faSEmmanuel Vadot reg = <0 0x1001c000 0 0x1000>; 75*0e8011faSEmmanuel Vadot interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 76*0e8011faSEmmanuel Vadot #reset-cells = <1>; 77*0e8011faSEmmanuel Vadot }; 78*0e8011faSEmmanuel Vadot 7901950c46SEmmanuel Vadot clock-controller@1001e000 { 8001950c46SEmmanuel Vadot compatible = "mediatek,mt7981-apmixedsys"; 8101950c46SEmmanuel Vadot reg = <0 0x1001e000 0 0x1000>; 8201950c46SEmmanuel Vadot #clock-cells = <1>; 8301950c46SEmmanuel Vadot }; 8401950c46SEmmanuel Vadot 8501950c46SEmmanuel Vadot pwm@10048000 { 8601950c46SEmmanuel Vadot compatible = "mediatek,mt7981-pwm"; 8701950c46SEmmanuel Vadot reg = <0 0x10048000 0 0x1000>; 8801950c46SEmmanuel Vadot clocks = <&infracfg CLK_INFRA_PWM_STA>, 8901950c46SEmmanuel Vadot <&infracfg CLK_INFRA_PWM_HCK>, 9001950c46SEmmanuel Vadot <&infracfg CLK_INFRA_PWM1_CK>, 9101950c46SEmmanuel Vadot <&infracfg CLK_INFRA_PWM2_CK>, 9201950c46SEmmanuel Vadot <&infracfg CLK_INFRA_PWM3_CK>; 9301950c46SEmmanuel Vadot clock-names = "top", "main", "pwm1", "pwm2", "pwm3"; 9401950c46SEmmanuel Vadot #pwm-cells = <2>; 9501950c46SEmmanuel Vadot }; 9601950c46SEmmanuel Vadot 97*0e8011faSEmmanuel Vadot i2c@11007000 { 98*0e8011faSEmmanuel Vadot compatible = "mediatek,mt7981-i2c"; 99*0e8011faSEmmanuel Vadot reg = <0 0x11007000 0 0x1000>, 100*0e8011faSEmmanuel Vadot <0 0x10217080 0 0x80>; 101*0e8011faSEmmanuel Vadot interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>; 102*0e8011faSEmmanuel Vadot clocks = <&infracfg CLK_INFRA_I2C0_CK>, 103*0e8011faSEmmanuel Vadot <&infracfg CLK_INFRA_AP_DMA_CK>, 104*0e8011faSEmmanuel Vadot <&infracfg CLK_INFRA_I2C_MCK_CK>, 105*0e8011faSEmmanuel Vadot <&infracfg CLK_INFRA_I2C_PCK_CK>; 106*0e8011faSEmmanuel Vadot clock-names = "main", "dma", "arb", "pmic"; 107*0e8011faSEmmanuel Vadot #address-cells = <1>; 108*0e8011faSEmmanuel Vadot #size-cells = <0>; 109*0e8011faSEmmanuel Vadot status = "disabled"; 110*0e8011faSEmmanuel Vadot }; 111*0e8011faSEmmanuel Vadot 112*0e8011faSEmmanuel Vadot pio: pinctrl@11d00000 { 113*0e8011faSEmmanuel Vadot compatible = "mediatek,mt7981-pinctrl"; 114*0e8011faSEmmanuel Vadot reg = <0 0x11d00000 0 0x1000>, 115*0e8011faSEmmanuel Vadot <0 0x11c00000 0 0x1000>, 116*0e8011faSEmmanuel Vadot <0 0x11c10000 0 0x1000>, 117*0e8011faSEmmanuel Vadot <0 0x11d20000 0 0x1000>, 118*0e8011faSEmmanuel Vadot <0 0x11e00000 0 0x1000>, 119*0e8011faSEmmanuel Vadot <0 0x11e20000 0 0x1000>, 120*0e8011faSEmmanuel Vadot <0 0x11f00000 0 0x1000>, 121*0e8011faSEmmanuel Vadot <0 0x11f10000 0 0x1000>, 122*0e8011faSEmmanuel Vadot <0 0x1000b000 0 0x1000>; 123*0e8011faSEmmanuel Vadot reg-names = "gpio", "iocfg_rt", "iocfg_rm", "iocfg_rb", "iocfg_lb", 124*0e8011faSEmmanuel Vadot "iocfg_bl", "iocfg_tm", "iocfg_tl", "eint"; 125*0e8011faSEmmanuel Vadot interrupt-controller; 126*0e8011faSEmmanuel Vadot interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>; 127*0e8011faSEmmanuel Vadot interrupt-parent = <&gic>; 128*0e8011faSEmmanuel Vadot gpio-ranges = <&pio 0 0 56>; 129*0e8011faSEmmanuel Vadot gpio-controller; 130*0e8011faSEmmanuel Vadot #gpio-cells = <2>; 131*0e8011faSEmmanuel Vadot #interrupt-cells = <2>; 132*0e8011faSEmmanuel Vadot }; 133*0e8011faSEmmanuel Vadot 134*0e8011faSEmmanuel Vadot efuse@11f20000 { 135*0e8011faSEmmanuel Vadot compatible = "mediatek,mt7981-efuse", "mediatek,efuse"; 136*0e8011faSEmmanuel Vadot reg = <0 0x11f20000 0 0x1000>; 137*0e8011faSEmmanuel Vadot #address-cells = <1>; 138*0e8011faSEmmanuel Vadot #size-cells = <1>; 139*0e8011faSEmmanuel Vadot }; 140*0e8011faSEmmanuel Vadot 14101950c46SEmmanuel Vadot clock-controller@15000000 { 14201950c46SEmmanuel Vadot compatible = "mediatek,mt7981-ethsys", "syscon"; 14301950c46SEmmanuel Vadot reg = <0 0x15000000 0 0x1000>; 14401950c46SEmmanuel Vadot #clock-cells = <1>; 14501950c46SEmmanuel Vadot #reset-cells = <1>; 14601950c46SEmmanuel Vadot }; 147*0e8011faSEmmanuel Vadot 148*0e8011faSEmmanuel Vadot wifi@18000000 { 149*0e8011faSEmmanuel Vadot compatible = "mediatek,mt7981-wmac"; 150*0e8011faSEmmanuel Vadot reg = <0 0x18000000 0 0x1000000>, 151*0e8011faSEmmanuel Vadot <0 0x10003000 0 0x1000>, 152*0e8011faSEmmanuel Vadot <0 0x11d10000 0 0x1000>; 153*0e8011faSEmmanuel Vadot interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>, 154*0e8011faSEmmanuel Vadot <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>, 155*0e8011faSEmmanuel Vadot <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>, 156*0e8011faSEmmanuel Vadot <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>; 157*0e8011faSEmmanuel Vadot clocks = <&topckgen CLK_TOP_NETSYS_MCU_SEL>, 158*0e8011faSEmmanuel Vadot <&topckgen CLK_TOP_AP2CNN_HOST_SEL>; 159*0e8011faSEmmanuel Vadot clock-names = "mcu", "ap2conn"; 160*0e8011faSEmmanuel Vadot resets = <&watchdog MT7986_TOPRGU_CONSYS_SW_RST>; 161*0e8011faSEmmanuel Vadot reset-names = "consys"; 162*0e8011faSEmmanuel Vadot }; 16301950c46SEmmanuel Vadot }; 16401950c46SEmmanuel Vadot 16501950c46SEmmanuel Vadot timer { 16601950c46SEmmanuel Vadot compatible = "arm,armv8-timer"; 16701950c46SEmmanuel Vadot interrupt-parent = <&gic>; 16801950c46SEmmanuel Vadot interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 16901950c46SEmmanuel Vadot <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 17001950c46SEmmanuel Vadot <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 17101950c46SEmmanuel Vadot <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 17201950c46SEmmanuel Vadot }; 17301950c46SEmmanuel Vadot}; 174