2 * Copyright (C) 2018 MediaTek Inc.
3 * Author: Ryder Lee <ryder.lee@mediatek.com>
5 * SPDX-License-Identifier: (GPL-2.0 OR MIT)
8 #include <dt-bindings/clock/mt7623-clk.h>
9 #include <dt-bindings/gpio/gpio.h>
10 #include <dt-bindings/interrupt-controller/irq.h>
11 #include <dt-bindings/interrupt-controller/arm-gic.h>
12 #include <dt-bindings/phy/phy.h>
13 #include <dt-bindings/power/mt7623-power.h>
14 #include <dt-bindings/reset/mt7623-reset.h>
15 #include "skeleton.dtsi"
18 compatible = "mediatek,mt7623";
19 interrupt-parent = <&sysirq>;
26 enable-method = "mediatek,mt6589-smp";
30 compatible = "arm,cortex-a7";
32 clocks = <&infracfg CLK_INFRA_CPUSEL>,
33 <&apmixedsys CLK_APMIXED_MAINPLL>;
34 clock-names = "cpu", "intermediate";
35 clock-frequency = <1300000000>;
40 compatible = "arm,cortex-a7";
42 clocks = <&infracfg CLK_INFRA_CPUSEL>,
43 <&apmixedsys CLK_APMIXED_MAINPLL>;
44 clock-names = "cpu", "intermediate";
45 clock-frequency = <1300000000>;
50 compatible = "arm,cortex-a7";
52 clocks = <&infracfg CLK_INFRA_CPUSEL>,
53 <&apmixedsys CLK_APMIXED_MAINPLL>;
54 clock-names = "cpu", "intermediate";
55 clock-frequency = <1300000000>;
60 compatible = "arm,cortex-a7";
62 clocks = <&infracfg CLK_INFRA_CPUSEL>,
63 <&apmixedsys CLK_APMIXED_MAINPLL>;
64 clock-names = "cpu", "intermediate";
65 clock-frequency = <1300000000>;
69 system_clk: dummy13m {
70 compatible = "fixed-clock";
71 clock-frequency = <13000000>;
75 rtc32k: oscillator-1 {
76 compatible = "fixed-clock";
78 clock-frequency = <32000>;
79 clock-output-names = "rtc32k";
82 clk26m: oscillator-0 {
83 compatible = "fixed-clock";
85 clock-frequency = <26000000>;
86 clock-output-names = "clk26m";
90 compatible = "arm,armv7-timer";
91 interrupt-parent = <&gic>;
92 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
93 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
94 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
95 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
96 clock-frequency = <13000000>;
97 arm,cpu-registers-not-fw-configured;
100 topckgen: clock-controller@10000000 {
101 compatible = "mediatek,mt7623-topckgen";
102 reg = <0x10000000 0x1000>;
107 infracfg: syscon@10001000 {
108 compatible = "mediatek,mt7623-infracfg", "syscon";
109 reg = <0x10001000 0x1000>;
114 pericfg: syscon@10003000 {
115 compatible = "mediatek,mt7623-pericfg", "syscon";
116 reg = <0x10003000 0x1000>;
121 pinctrl: pinctrl@10005000 {
122 compatible = "mediatek,mt7623-pinctrl";
123 reg = <0x10005000 0x1000>;
125 gpio: gpio-controller {
131 scpsys: scpsys@10006000 {
132 compatible = "mediatek,mt7623-scpsys";
133 #power-domain-cells = <1>;
134 reg = <0x10006000 0x1000>;
135 infracfg = <&infracfg>;
136 clocks = <&topckgen CLK_TOP_MM_SEL>,
137 <&topckgen CLK_TOP_MFG_SEL>,
138 <&topckgen CLK_TOP_ETHIF_SEL>;
139 clock-names = "mm", "mfg", "ethif";
142 watchdog: watchdog@10007000 {
143 compatible = "mediatek,wdt";
144 reg = <0x10007000 0x100>;
148 compatible = "wdt-reboot";
152 timer0: timer@10008000 {
153 compatible = "mediatek,timer";
154 reg = <0x10008000 0x80>;
155 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_LOW>;
156 clocks = <&system_clk>;
157 clock-names = "system-clk";
161 sysirq: interrupt-controller@10200100 {
162 compatible = "mediatek,sysirq";
163 interrupt-controller;
164 #interrupt-cells = <3>;
165 interrupt-parent = <&gic>;
166 reg = <0x10200100 0x1c>;
169 apmixedsys: clock-controller@10209000 {
170 compatible = "mediatek,mt7623-apmixedsys";
171 reg = <0x10209000 0x1000>;
176 gic: interrupt-controller@10211000 {
177 compatible = "arm,cortex-a7-gic";
178 interrupt-controller;
179 #interrupt-cells = <3>;
180 interrupt-parent = <&gic>;
181 reg = <0x10211000 0x1000>,
187 uart0: serial@11002000 {
188 compatible = "mediatek,hsuart";
189 reg = <0x11002000 0x400>;
191 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>;
192 clocks = <&topckgen CLK_TOP_UART_SEL>,
193 <&pericfg CLK_PERI_UART0>;
194 clock-names = "baud", "bus";
198 uart1: serial@11003000 {
199 compatible = "mediatek,hsuart";
200 reg = <0x11003000 0x400>;
202 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
203 clocks = <&topckgen CLK_TOP_UART_SEL>,
204 <&pericfg CLK_PERI_UART1>;
205 clock-names = "baud", "bus";
209 uart2: serial@11004000 {
210 compatible = "mediatek,hsuart";
211 reg = <0x11004000 0x400>;
213 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>;
214 clocks = <&topckgen CLK_TOP_UART_SEL>,
215 <&pericfg CLK_PERI_UART2>;
216 clock-names = "baud", "bus";
221 uart3: serial@11005000 {
222 compatible = "mediatek,hsuart";
223 reg = <0x11005000 0x400>;
225 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>;
226 clocks = <&topckgen CLK_TOP_UART_SEL>,
227 <&pericfg CLK_PERI_UART3>;
228 clock-names = "baud", "bus";
233 compatible = "mediatek,mt7623-mmc";
234 reg = <0x11230000 0x1000>;
235 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_LOW>;
236 clocks = <&pericfg CLK_PERI_MSDC30_0>,
237 <&topckgen CLK_TOP_MSDC30_0_SEL>;
238 clock-names = "source", "hclk";
243 compatible = "mediatek,mt7623-mmc";
244 reg = <0x11240000 0x1000>;
245 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_LOW>;
246 clocks = <&pericfg CLK_PERI_MSDC30_1>,
247 <&topckgen CLK_TOP_MSDC30_1_SEL>;
248 clock-names = "source", "hclk";
252 hifsys: syscon@1a000000 {
253 compatible = "mediatek,mt7623-hifsys", "syscon";
254 reg = <0x1a000000 0x1000>;
259 pcie: pcie@1a140000 {
260 compatible = "mediatek,mt7623-pcie";
262 reg = <0x1a140000 0x1000>, /* PCIe shared registers */
263 <0x1a142000 0x1000>, /* Port0 registers */
264 <0x1a143000 0x1000>, /* Port1 registers */
265 <0x1a144000 0x1000>; /* Port2 registers */
266 reg-names = "subsys", "port0", "port1", "port2";
267 #address-cells = <3>;
269 #interrupt-cells = <1>;
270 interrupt-map-mask = <0xf800 0 0 0>;
271 interrupt-map = <0x0000 0 0 0 &sysirq GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>,
272 <0x0800 0 0 0 &sysirq GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>,
273 <0x1000 0 0 0 &sysirq GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>;
274 clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
275 <&hifsys CLK_HIFSYS_PCIE0>,
276 <&hifsys CLK_HIFSYS_PCIE1>,
277 <&hifsys CLK_HIFSYS_PCIE2>;
278 clock-names = "free_ck", "sys_ck0", "sys_ck1", "sys_ck2";
279 resets = <&hifsys HIFSYS_PCIE0_RST>,
280 <&hifsys HIFSYS_PCIE1_RST>,
281 <&hifsys HIFSYS_PCIE2_RST>;
282 reset-names = "pcie-rst0", "pcie-rst1", "pcie-rst2";
283 phys = <&pcie0_port PHY_TYPE_PCIE>,
284 <&pcie1_port PHY_TYPE_PCIE>,
285 <&u3port1 PHY_TYPE_PCIE>;
286 phy-names = "pcie-phy0", "pcie-phy1", "pcie-phy2";
287 power-domains = <&scpsys MT7623_POWER_DOMAIN_HIF>;
288 bus-range = <0x00 0xff>;
290 ranges = <0x81000000 0 0x1a160000 0x1a160000 0 0x00010000
291 0x83000000 0 0x60000000 0x60000000 0 0x10000000>;
294 reg = <0x0000 0 0 0 0>;
295 #address-cells = <3>;
297 #interrupt-cells = <1>;
298 interrupt-map-mask = <0 0 0 0>;
299 interrupt-map = <0 0 0 0 &sysirq GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>;
305 reg = <0x0800 0 0 0 0>;
306 #address-cells = <3>;
308 #interrupt-cells = <1>;
309 interrupt-map-mask = <0 0 0 0>;
310 interrupt-map = <0 0 0 0 &sysirq GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>;
316 reg = <0x1000 0 0 0 0>;
317 #address-cells = <3>;
319 #interrupt-cells = <1>;
320 interrupt-map-mask = <0 0 0 0>;
321 interrupt-map = <0 0 0 0 &sysirq GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>;
327 pcie0_phy: pcie-phy@1a149000 {
328 compatible = "mediatek,generic-tphy-v1";
329 reg = <0x1a149000 0x0700>;
330 #address-cells = <1>;
335 pcie0_port: pcie-phy@1a149900 {
336 reg = <0x1a149900 0x0700>;
344 pcie1_phy: pcie-phy@1a14a000 {
345 compatible = "mediatek,generic-tphy-v1";
346 reg = <0x1a14a000 0x0700>;
347 #address-cells = <1>;
352 pcie1_port: pcie-phy@1a14a900 {
353 reg = <0x1a14a900 0x0700>;
361 u3phy2: usb-phy@1a244000 {
362 compatible = "mediatek,generic-tphy-v1";
363 reg = <0x1a244000 0x0700>;
364 #address-cells = <1>;
369 u2port1: usb-phy@1a244800 {
370 reg = <0x1a244800 0x0100>;
371 clocks = <&topckgen CLK_TOP_USB_PHY48M>;
377 u3port1: usb-phy@1a244900 {
378 reg = <0x1a244900 0x0700>;
386 ethsys: syscon@1b000000 {
387 compatible = "mediatek,mt7623-ethsys", "syscon";
388 reg = <0x1b000000 0x1000>;
393 eth: ethernet@1b100000 {
394 compatible = "mediatek,mt7623-eth", "syscon";
395 reg = <0x1b100000 0x20000>;
396 clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
397 <ðsys CLK_ETHSYS_ESW>,
398 <ðsys CLK_ETHSYS_GP1>,
399 <ðsys CLK_ETHSYS_GP2>,
400 <&apmixedsys CLK_APMIXED_TRGPLL>;
401 clock-names = "ethif", "esw", "gp1", "gp2", "trgpll";
402 power-domains = <&scpsys MT7623_POWER_DOMAIN_ETH>;
403 resets = <ðsys ETHSYS_FE_RST>,
404 <ðsys ETHSYS_MCM_RST>;
405 reset-names = "fe", "mcm";
406 mediatek,ethsys = <ðsys>;