18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci#include <dt-bindings/clock/ath79-clk.h>
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ci/ {
58c2ecf20Sopenharmony_ci	compatible = "qca,ar9132";
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci	#address-cells = <1>;
88c2ecf20Sopenharmony_ci	#size-cells = <1>;
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci	cpus {
118c2ecf20Sopenharmony_ci		#address-cells = <1>;
128c2ecf20Sopenharmony_ci		#size-cells = <0>;
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci		cpu@0 {
158c2ecf20Sopenharmony_ci			device_type = "cpu";
168c2ecf20Sopenharmony_ci			compatible = "mips,mips24Kc";
178c2ecf20Sopenharmony_ci			clocks = <&pll ATH79_CLK_CPU>;
188c2ecf20Sopenharmony_ci			reg = <0>;
198c2ecf20Sopenharmony_ci		};
208c2ecf20Sopenharmony_ci	};
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci	cpuintc: interrupt-controller {
238c2ecf20Sopenharmony_ci		compatible = "qca,ar9132-cpu-intc", "qca,ar7100-cpu-intc";
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci		interrupt-controller;
268c2ecf20Sopenharmony_ci		#interrupt-cells = <1>;
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci		qca,ddr-wb-channel-interrupts = <2>, <3>, <4>, <5>;
298c2ecf20Sopenharmony_ci		qca,ddr-wb-channels = <&ddr_ctrl 3>, <&ddr_ctrl 2>,
308c2ecf20Sopenharmony_ci					<&ddr_ctrl 0>, <&ddr_ctrl 1>;
318c2ecf20Sopenharmony_ci	};
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci	ahb {
348c2ecf20Sopenharmony_ci		compatible = "simple-bus";
358c2ecf20Sopenharmony_ci		ranges;
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci		#address-cells = <1>;
388c2ecf20Sopenharmony_ci		#size-cells = <1>;
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci		interrupt-parent = <&cpuintc>;
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci		apb {
438c2ecf20Sopenharmony_ci			compatible = "simple-bus";
448c2ecf20Sopenharmony_ci			ranges;
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci			#address-cells = <1>;
478c2ecf20Sopenharmony_ci			#size-cells = <1>;
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci			interrupt-parent = <&miscintc>;
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci			ddr_ctrl: memory-controller@18000000 {
528c2ecf20Sopenharmony_ci				compatible = "qca,ar9132-ddr-controller",
538c2ecf20Sopenharmony_ci						"qca,ar7240-ddr-controller";
548c2ecf20Sopenharmony_ci				reg = <0x18000000 0x100>;
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci				#qca,ddr-wb-channel-cells = <1>;
578c2ecf20Sopenharmony_ci			};
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci			uart: uart@18020000 {
608c2ecf20Sopenharmony_ci				compatible = "ns8250";
618c2ecf20Sopenharmony_ci				reg = <0x18020000 0x20>;
628c2ecf20Sopenharmony_ci				interrupts = <3>;
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci				clocks = <&pll ATH79_CLK_AHB>;
658c2ecf20Sopenharmony_ci				clock-names = "uart";
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci				reg-io-width = <4>;
688c2ecf20Sopenharmony_ci				reg-shift = <2>;
698c2ecf20Sopenharmony_ci				no-loopback-test;
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci				status = "disabled";
728c2ecf20Sopenharmony_ci			};
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ci			gpio: gpio@18040000 {
758c2ecf20Sopenharmony_ci				compatible = "qca,ar9132-gpio",
768c2ecf20Sopenharmony_ci						"qca,ar7100-gpio";
778c2ecf20Sopenharmony_ci				reg = <0x18040000 0x30>;
788c2ecf20Sopenharmony_ci				interrupts = <2>;
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci				ngpios = <22>;
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ci				gpio-controller;
838c2ecf20Sopenharmony_ci				#gpio-cells = <2>;
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci				interrupt-controller;
868c2ecf20Sopenharmony_ci				#interrupt-cells = <2>;
878c2ecf20Sopenharmony_ci			};
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_ci			pll: pll-controller@18050000 {
908c2ecf20Sopenharmony_ci				compatible = "qca,ar9132-pll",
918c2ecf20Sopenharmony_ci						"qca,ar9130-pll";
928c2ecf20Sopenharmony_ci				reg = <0x18050000 0x20>;
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci				clock-names = "ref";
958c2ecf20Sopenharmony_ci				/* The board must provides the ref clock */
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci				#clock-cells = <1>;
988c2ecf20Sopenharmony_ci				clock-output-names = "cpu", "ddr", "ahb";
998c2ecf20Sopenharmony_ci			};
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ci			wdt: wdt@18060008 {
1028c2ecf20Sopenharmony_ci				compatible = "qca,ar7130-wdt";
1038c2ecf20Sopenharmony_ci				reg = <0x18060008 0x8>;
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ci				interrupts = <4>;
1068c2ecf20Sopenharmony_ci
1078c2ecf20Sopenharmony_ci				clocks = <&pll ATH79_CLK_AHB>;
1088c2ecf20Sopenharmony_ci				clock-names = "wdt";
1098c2ecf20Sopenharmony_ci			};
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci			miscintc: interrupt-controller@18060010 {
1128c2ecf20Sopenharmony_ci				compatible = "qca,ar9132-misc-intc",
1138c2ecf20Sopenharmony_ci					   "qca,ar7100-misc-intc";
1148c2ecf20Sopenharmony_ci				reg = <0x18060010 0x8>;
1158c2ecf20Sopenharmony_ci
1168c2ecf20Sopenharmony_ci				interrupt-parent = <&cpuintc>;
1178c2ecf20Sopenharmony_ci				interrupts = <6>;
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ci				interrupt-controller;
1208c2ecf20Sopenharmony_ci				#interrupt-cells = <1>;
1218c2ecf20Sopenharmony_ci			};
1228c2ecf20Sopenharmony_ci
1238c2ecf20Sopenharmony_ci			rst: reset-controller@1806001c {
1248c2ecf20Sopenharmony_ci				compatible = "qca,ar9132-reset",
1258c2ecf20Sopenharmony_ci						"qca,ar7100-reset";
1268c2ecf20Sopenharmony_ci				reg = <0x1806001c 0x4>;
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ci				#reset-cells = <1>;
1298c2ecf20Sopenharmony_ci			};
1308c2ecf20Sopenharmony_ci		};
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ci		usb: usb@1b000100 {
1338c2ecf20Sopenharmony_ci			compatible = "qca,ar7100-ehci", "generic-ehci";
1348c2ecf20Sopenharmony_ci			reg = <0x1b000100 0x100>;
1358c2ecf20Sopenharmony_ci
1368c2ecf20Sopenharmony_ci			interrupts = <3>;
1378c2ecf20Sopenharmony_ci			resets = <&rst 5>;
1388c2ecf20Sopenharmony_ci
1398c2ecf20Sopenharmony_ci			has-transaction-translator;
1408c2ecf20Sopenharmony_ci
1418c2ecf20Sopenharmony_ci			phy-names = "usb";
1428c2ecf20Sopenharmony_ci			phys = <&usb_phy>;
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_ci			status = "disabled";
1458c2ecf20Sopenharmony_ci		};
1468c2ecf20Sopenharmony_ci
1478c2ecf20Sopenharmony_ci		spi: spi@1f000000 {
1488c2ecf20Sopenharmony_ci			compatible = "qca,ar9132-spi", "qca,ar7100-spi";
1498c2ecf20Sopenharmony_ci			reg = <0x1f000000 0x10>;
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ci			clocks = <&pll ATH79_CLK_AHB>;
1528c2ecf20Sopenharmony_ci			clock-names = "ahb";
1538c2ecf20Sopenharmony_ci
1548c2ecf20Sopenharmony_ci			status = "disabled";
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ci			#address-cells = <1>;
1578c2ecf20Sopenharmony_ci			#size-cells = <0>;
1588c2ecf20Sopenharmony_ci		};
1598c2ecf20Sopenharmony_ci	};
1608c2ecf20Sopenharmony_ci
1618c2ecf20Sopenharmony_ci	usb_phy: usb-phy {
1628c2ecf20Sopenharmony_ci		compatible = "qca,ar7100-usb-phy";
1638c2ecf20Sopenharmony_ci
1648c2ecf20Sopenharmony_ci		reset-names = "phy", "suspend-override";
1658c2ecf20Sopenharmony_ci		resets = <&rst 4>, <&rst 3>;
1668c2ecf20Sopenharmony_ci
1678c2ecf20Sopenharmony_ci		#phy-cells = <0>;
1688c2ecf20Sopenharmony_ci
1698c2ecf20Sopenharmony_ci		status = "disabled";
1708c2ecf20Sopenharmony_ci	};
1718c2ecf20Sopenharmony_ci};
172