xref: /linux/arch/mips/boot/dts/ralink/mt7628a.dtsi (revision f1aa129d80fddd2ae33080524bf84dea1c3528de)
19ea34af7SStefan Roese// SPDX-License-Identifier: GPL-2.0
2232085d1SSergio Paracuellos#include <dt-bindings/clock/mediatek,mtmips-sysc.h>
39ea34af7SStefan Roese
47d4ad2e7SHarvey Hunt/ {
57d4ad2e7SHarvey Hunt	#address-cells = <1>;
67d4ad2e7SHarvey Hunt	#size-cells = <1>;
77d4ad2e7SHarvey Hunt	compatible = "ralink,mt7628a-soc";
87d4ad2e7SHarvey Hunt
97d4ad2e7SHarvey Hunt	cpus {
107d4ad2e7SHarvey Hunt		#address-cells = <1>;
117d4ad2e7SHarvey Hunt		#size-cells = <0>;
127d4ad2e7SHarvey Hunt
137d4ad2e7SHarvey Hunt		cpu@0 {
147d4ad2e7SHarvey Hunt			compatible = "mti,mips24KEc";
157d4ad2e7SHarvey Hunt			device_type = "cpu";
167d4ad2e7SHarvey Hunt			reg = <0>;
177d4ad2e7SHarvey Hunt		};
187d4ad2e7SHarvey Hunt	};
197d4ad2e7SHarvey Hunt
207d4ad2e7SHarvey Hunt	cpuintc: interrupt-controller {
217d4ad2e7SHarvey Hunt		#address-cells = <0>;
227d4ad2e7SHarvey Hunt		#interrupt-cells = <1>;
237d4ad2e7SHarvey Hunt		interrupt-controller;
247d4ad2e7SHarvey Hunt		compatible = "mti,cpu-interrupt-controller";
257d4ad2e7SHarvey Hunt	};
267d4ad2e7SHarvey Hunt
277d4ad2e7SHarvey Hunt	palmbus@10000000 {
287d4ad2e7SHarvey Hunt		compatible = "palmbus";
297d4ad2e7SHarvey Hunt		reg = <0x10000000 0x200000>;
307d4ad2e7SHarvey Hunt		ranges = <0x0 0x10000000 0x1FFFFF>;
317d4ad2e7SHarvey Hunt
327d4ad2e7SHarvey Hunt		#address-cells = <1>;
337d4ad2e7SHarvey Hunt		#size-cells = <1>;
347d4ad2e7SHarvey Hunt
35232085d1SSergio Paracuellos		sysc: syscon@0 {
360e029c91SEzra Buehler			compatible = "ralink,mt7628-sysc", "ralink,mt7688-sysc", "syscon";
37380f072cSStefan Roese			reg = <0x0 0x60>;
38232085d1SSergio Paracuellos			#clock-cells = <1>;
39232085d1SSergio Paracuellos			#reset-cells = <1>;
40380f072cSStefan Roese		};
41380f072cSStefan Roese
42380f072cSStefan Roese		pinmux: pinmux@60 {
43380f072cSStefan Roese			compatible = "pinctrl-single";
44380f072cSStefan Roese			reg = <0x60 0x8>;
45380f072cSStefan Roese			#address-cells = <1>;
46380f072cSStefan Roese			#size-cells = <0>;
47380f072cSStefan Roese			#pinctrl-cells = <2>;
48380f072cSStefan Roese			pinctrl-single,bit-per-mux;
49380f072cSStefan Roese			pinctrl-single,register-width = <32>;
50380f072cSStefan Roese			pinctrl-single,function-mask = <0x1>;
51380f072cSStefan Roese
525cad8323STony Lindgren			pinmux_gpio_gpio: gpio-gpio-pins {
53380f072cSStefan Roese				pinctrl-single,bits = <0x0 0x0 0x3>;
54380f072cSStefan Roese			};
55380f072cSStefan Roese
565cad8323STony Lindgren			pinmux_spi_cs1_cs: spi-cs1-cs-pins {
57380f072cSStefan Roese				pinctrl-single,bits = <0x0 0x0 0x30>;
58380f072cSStefan Roese			};
59380f072cSStefan Roese
605cad8323STony Lindgren			pinmux_i2s_gpio: i2s-gpio-pins {
61380f072cSStefan Roese				pinctrl-single,bits = <0x0 0x40 0xc0>;
62380f072cSStefan Roese			};
63380f072cSStefan Roese
645cad8323STony Lindgren			pinmux_uart0_uart: uart0-uart0-pins {
65380f072cSStefan Roese				pinctrl-single,bits = <0x0 0x0 0x300>;
66380f072cSStefan Roese			};
67380f072cSStefan Roese
685cad8323STony Lindgren			pinmux_sdmode_sdxc: sdmode-sdxc-pins {
69380f072cSStefan Roese				pinctrl-single,bits = <0x0 0x0 0xc00>;
70380f072cSStefan Roese			};
71380f072cSStefan Roese
725cad8323STony Lindgren			pinmux_sdmode_gpio: sdmode-gpio-pins {
73380f072cSStefan Roese				pinctrl-single,bits = <0x0 0x400 0xc00>;
74380f072cSStefan Roese			};
75380f072cSStefan Roese
765cad8323STony Lindgren			pinmux_spi_spi: spi-spi-pins {
77380f072cSStefan Roese				pinctrl-single,bits = <0x0 0x0 0x1000>;
78380f072cSStefan Roese			};
79380f072cSStefan Roese
805cad8323STony Lindgren			pinmux_refclk_gpio: refclk-gpio-pins {
81380f072cSStefan Roese				pinctrl-single,bits = <0x0 0x40000 0x40000>;
82380f072cSStefan Roese			};
83380f072cSStefan Roese
845cad8323STony Lindgren			pinmux_i2c_i2c: i2c-i2c-pins {
85380f072cSStefan Roese				pinctrl-single,bits = <0x0 0x0 0x300000>;
86380f072cSStefan Roese			};
87380f072cSStefan Roese
885cad8323STony Lindgren			pinmux_uart1_uart: uart1-uart1-pins {
89380f072cSStefan Roese				pinctrl-single,bits = <0x0 0x0 0x3000000>;
90380f072cSStefan Roese			};
91380f072cSStefan Roese
925cad8323STony Lindgren			pinmux_uart2_uart: uart2-uart-pins {
93380f072cSStefan Roese				pinctrl-single,bits = <0x0 0x0 0xc000000>;
94380f072cSStefan Roese			};
95380f072cSStefan Roese
965cad8323STony Lindgren			pinmux_pwm0_pwm: pwm0-pwm-pins {
97380f072cSStefan Roese				pinctrl-single,bits = <0x0 0x0 0x30000000>;
98380f072cSStefan Roese			};
99380f072cSStefan Roese
1005cad8323STony Lindgren			pinmux_pwm0_gpio: pwm0-gpio-pins {
101380f072cSStefan Roese				pinctrl-single,bits = <0x0 0x10000000
102380f072cSStefan Roese						       0x30000000>;
103380f072cSStefan Roese			};
104380f072cSStefan Roese
1055cad8323STony Lindgren			pinmux_pwm1_pwm: pwm1-pwm-pins {
106380f072cSStefan Roese				pinctrl-single,bits = <0x0 0x0 0xc0000000>;
107380f072cSStefan Roese			};
108380f072cSStefan Roese
1095cad8323STony Lindgren			pinmux_pwm1_gpio: pwm1-gpio-pins {
110380f072cSStefan Roese				pinctrl-single,bits = <0x0 0x40000000
111380f072cSStefan Roese						       0xc0000000>;
112380f072cSStefan Roese			};
113380f072cSStefan Roese
1145cad8323STony Lindgren			pinmux_p0led_an_gpio: p0led-an-gpio-pins {
115380f072cSStefan Roese				pinctrl-single,bits = <0x4 0x4 0xc>;
116380f072cSStefan Roese			};
117380f072cSStefan Roese
1185cad8323STony Lindgren			pinmux_p1led_an_gpio: p1led-an-gpio-pins {
119380f072cSStefan Roese				pinctrl-single,bits = <0x4 0x10 0x30>;
120380f072cSStefan Roese			};
121380f072cSStefan Roese
1225cad8323STony Lindgren			pinmux_p2led_an_gpio: p2led-an-gpio-pins {
123380f072cSStefan Roese				pinctrl-single,bits = <0x4 0x40 0xc0>;
124380f072cSStefan Roese			};
125380f072cSStefan Roese
1265cad8323STony Lindgren			pinmux_p3led_an_gpio: p3led-an-gpio-pins {
127380f072cSStefan Roese				pinctrl-single,bits = <0x4 0x100 0x300>;
128380f072cSStefan Roese			};
129380f072cSStefan Roese
1305cad8323STony Lindgren			pinmux_p4led_an_gpio: p4led-an-gpio-pins {
131380f072cSStefan Roese				pinctrl-single,bits = <0x4 0x400 0xc00>;
132380f072cSStefan Roese			};
1337d4ad2e7SHarvey Hunt		};
1347d4ad2e7SHarvey Hunt
1351bca2eacSStefan Roese		watchdog: watchdog@100 {
1361bca2eacSStefan Roese			compatible = "mediatek,mt7621-wdt";
137*87eaf31fSEzra Buehler			reg = <0x100 0x100>;
138*87eaf31fSEzra Buehler			mediatek,sysctl = <&sysc>;
1391bca2eacSStefan Roese
1401bca2eacSStefan Roese			status = "disabled";
1411bca2eacSStefan Roese		};
1421bca2eacSStefan Roese
1437d4ad2e7SHarvey Hunt		intc: interrupt-controller@200 {
1447d4ad2e7SHarvey Hunt			compatible = "ralink,rt2880-intc";
1457d4ad2e7SHarvey Hunt			reg = <0x200 0x100>;
1467d4ad2e7SHarvey Hunt
1477d4ad2e7SHarvey Hunt			interrupt-controller;
1487d4ad2e7SHarvey Hunt			#interrupt-cells = <1>;
1497d4ad2e7SHarvey Hunt
150232085d1SSergio Paracuellos			resets = <&sysc 9>;
1517d4ad2e7SHarvey Hunt			reset-names = "intc";
1527d4ad2e7SHarvey Hunt
1537d4ad2e7SHarvey Hunt			interrupt-parent = <&cpuintc>;
1547d4ad2e7SHarvey Hunt			interrupts = <2>;
1557d4ad2e7SHarvey Hunt
1567d4ad2e7SHarvey Hunt			ralink,intc-registers = <0x9c 0xa0
1577d4ad2e7SHarvey Hunt						 0x6c 0xa4
1587d4ad2e7SHarvey Hunt						 0x80 0x78>;
1597d4ad2e7SHarvey Hunt		};
1607d4ad2e7SHarvey Hunt
1617d4ad2e7SHarvey Hunt		memory-controller@300 {
1627d4ad2e7SHarvey Hunt			compatible = "ralink,mt7620a-memc";
1637d4ad2e7SHarvey Hunt			reg = <0x300 0x100>;
1647d4ad2e7SHarvey Hunt		};
1657d4ad2e7SHarvey Hunt
166e456a3bdSStefan Roese		gpio: gpio@600 {
167e456a3bdSStefan Roese			compatible = "mediatek,mt7621-gpio";
168e456a3bdSStefan Roese			reg = <0x600 0x100>;
169e456a3bdSStefan Roese
170e456a3bdSStefan Roese			gpio-controller;
171e456a3bdSStefan Roese			interrupt-controller;
172e456a3bdSStefan Roese			#gpio-cells = <2>;
173e456a3bdSStefan Roese			#interrupt-cells = <2>;
174e456a3bdSStefan Roese
175e456a3bdSStefan Roese			interrupt-parent = <&intc>;
176e456a3bdSStefan Roese			interrupts = <6>;
177e456a3bdSStefan Roese		};
178e456a3bdSStefan Roese
1794e41b745SStefan Roese		spi: spi@b00 {
1804e41b745SStefan Roese			compatible = "ralink,mt7621-spi";
1814e41b745SStefan Roese			reg = <0xb00 0x100>;
1824e41b745SStefan Roese
1834e41b745SStefan Roese			pinctrl-names = "default";
1844e41b745SStefan Roese			pinctrl-0 = <&pinmux_spi_spi>;
1854e41b745SStefan Roese
186232085d1SSergio Paracuellos			clocks = <&sysc MT76X8_CLK_SPI1>;
187232085d1SSergio Paracuellos
188232085d1SSergio Paracuellos			resets = <&sysc 18>;
1894e41b745SStefan Roese			reset-names = "spi";
1904e41b745SStefan Roese
1914e41b745SStefan Roese			#address-cells = <1>;
1924e41b745SStefan Roese			#size-cells = <0>;
1934e41b745SStefan Roese
1944e41b745SStefan Roese			status = "disabled";
1954e41b745SStefan Roese		};
1964e41b745SStefan Roese
197cd5f9e4fSStefan Roese		i2c: i2c@900 {
198cd5f9e4fSStefan Roese			compatible = "mediatek,mt7621-i2c";
199cd5f9e4fSStefan Roese			reg = <0x900 0x100>;
200cd5f9e4fSStefan Roese
201cd5f9e4fSStefan Roese			pinctrl-names = "default";
202cd5f9e4fSStefan Roese			pinctrl-0 = <&pinmux_i2c_i2c>;
203cd5f9e4fSStefan Roese
204232085d1SSergio Paracuellos			clocks = <&sysc MT76X8_CLK_I2C>;
205232085d1SSergio Paracuellos
206232085d1SSergio Paracuellos			resets = <&sysc 16>;
207cd5f9e4fSStefan Roese			reset-names = "i2c";
208cd5f9e4fSStefan Roese
209cd5f9e4fSStefan Roese			#address-cells = <1>;
210cd5f9e4fSStefan Roese			#size-cells = <0>;
211cd5f9e4fSStefan Roese
212cd5f9e4fSStefan Roese			status = "disabled";
213cd5f9e4fSStefan Roese		};
214cd5f9e4fSStefan Roese
2157d4ad2e7SHarvey Hunt		uart0: uartlite@c00 {
2167d4ad2e7SHarvey Hunt			compatible = "ns16550a";
2177d4ad2e7SHarvey Hunt			reg = <0xc00 0x100>;
2187d4ad2e7SHarvey Hunt
2196394de39SStefan Roese			pinctrl-names = "default";
2206394de39SStefan Roese			pinctrl-0 = <&pinmux_uart0_uart>;
2216394de39SStefan Roese
222232085d1SSergio Paracuellos			clocks = <&sysc MT76X8_CLK_UART0>;
223232085d1SSergio Paracuellos
224232085d1SSergio Paracuellos			resets = <&sysc 12>;
2257d4ad2e7SHarvey Hunt			reset-names = "uart0";
2267d4ad2e7SHarvey Hunt
2277d4ad2e7SHarvey Hunt			interrupt-parent = <&intc>;
2287d4ad2e7SHarvey Hunt			interrupts = <20>;
2297d4ad2e7SHarvey Hunt
2307d4ad2e7SHarvey Hunt			reg-shift = <2>;
2317d4ad2e7SHarvey Hunt		};
2327d4ad2e7SHarvey Hunt
2337d4ad2e7SHarvey Hunt		uart1: uart1@d00 {
2347d4ad2e7SHarvey Hunt			compatible = "ns16550a";
2357d4ad2e7SHarvey Hunt			reg = <0xd00 0x100>;
2367d4ad2e7SHarvey Hunt
2376394de39SStefan Roese			pinctrl-names = "default";
2386394de39SStefan Roese			pinctrl-0 = <&pinmux_uart1_uart>;
2396394de39SStefan Roese
240232085d1SSergio Paracuellos			clocks = <&sysc MT76X8_CLK_UART1>;
241232085d1SSergio Paracuellos
242232085d1SSergio Paracuellos			resets = <&sysc 19>;
2437d4ad2e7SHarvey Hunt			reset-names = "uart1";
2447d4ad2e7SHarvey Hunt
2457d4ad2e7SHarvey Hunt			interrupt-parent = <&intc>;
2467d4ad2e7SHarvey Hunt			interrupts = <21>;
2477d4ad2e7SHarvey Hunt
2487d4ad2e7SHarvey Hunt			reg-shift = <2>;
2497d4ad2e7SHarvey Hunt		};
2507d4ad2e7SHarvey Hunt
2517d4ad2e7SHarvey Hunt		uart2: uart2@e00 {
2527d4ad2e7SHarvey Hunt			compatible = "ns16550a";
2537d4ad2e7SHarvey Hunt			reg = <0xe00 0x100>;
2547d4ad2e7SHarvey Hunt
2556394de39SStefan Roese			pinctrl-names = "default";
2566394de39SStefan Roese			pinctrl-0 = <&pinmux_uart2_uart>;
2576394de39SStefan Roese
258232085d1SSergio Paracuellos			clocks = <&sysc MT76X8_CLK_UART2>;
259232085d1SSergio Paracuellos
260232085d1SSergio Paracuellos			resets = <&sysc 20>;
2617d4ad2e7SHarvey Hunt			reset-names = "uart2";
2627d4ad2e7SHarvey Hunt
2637d4ad2e7SHarvey Hunt			interrupt-parent = <&intc>;
2647d4ad2e7SHarvey Hunt			interrupts = <22>;
2657d4ad2e7SHarvey Hunt
2667d4ad2e7SHarvey Hunt			reg-shift = <2>;
2677d4ad2e7SHarvey Hunt		};
2687d4ad2e7SHarvey Hunt	};
2697d4ad2e7SHarvey Hunt
2707d4ad2e7SHarvey Hunt	usb_phy: usb-phy@10120000 {
2717d4ad2e7SHarvey Hunt		compatible = "mediatek,mt7628-usbphy";
2727d4ad2e7SHarvey Hunt		reg = <0x10120000 0x1000>;
2737d4ad2e7SHarvey Hunt
2747d4ad2e7SHarvey Hunt		#phy-cells = <0>;
2757d4ad2e7SHarvey Hunt
2767d4ad2e7SHarvey Hunt		ralink,sysctl = <&sysc>;
277232085d1SSergio Paracuellos		resets = <&sysc 22 &sysc 25>;
2787d4ad2e7SHarvey Hunt		reset-names = "host", "device";
2797d4ad2e7SHarvey Hunt	};
2807d4ad2e7SHarvey Hunt
2813180b64aSSerge Semin	usb@101c0000 {
2827d4ad2e7SHarvey Hunt		compatible = "generic-ehci";
2837d4ad2e7SHarvey Hunt		reg = <0x101c0000 0x1000>;
2847d4ad2e7SHarvey Hunt
2857d4ad2e7SHarvey Hunt		phys = <&usb_phy>;
2867d4ad2e7SHarvey Hunt		phy-names = "usb";
2877d4ad2e7SHarvey Hunt
2887d4ad2e7SHarvey Hunt		interrupt-parent = <&intc>;
2897d4ad2e7SHarvey Hunt		interrupts = <18>;
2907d4ad2e7SHarvey Hunt	};
291ff68d0daSReto Schneider
292ff68d0daSReto Schneider	wmac: wmac@10300000 {
293ff68d0daSReto Schneider		compatible = "mediatek,mt7628-wmac";
294ff68d0daSReto Schneider		reg = <0x10300000 0x100000>;
295ff68d0daSReto Schneider
296232085d1SSergio Paracuellos		clocks = <&sysc MT76X8_CLK_WMAC>;
297232085d1SSergio Paracuellos
298ff68d0daSReto Schneider		interrupt-parent = <&cpuintc>;
299ff68d0daSReto Schneider		interrupts = <6>;
300ff68d0daSReto Schneider
301ff68d0daSReto Schneider		status = "disabled";
302ff68d0daSReto Schneider	};
3037d4ad2e7SHarvey Hunt};
304