18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci/dts-v1/;
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ci/memreserve/ 0x00000000 0x00001000;	// reserved
58c2ecf20Sopenharmony_ci/memreserve/ 0x00001000 0x000ef000;	// ROM data
68c2ecf20Sopenharmony_ci/memreserve/ 0x000f0000 0x004cc000;	// reserved
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#include <dt-bindings/interrupt-controller/mips-gic.h>
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci/ {
118c2ecf20Sopenharmony_ci	#address-cells = <1>;
128c2ecf20Sopenharmony_ci	#size-cells = <1>;
138c2ecf20Sopenharmony_ci	compatible = "mti,sead-3";
148c2ecf20Sopenharmony_ci	model = "MIPS SEAD-3";
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci	chosen {
178c2ecf20Sopenharmony_ci		stdout-path = "serial1:115200";
188c2ecf20Sopenharmony_ci	};
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci	aliases {
218c2ecf20Sopenharmony_ci		serial0 = &uart0;
228c2ecf20Sopenharmony_ci		serial1 = &uart1;
238c2ecf20Sopenharmony_ci	};
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci	cpus {
268c2ecf20Sopenharmony_ci		cpu@0 {
278c2ecf20Sopenharmony_ci			compatible = "mti,mips14KEc", "mti,mips14Kc";
288c2ecf20Sopenharmony_ci		};
298c2ecf20Sopenharmony_ci	};
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci	memory {
328c2ecf20Sopenharmony_ci		device_type = "memory";
338c2ecf20Sopenharmony_ci		reg = <0x0 0x08000000>;
348c2ecf20Sopenharmony_ci	};
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci	cpu_intc: interrupt-controller {
378c2ecf20Sopenharmony_ci		compatible = "mti,cpu-interrupt-controller";
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci		interrupt-controller;
408c2ecf20Sopenharmony_ci		#interrupt-cells = <1>;
418c2ecf20Sopenharmony_ci	};
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci	gic: interrupt-controller@1b1c0000 {
448c2ecf20Sopenharmony_ci		compatible = "mti,gic";
458c2ecf20Sopenharmony_ci		reg = <0x1b1c0000 0x20000>;
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci		interrupt-controller;
488c2ecf20Sopenharmony_ci		#interrupt-cells = <3>;
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci		/*
518c2ecf20Sopenharmony_ci		 * Declare the interrupt-parent even though the mti,gic
528c2ecf20Sopenharmony_ci		 * binding doesn't require it, such that the kernel can
538c2ecf20Sopenharmony_ci		 * figure out that cpu_intc is the root interrupt
548c2ecf20Sopenharmony_ci		 * controller & should be probed first.
558c2ecf20Sopenharmony_ci		 */
568c2ecf20Sopenharmony_ci		interrupt-parent = <&cpu_intc>;
578c2ecf20Sopenharmony_ci	};
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci	ehci@1b200000 {
608c2ecf20Sopenharmony_ci		compatible = "generic-ehci";
618c2ecf20Sopenharmony_ci		reg = <0x1b200000 0x1000>;
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci		interrupt-parent = <&gic>;
648c2ecf20Sopenharmony_ci		interrupts = <GIC_SHARED 0 IRQ_TYPE_LEVEL_HIGH>; /* GIC 0 or CPU 6 */
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci		has-transaction-translator;
678c2ecf20Sopenharmony_ci	};
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci	flash@1c000000 {
708c2ecf20Sopenharmony_ci		compatible = "intel,28f128j3", "cfi-flash";
718c2ecf20Sopenharmony_ci		reg = <0x1c000000 0x2000000>;
728c2ecf20Sopenharmony_ci		#address-cells = <1>;
738c2ecf20Sopenharmony_ci		#size-cells = <1>;
748c2ecf20Sopenharmony_ci		bank-width = <4>;
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ci		partitions {
778c2ecf20Sopenharmony_ci			compatible = "fixed-partitions";
788c2ecf20Sopenharmony_ci			#address-cells = <1>;
798c2ecf20Sopenharmony_ci			#size-cells = <1>;
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ci			user-fs@0 {
828c2ecf20Sopenharmony_ci				label = "User FS";
838c2ecf20Sopenharmony_ci				reg = <0x0 0x1fc0000>;
848c2ecf20Sopenharmony_ci			};
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci			board-config@3e0000 {
878c2ecf20Sopenharmony_ci				label = "Board Config";
888c2ecf20Sopenharmony_ci				reg = <0x1fc0000 0x40000>;
898c2ecf20Sopenharmony_ci			};
908c2ecf20Sopenharmony_ci		};
918c2ecf20Sopenharmony_ci	};
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ci	fpga_regs: system-controller@1f000000 {
948c2ecf20Sopenharmony_ci		compatible = "mti,sead3-fpga", "syscon", "simple-mfd";
958c2ecf20Sopenharmony_ci		reg = <0x1f000000 0x200>;
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci		reboot {
988c2ecf20Sopenharmony_ci			compatible = "syscon-reboot";
998c2ecf20Sopenharmony_ci			regmap = <&fpga_regs>;
1008c2ecf20Sopenharmony_ci			offset = <0x50>;
1018c2ecf20Sopenharmony_ci			mask = <0x4d>;
1028c2ecf20Sopenharmony_ci		};
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci		poweroff {
1058c2ecf20Sopenharmony_ci			compatible = "restart-poweroff";
1068c2ecf20Sopenharmony_ci		};
1078c2ecf20Sopenharmony_ci	};
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci	system-controller@1f000200 {
1108c2ecf20Sopenharmony_ci		compatible = "mti,sead3-cpld", "syscon", "simple-mfd";
1118c2ecf20Sopenharmony_ci		reg = <0x1f000200 0x300>;
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ci		led@10.0 {
1148c2ecf20Sopenharmony_ci			compatible = "register-bit-led";
1158c2ecf20Sopenharmony_ci			offset = <0x10>;
1168c2ecf20Sopenharmony_ci			mask = <0x1>;
1178c2ecf20Sopenharmony_ci			label = "pled0";
1188c2ecf20Sopenharmony_ci		};
1198c2ecf20Sopenharmony_ci		led@10.1 {
1208c2ecf20Sopenharmony_ci			compatible = "register-bit-led";
1218c2ecf20Sopenharmony_ci			offset = <0x10>;
1228c2ecf20Sopenharmony_ci			mask = <0x2>;
1238c2ecf20Sopenharmony_ci			label = "pled1";
1248c2ecf20Sopenharmony_ci		};
1258c2ecf20Sopenharmony_ci		led@10.2 {
1268c2ecf20Sopenharmony_ci			compatible = "register-bit-led";
1278c2ecf20Sopenharmony_ci			offset = <0x10>;
1288c2ecf20Sopenharmony_ci			mask = <0x4>;
1298c2ecf20Sopenharmony_ci			label = "pled2";
1308c2ecf20Sopenharmony_ci		};
1318c2ecf20Sopenharmony_ci		led@10.3 {
1328c2ecf20Sopenharmony_ci			compatible = "register-bit-led";
1338c2ecf20Sopenharmony_ci			offset = <0x10>;
1348c2ecf20Sopenharmony_ci			mask = <0x8>;
1358c2ecf20Sopenharmony_ci			label = "pled3";
1368c2ecf20Sopenharmony_ci		};
1378c2ecf20Sopenharmony_ci		led@10.4 {
1388c2ecf20Sopenharmony_ci			compatible = "register-bit-led";
1398c2ecf20Sopenharmony_ci			offset = <0x10>;
1408c2ecf20Sopenharmony_ci			mask = <0x10>;
1418c2ecf20Sopenharmony_ci			label = "pled4";
1428c2ecf20Sopenharmony_ci		};
1438c2ecf20Sopenharmony_ci		led@10.5 {
1448c2ecf20Sopenharmony_ci			compatible = "register-bit-led";
1458c2ecf20Sopenharmony_ci			offset = <0x10>;
1468c2ecf20Sopenharmony_ci			mask = <0x20>;
1478c2ecf20Sopenharmony_ci			label = "pled5";
1488c2ecf20Sopenharmony_ci		};
1498c2ecf20Sopenharmony_ci		led@10.6 {
1508c2ecf20Sopenharmony_ci			compatible = "register-bit-led";
1518c2ecf20Sopenharmony_ci			offset = <0x10>;
1528c2ecf20Sopenharmony_ci			mask = <0x40>;
1538c2ecf20Sopenharmony_ci			label = "pled6";
1548c2ecf20Sopenharmony_ci		};
1558c2ecf20Sopenharmony_ci		led@10.7 {
1568c2ecf20Sopenharmony_ci			compatible = "register-bit-led";
1578c2ecf20Sopenharmony_ci			offset = <0x10>;
1588c2ecf20Sopenharmony_ci			mask = <0x80>;
1598c2ecf20Sopenharmony_ci			label = "pled7";
1608c2ecf20Sopenharmony_ci		};
1618c2ecf20Sopenharmony_ci
1628c2ecf20Sopenharmony_ci		led@18.0 {
1638c2ecf20Sopenharmony_ci			compatible = "register-bit-led";
1648c2ecf20Sopenharmony_ci			offset = <0x18>;
1658c2ecf20Sopenharmony_ci			mask = <0x1>;
1668c2ecf20Sopenharmony_ci			label = "fled0";
1678c2ecf20Sopenharmony_ci		};
1688c2ecf20Sopenharmony_ci		led@18.1 {
1698c2ecf20Sopenharmony_ci			compatible = "register-bit-led";
1708c2ecf20Sopenharmony_ci			offset = <0x18>;
1718c2ecf20Sopenharmony_ci			mask = <0x2>;
1728c2ecf20Sopenharmony_ci			label = "fled1";
1738c2ecf20Sopenharmony_ci		};
1748c2ecf20Sopenharmony_ci		led@18.2 {
1758c2ecf20Sopenharmony_ci			compatible = "register-bit-led";
1768c2ecf20Sopenharmony_ci			offset = <0x18>;
1778c2ecf20Sopenharmony_ci			mask = <0x4>;
1788c2ecf20Sopenharmony_ci			label = "fled2";
1798c2ecf20Sopenharmony_ci		};
1808c2ecf20Sopenharmony_ci		led@18.3 {
1818c2ecf20Sopenharmony_ci			compatible = "register-bit-led";
1828c2ecf20Sopenharmony_ci			offset = <0x18>;
1838c2ecf20Sopenharmony_ci			mask = <0x8>;
1848c2ecf20Sopenharmony_ci			label = "fled3";
1858c2ecf20Sopenharmony_ci		};
1868c2ecf20Sopenharmony_ci		led@18.4 {
1878c2ecf20Sopenharmony_ci			compatible = "register-bit-led";
1888c2ecf20Sopenharmony_ci			offset = <0x18>;
1898c2ecf20Sopenharmony_ci			mask = <0x10>;
1908c2ecf20Sopenharmony_ci			label = "fled4";
1918c2ecf20Sopenharmony_ci		};
1928c2ecf20Sopenharmony_ci		led@18.5 {
1938c2ecf20Sopenharmony_ci			compatible = "register-bit-led";
1948c2ecf20Sopenharmony_ci			offset = <0x18>;
1958c2ecf20Sopenharmony_ci			mask = <0x20>;
1968c2ecf20Sopenharmony_ci			label = "fled5";
1978c2ecf20Sopenharmony_ci		};
1988c2ecf20Sopenharmony_ci		led@18.6 {
1998c2ecf20Sopenharmony_ci			compatible = "register-bit-led";
2008c2ecf20Sopenharmony_ci			offset = <0x18>;
2018c2ecf20Sopenharmony_ci			mask = <0x40>;
2028c2ecf20Sopenharmony_ci			label = "fled6";
2038c2ecf20Sopenharmony_ci		};
2048c2ecf20Sopenharmony_ci		led@18.7 {
2058c2ecf20Sopenharmony_ci			compatible = "register-bit-led";
2068c2ecf20Sopenharmony_ci			offset = <0x18>;
2078c2ecf20Sopenharmony_ci			mask = <0x80>;
2088c2ecf20Sopenharmony_ci			label = "fled7";
2098c2ecf20Sopenharmony_ci		};
2108c2ecf20Sopenharmony_ci
2118c2ecf20Sopenharmony_ci		lcd@200 {
2128c2ecf20Sopenharmony_ci			compatible = "mti,sead3-lcd";
2138c2ecf20Sopenharmony_ci			offset = <0x200>;
2148c2ecf20Sopenharmony_ci		};
2158c2ecf20Sopenharmony_ci	};
2168c2ecf20Sopenharmony_ci
2178c2ecf20Sopenharmony_ci	/* UART connected to FTDI & miniUSB socket */
2188c2ecf20Sopenharmony_ci	uart0: uart@1f000900 {
2198c2ecf20Sopenharmony_ci		compatible = "ns16550a";
2208c2ecf20Sopenharmony_ci		reg = <0x1f000900 0x20>;
2218c2ecf20Sopenharmony_ci		reg-io-width = <4>;
2228c2ecf20Sopenharmony_ci		reg-shift = <2>;
2238c2ecf20Sopenharmony_ci
2248c2ecf20Sopenharmony_ci		clock-frequency = <14745600>;
2258c2ecf20Sopenharmony_ci
2268c2ecf20Sopenharmony_ci		interrupt-parent = <&gic>;
2278c2ecf20Sopenharmony_ci		interrupts = <GIC_SHARED 3 IRQ_TYPE_LEVEL_HIGH>; /* GIC 3 or CPU 4 */
2288c2ecf20Sopenharmony_ci
2298c2ecf20Sopenharmony_ci		no-loopback-test;
2308c2ecf20Sopenharmony_ci	};
2318c2ecf20Sopenharmony_ci
2328c2ecf20Sopenharmony_ci	/* UART connected to RS232 socket */
2338c2ecf20Sopenharmony_ci	uart1: uart@1f000800 {
2348c2ecf20Sopenharmony_ci		compatible = "ns16550a";
2358c2ecf20Sopenharmony_ci		reg = <0x1f000800 0x20>;
2368c2ecf20Sopenharmony_ci		reg-io-width = <4>;
2378c2ecf20Sopenharmony_ci		reg-shift = <2>;
2388c2ecf20Sopenharmony_ci
2398c2ecf20Sopenharmony_ci		clock-frequency = <14745600>;
2408c2ecf20Sopenharmony_ci
2418c2ecf20Sopenharmony_ci		interrupt-parent = <&gic>;
2428c2ecf20Sopenharmony_ci		interrupts = <GIC_SHARED 2 IRQ_TYPE_LEVEL_HIGH>; /* GIC 2 or CPU 4 */
2438c2ecf20Sopenharmony_ci
2448c2ecf20Sopenharmony_ci		no-loopback-test;
2458c2ecf20Sopenharmony_ci	};
2468c2ecf20Sopenharmony_ci
2478c2ecf20Sopenharmony_ci	eth@1f010000 {
2488c2ecf20Sopenharmony_ci		compatible = "smsc,lan9115";
2498c2ecf20Sopenharmony_ci		reg = <0x1f010000 0x10000>;
2508c2ecf20Sopenharmony_ci		reg-io-width = <4>;
2518c2ecf20Sopenharmony_ci
2528c2ecf20Sopenharmony_ci		interrupt-parent = <&gic>;
2538c2ecf20Sopenharmony_ci		interrupts = <GIC_SHARED 0 IRQ_TYPE_LEVEL_HIGH>; /* GIC 0 or CPU 6 */
2548c2ecf20Sopenharmony_ci
2558c2ecf20Sopenharmony_ci		phy-mode = "mii";
2568c2ecf20Sopenharmony_ci		smsc,irq-push-pull;
2578c2ecf20Sopenharmony_ci		smsc,save-mac-address;
2588c2ecf20Sopenharmony_ci	};
2598c2ecf20Sopenharmony_ci};
260