1// SPDX-License-Identifier: GPL-2.0-only OR MIT 2 3#include <dt-bindings/clock/mediatek,mt7988-clk.h> 4#include <dt-bindings/interrupt-controller/arm-gic.h> 5#include <dt-bindings/phy/phy.h> 6 7/ { 8 compatible = "mediatek,mt7988a"; 9 interrupt-parent = <&gic>; 10 #address-cells = <2>; 11 #size-cells = <2>; 12 13 cpus { 14 #address-cells = <1>; 15 #size-cells = <0>; 16 17 cpu@0 { 18 compatible = "arm,cortex-a73"; 19 reg = <0x0>; 20 device_type = "cpu"; 21 enable-method = "psci"; 22 }; 23 24 cpu@1 { 25 compatible = "arm,cortex-a73"; 26 reg = <0x1>; 27 device_type = "cpu"; 28 enable-method = "psci"; 29 }; 30 31 cpu@2 { 32 compatible = "arm,cortex-a73"; 33 reg = <0x2>; 34 device_type = "cpu"; 35 enable-method = "psci"; 36 }; 37 38 cpu@3 { 39 compatible = "arm,cortex-a73"; 40 reg = <0x3>; 41 device_type = "cpu"; 42 enable-method = "psci"; 43 }; 44 }; 45 46 oscillator-40m { 47 compatible = "fixed-clock"; 48 clock-frequency = <40000000>; 49 #clock-cells = <0>; 50 clock-output-names = "clkxtal"; 51 }; 52 53 pmu { 54 compatible = "arm,cortex-a73-pmu"; 55 interrupt-parent = <&gic>; 56 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>; 57 }; 58 59 psci { 60 compatible = "arm,psci-0.2"; 61 method = "smc"; 62 }; 63 64 soc { 65 compatible = "simple-bus"; 66 ranges; 67 #address-cells = <2>; 68 #size-cells = <2>; 69 70 gic: interrupt-controller@c000000 { 71 compatible = "arm,gic-v3"; 72 reg = <0 0x0c000000 0 0x40000>, /* GICD */ 73 <0 0x0c080000 0 0x200000>, /* GICR */ 74 <0 0x0c400000 0 0x2000>, /* GICC */ 75 <0 0x0c410000 0 0x1000>, /* GICH */ 76 <0 0x0c420000 0 0x2000>; /* GICV */ 77 interrupt-parent = <&gic>; 78 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 79 interrupt-controller; 80 #interrupt-cells = <3>; 81 }; 82 83 infracfg: clock-controller@10001000 { 84 compatible = "mediatek,mt7988-infracfg", "syscon"; 85 reg = <0 0x10001000 0 0x1000>; 86 #clock-cells = <1>; 87 }; 88 89 clock-controller@1001b000 { 90 compatible = "mediatek,mt7988-topckgen", "syscon"; 91 reg = <0 0x1001b000 0 0x1000>; 92 #clock-cells = <1>; 93 }; 94 95 watchdog: watchdog@1001c000 { 96 compatible = "mediatek,mt7988-wdt"; 97 reg = <0 0x1001c000 0 0x1000>; 98 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 99 #reset-cells = <1>; 100 }; 101 102 clock-controller@1001e000 { 103 compatible = "mediatek,mt7988-apmixedsys"; 104 reg = <0 0x1001e000 0 0x1000>; 105 #clock-cells = <1>; 106 }; 107 108 pwm@10048000 { 109 compatible = "mediatek,mt7988-pwm"; 110 reg = <0 0x10048000 0 0x1000>; 111 clocks = <&infracfg CLK_INFRA_66M_PWM_BCK>, 112 <&infracfg CLK_INFRA_66M_PWM_HCK>, 113 <&infracfg CLK_INFRA_66M_PWM_CK1>, 114 <&infracfg CLK_INFRA_66M_PWM_CK2>, 115 <&infracfg CLK_INFRA_66M_PWM_CK3>, 116 <&infracfg CLK_INFRA_66M_PWM_CK4>, 117 <&infracfg CLK_INFRA_66M_PWM_CK5>, 118 <&infracfg CLK_INFRA_66M_PWM_CK6>, 119 <&infracfg CLK_INFRA_66M_PWM_CK7>, 120 <&infracfg CLK_INFRA_66M_PWM_CK8>; 121 clock-names = "top", "main", "pwm1", "pwm2", "pwm3", 122 "pwm4", "pwm5", "pwm6", "pwm7", "pwm8"; 123 #pwm-cells = <2>; 124 status = "disabled"; 125 }; 126 127 i2c@11003000 { 128 compatible = "mediatek,mt7981-i2c"; 129 reg = <0 0x11003000 0 0x1000>, 130 <0 0x10217080 0 0x80>; 131 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>; 132 clock-div = <1>; 133 clocks = <&infracfg CLK_INFRA_I2C_BCK>, 134 <&infracfg CLK_INFRA_66M_AP_DMA_BCK>; 135 clock-names = "main", "dma"; 136 #address-cells = <1>; 137 #size-cells = <0>; 138 status = "disabled"; 139 }; 140 141 i2c@11004000 { 142 compatible = "mediatek,mt7981-i2c"; 143 reg = <0 0x11004000 0 0x1000>, 144 <0 0x10217100 0 0x80>; 145 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 146 clock-div = <1>; 147 clocks = <&infracfg CLK_INFRA_I2C_BCK>, 148 <&infracfg CLK_INFRA_66M_AP_DMA_BCK>; 149 clock-names = "main", "dma"; 150 #address-cells = <1>; 151 #size-cells = <0>; 152 status = "disabled"; 153 }; 154 155 i2c@11005000 { 156 compatible = "mediatek,mt7981-i2c"; 157 reg = <0 0x11005000 0 0x1000>, 158 <0 0x10217180 0 0x80>; 159 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 160 clock-div = <1>; 161 clocks = <&infracfg CLK_INFRA_I2C_BCK>, 162 <&infracfg CLK_INFRA_66M_AP_DMA_BCK>; 163 clock-names = "main", "dma"; 164 #address-cells = <1>; 165 #size-cells = <0>; 166 status = "disabled"; 167 }; 168 169 usb@11190000 { 170 compatible = "mediatek,mt7988-xhci", "mediatek,mtk-xhci"; 171 reg = <0 0x11190000 0 0x2e00>, 172 <0 0x11193e00 0 0x0100>; 173 reg-names = "mac", "ippc"; 174 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 175 clocks = <&infracfg CLK_INFRA_USB_SYS>, 176 <&infracfg CLK_INFRA_USB_REF>, 177 <&infracfg CLK_INFRA_66M_USB_HCK>, 178 <&infracfg CLK_INFRA_133M_USB_HCK>, 179 <&infracfg CLK_INFRA_USB_XHCI>; 180 clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck"; 181 }; 182 183 usb@11200000 { 184 compatible = "mediatek,mt7988-xhci", "mediatek,mtk-xhci"; 185 reg = <0 0x11200000 0 0x2e00>, 186 <0 0x11203e00 0 0x0100>; 187 reg-names = "mac", "ippc"; 188 interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>; 189 clocks = <&infracfg CLK_INFRA_USB_SYS_CK_P1>, 190 <&infracfg CLK_INFRA_USB_CK_P1>, 191 <&infracfg CLK_INFRA_66M_USB_HCK_CK_P1>, 192 <&infracfg CLK_INFRA_133M_USB_HCK_CK_P1>, 193 <&infracfg CLK_INFRA_USB_XHCI_CK_P1>; 194 clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck"; 195 }; 196 197 clock-controller@11f40000 { 198 compatible = "mediatek,mt7988-xfi-pll"; 199 reg = <0 0x11f40000 0 0x1000>; 200 resets = <&watchdog 16>; 201 #clock-cells = <1>; 202 }; 203 204 clock-controller@15000000 { 205 compatible = "mediatek,mt7988-ethsys", "syscon"; 206 reg = <0 0x15000000 0 0x1000>; 207 #clock-cells = <1>; 208 #reset-cells = <1>; 209 }; 210 211 clock-controller@15031000 { 212 compatible = "mediatek,mt7988-ethwarp"; 213 reg = <0 0x15031000 0 0x1000>; 214 #clock-cells = <1>; 215 #reset-cells = <1>; 216 }; 217 }; 218 219 timer { 220 compatible = "arm,armv8-timer"; 221 interrupt-parent = <&gic>; 222 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 223 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 224 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 225 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 226 }; 227}; 228