xref: /openbmc/linux/arch/mips/boot/dts/qca/ar9331.dtsi (revision 43b46e6b)
1b2441318SGreg Kroah-Hartman// SPDX-License-Identifier: GPL-2.0
21e6a3492SAntony Pavlov#include <dt-bindings/clock/ath79-clk.h>
31e6a3492SAntony Pavlov
41e6a3492SAntony Pavlov/ {
51e6a3492SAntony Pavlov	compatible = "qca,ar9331";
61e6a3492SAntony Pavlov
71e6a3492SAntony Pavlov	#address-cells = <1>;
81e6a3492SAntony Pavlov	#size-cells = <1>;
91e6a3492SAntony Pavlov
101e6a3492SAntony Pavlov	cpus {
111e6a3492SAntony Pavlov		#address-cells = <1>;
121e6a3492SAntony Pavlov		#size-cells = <0>;
131e6a3492SAntony Pavlov
141e6a3492SAntony Pavlov		cpu@0 {
151e6a3492SAntony Pavlov			device_type = "cpu";
161e6a3492SAntony Pavlov			compatible = "mips,mips24Kc";
171e6a3492SAntony Pavlov			clocks = <&pll ATH79_CLK_CPU>;
181e6a3492SAntony Pavlov			reg = <0>;
191e6a3492SAntony Pavlov		};
201e6a3492SAntony Pavlov	};
211e6a3492SAntony Pavlov
221e6a3492SAntony Pavlov	cpuintc: interrupt-controller {
231e6a3492SAntony Pavlov		compatible = "qca,ar7100-cpu-intc";
241e6a3492SAntony Pavlov
251e6a3492SAntony Pavlov		interrupt-controller;
261e6a3492SAntony Pavlov		#interrupt-cells = <1>;
271e6a3492SAntony Pavlov
281e6a3492SAntony Pavlov		qca,ddr-wb-channel-interrupts = <2>, <3>;
291e6a3492SAntony Pavlov		qca,ddr-wb-channels = <&ddr_ctrl 3>, <&ddr_ctrl 2>;
301e6a3492SAntony Pavlov	};
311e6a3492SAntony Pavlov
321e6a3492SAntony Pavlov	ref: ref {
331e6a3492SAntony Pavlov		compatible = "fixed-clock";
341e6a3492SAntony Pavlov		#clock-cells = <0>;
351e6a3492SAntony Pavlov	};
361e6a3492SAntony Pavlov
371e6a3492SAntony Pavlov	ahb {
381e6a3492SAntony Pavlov		compatible = "simple-bus";
391e6a3492SAntony Pavlov		ranges;
401e6a3492SAntony Pavlov
411e6a3492SAntony Pavlov		#address-cells = <1>;
421e6a3492SAntony Pavlov		#size-cells = <1>;
431e6a3492SAntony Pavlov
441e6a3492SAntony Pavlov		interrupt-parent = <&cpuintc>;
451e6a3492SAntony Pavlov
461e6a3492SAntony Pavlov		apb {
471e6a3492SAntony Pavlov			compatible = "simple-bus";
481e6a3492SAntony Pavlov			ranges;
491e6a3492SAntony Pavlov
501e6a3492SAntony Pavlov			#address-cells = <1>;
511e6a3492SAntony Pavlov			#size-cells = <1>;
521e6a3492SAntony Pavlov
531e6a3492SAntony Pavlov			interrupt-parent = <&miscintc>;
541e6a3492SAntony Pavlov
551e6a3492SAntony Pavlov			ddr_ctrl: memory-controller@18000000 {
561e6a3492SAntony Pavlov				compatible = "qca,ar7240-ddr-controller";
571e6a3492SAntony Pavlov				reg = <0x18000000 0x100>;
581e6a3492SAntony Pavlov
591e6a3492SAntony Pavlov				#qca,ddr-wb-channel-cells = <1>;
601e6a3492SAntony Pavlov			};
611e6a3492SAntony Pavlov
62e795688eSOleksij Rempel			uart: serial@18020000 {
631e6a3492SAntony Pavlov				compatible = "qca,ar9330-uart";
641e6a3492SAntony Pavlov				reg = <0x18020000 0x14>;
651e6a3492SAntony Pavlov
661e6a3492SAntony Pavlov				interrupts = <3>;
671e6a3492SAntony Pavlov
681e6a3492SAntony Pavlov				clocks = <&ref>;
691e6a3492SAntony Pavlov				clock-names = "uart";
701e6a3492SAntony Pavlov
711e6a3492SAntony Pavlov				status = "disabled";
721e6a3492SAntony Pavlov			};
731e6a3492SAntony Pavlov
741e6a3492SAntony Pavlov			gpio: gpio@18040000 {
751e6a3492SAntony Pavlov				compatible = "qca,ar7100-gpio";
761e6a3492SAntony Pavlov				reg = <0x18040000 0x34>;
771e6a3492SAntony Pavlov				interrupts = <2>;
781e6a3492SAntony Pavlov
791e6a3492SAntony Pavlov				ngpios = <30>;
801e6a3492SAntony Pavlov
811e6a3492SAntony Pavlov				gpio-controller;
821e6a3492SAntony Pavlov				#gpio-cells = <2>;
831e6a3492SAntony Pavlov
841e6a3492SAntony Pavlov				interrupt-controller;
851e6a3492SAntony Pavlov				#interrupt-cells = <2>;
861e6a3492SAntony Pavlov
871e6a3492SAntony Pavlov				status = "disabled";
881e6a3492SAntony Pavlov			};
891e6a3492SAntony Pavlov
901e6a3492SAntony Pavlov			pll: pll-controller@18050000 {
911e6a3492SAntony Pavlov				compatible = "qca,ar9330-pll";
921e6a3492SAntony Pavlov				reg = <0x18050000 0x100>;
931e6a3492SAntony Pavlov
941e6a3492SAntony Pavlov				clocks = <&ref>;
951e6a3492SAntony Pavlov				clock-names = "ref";
961e6a3492SAntony Pavlov
971e6a3492SAntony Pavlov				#clock-cells = <1>;
981e6a3492SAntony Pavlov			};
991e6a3492SAntony Pavlov
1001e6a3492SAntony Pavlov			miscintc: interrupt-controller@18060010 {
1011e6a3492SAntony Pavlov				compatible = "qca,ar7240-misc-intc";
1020889d07fSOleksij Rempel				reg = <0x18060010 0x8>;
1031e6a3492SAntony Pavlov
1041e6a3492SAntony Pavlov				interrupt-parent = <&cpuintc>;
1051e6a3492SAntony Pavlov				interrupts = <6>;
1061e6a3492SAntony Pavlov
1071e6a3492SAntony Pavlov				interrupt-controller;
1081e6a3492SAntony Pavlov				#interrupt-cells = <1>;
1091e6a3492SAntony Pavlov			};
1101e6a3492SAntony Pavlov
1111e6a3492SAntony Pavlov			rst: reset-controller@1806001c {
1121e6a3492SAntony Pavlov				compatible = "qca,ar7100-reset";
1131e6a3492SAntony Pavlov				reg = <0x1806001c 0x4>;
1141e6a3492SAntony Pavlov
1151e6a3492SAntony Pavlov				#reset-cells = <1>;
1161e6a3492SAntony Pavlov			};
1171e6a3492SAntony Pavlov		};
1181e6a3492SAntony Pavlov
1197ff836f0SOleksij Rempel		eth0: ethernet@19000000 {
1207ff836f0SOleksij Rempel			compatible = "qca,ar9330-eth";
1217ff836f0SOleksij Rempel			reg = <0x19000000 0x200>;
1227ff836f0SOleksij Rempel			interrupts = <4>;
1237ff836f0SOleksij Rempel
1247ff836f0SOleksij Rempel			resets = <&rst 9>, <&rst 22>;
1257ff836f0SOleksij Rempel			reset-names = "mac", "mdio";
1267ff836f0SOleksij Rempel			clocks = <&pll ATH79_CLK_AHB>, <&pll ATH79_CLK_AHB>;
1277ff836f0SOleksij Rempel			clock-names = "eth", "mdio";
1287ff836f0SOleksij Rempel
1294eb7ae7aSOleksij Rempel			phy-mode = "mii";
1304eb7ae7aSOleksij Rempel			phy-handle = <&phy_port4>;
1314eb7ae7aSOleksij Rempel
1327ff836f0SOleksij Rempel			status = "disabled";
1337ff836f0SOleksij Rempel		};
1347ff836f0SOleksij Rempel
1357ff836f0SOleksij Rempel		eth1: ethernet@1a000000 {
1367ff836f0SOleksij Rempel			compatible = "qca,ar9330-eth";
1377ff836f0SOleksij Rempel			reg = <0x1a000000 0x200>;
1387ff836f0SOleksij Rempel			interrupts = <5>;
1397ff836f0SOleksij Rempel			resets = <&rst 13>, <&rst 23>;
1407ff836f0SOleksij Rempel			reset-names = "mac", "mdio";
1417ff836f0SOleksij Rempel			clocks = <&pll ATH79_CLK_AHB>, <&pll ATH79_CLK_AHB>;
1427ff836f0SOleksij Rempel			clock-names = "eth", "mdio";
1437ff836f0SOleksij Rempel
1444eb7ae7aSOleksij Rempel			phy-mode = "gmii";
1454eb7ae7aSOleksij Rempel
1467ff836f0SOleksij Rempel			status = "disabled";
1474eb7ae7aSOleksij Rempel
1484eb7ae7aSOleksij Rempel			fixed-link {
1494eb7ae7aSOleksij Rempel				speed = <1000>;
1504eb7ae7aSOleksij Rempel				full-duplex;
151*69e22d9fSOleksij Rempel				pause;
1524eb7ae7aSOleksij Rempel			};
1534eb7ae7aSOleksij Rempel
1544eb7ae7aSOleksij Rempel			mdio {
1554eb7ae7aSOleksij Rempel				#address-cells = <1>;
1564eb7ae7aSOleksij Rempel				#size-cells = <0>;
1574eb7ae7aSOleksij Rempel
1584eb7ae7aSOleksij Rempel				switch10: switch@10 {
1594eb7ae7aSOleksij Rempel					#address-cells = <1>;
1604eb7ae7aSOleksij Rempel					#size-cells = <0>;
1614eb7ae7aSOleksij Rempel
1624eb7ae7aSOleksij Rempel					compatible = "qca,ar9331-switch";
1634eb7ae7aSOleksij Rempel					reg = <0x10>;
1644eb7ae7aSOleksij Rempel					resets = <&rst 8>;
1654eb7ae7aSOleksij Rempel					reset-names = "switch";
1664eb7ae7aSOleksij Rempel
1674eb7ae7aSOleksij Rempel					interrupt-parent = <&miscintc>;
1684eb7ae7aSOleksij Rempel					interrupts = <12>;
1694eb7ae7aSOleksij Rempel
1704eb7ae7aSOleksij Rempel					interrupt-controller;
1714eb7ae7aSOleksij Rempel					#interrupt-cells = <1>;
1724eb7ae7aSOleksij Rempel
1734eb7ae7aSOleksij Rempel					ports {
1744eb7ae7aSOleksij Rempel						#address-cells = <1>;
1754eb7ae7aSOleksij Rempel						#size-cells = <0>;
1764eb7ae7aSOleksij Rempel
1774eb7ae7aSOleksij Rempel						switch_port0: port@0 {
1784eb7ae7aSOleksij Rempel							reg = <0x0>;
1794eb7ae7aSOleksij Rempel							ethernet = <&eth1>;
1804eb7ae7aSOleksij Rempel
1814eb7ae7aSOleksij Rempel							phy-mode = "gmii";
1824eb7ae7aSOleksij Rempel
1834eb7ae7aSOleksij Rempel							fixed-link {
1844eb7ae7aSOleksij Rempel								speed = <1000>;
1854eb7ae7aSOleksij Rempel								full-duplex;
186*69e22d9fSOleksij Rempel								pause;
1874eb7ae7aSOleksij Rempel							};
1884eb7ae7aSOleksij Rempel						};
1894eb7ae7aSOleksij Rempel
1904eb7ae7aSOleksij Rempel						switch_port1: port@1 {
1914eb7ae7aSOleksij Rempel							reg = <0x1>;
1924eb7ae7aSOleksij Rempel							phy-handle = <&phy_port0>;
1934eb7ae7aSOleksij Rempel							phy-mode = "internal";
1944eb7ae7aSOleksij Rempel
1954eb7ae7aSOleksij Rempel							status = "disabled";
1964eb7ae7aSOleksij Rempel						};
1974eb7ae7aSOleksij Rempel
1984eb7ae7aSOleksij Rempel						switch_port2: port@2 {
1994eb7ae7aSOleksij Rempel							reg = <0x2>;
2004eb7ae7aSOleksij Rempel							phy-handle = <&phy_port1>;
2014eb7ae7aSOleksij Rempel							phy-mode = "internal";
2024eb7ae7aSOleksij Rempel
2034eb7ae7aSOleksij Rempel							status = "disabled";
2044eb7ae7aSOleksij Rempel						};
2054eb7ae7aSOleksij Rempel
2064eb7ae7aSOleksij Rempel						switch_port3: port@3 {
2074eb7ae7aSOleksij Rempel							reg = <0x3>;
2084eb7ae7aSOleksij Rempel							phy-handle = <&phy_port2>;
2094eb7ae7aSOleksij Rempel							phy-mode = "internal";
2104eb7ae7aSOleksij Rempel
2114eb7ae7aSOleksij Rempel							status = "disabled";
2124eb7ae7aSOleksij Rempel						};
2134eb7ae7aSOleksij Rempel
2144eb7ae7aSOleksij Rempel						switch_port4: port@4 {
2154eb7ae7aSOleksij Rempel							reg = <0x4>;
2164eb7ae7aSOleksij Rempel							phy-handle = <&phy_port3>;
2174eb7ae7aSOleksij Rempel							phy-mode = "internal";
2184eb7ae7aSOleksij Rempel
2194eb7ae7aSOleksij Rempel							status = "disabled";
2204eb7ae7aSOleksij Rempel						};
2214eb7ae7aSOleksij Rempel					};
2224eb7ae7aSOleksij Rempel
2234eb7ae7aSOleksij Rempel					mdio {
2244eb7ae7aSOleksij Rempel						#address-cells = <1>;
2254eb7ae7aSOleksij Rempel						#size-cells = <0>;
2264eb7ae7aSOleksij Rempel
2274eb7ae7aSOleksij Rempel						interrupt-parent = <&switch10>;
2284eb7ae7aSOleksij Rempel
2294eb7ae7aSOleksij Rempel						phy_port0: phy@0 {
2304eb7ae7aSOleksij Rempel							reg = <0x0>;
2314eb7ae7aSOleksij Rempel							interrupts = <0>;
2324eb7ae7aSOleksij Rempel							status = "disabled";
2334eb7ae7aSOleksij Rempel						};
2344eb7ae7aSOleksij Rempel
2354eb7ae7aSOleksij Rempel						phy_port1: phy@1 {
2364eb7ae7aSOleksij Rempel							reg = <0x1>;
2374eb7ae7aSOleksij Rempel							interrupts = <0>;
2384eb7ae7aSOleksij Rempel							status = "disabled";
2394eb7ae7aSOleksij Rempel						};
2404eb7ae7aSOleksij Rempel
2414eb7ae7aSOleksij Rempel						phy_port2: phy@2 {
2424eb7ae7aSOleksij Rempel							reg = <0x2>;
2434eb7ae7aSOleksij Rempel							interrupts = <0>;
2444eb7ae7aSOleksij Rempel							status = "disabled";
2454eb7ae7aSOleksij Rempel						};
2464eb7ae7aSOleksij Rempel
2474eb7ae7aSOleksij Rempel						phy_port3: phy@3 {
2484eb7ae7aSOleksij Rempel							reg = <0x3>;
2494eb7ae7aSOleksij Rempel							interrupts = <0>;
2504eb7ae7aSOleksij Rempel							status = "disabled";
2514eb7ae7aSOleksij Rempel						};
2524eb7ae7aSOleksij Rempel
2534eb7ae7aSOleksij Rempel						phy_port4: phy@4 {
2544eb7ae7aSOleksij Rempel							reg = <0x4>;
2554eb7ae7aSOleksij Rempel							interrupts = <0>;
2564eb7ae7aSOleksij Rempel							status = "disabled";
2574eb7ae7aSOleksij Rempel						};
2584eb7ae7aSOleksij Rempel					};
2594eb7ae7aSOleksij Rempel				};
2604eb7ae7aSOleksij Rempel			};
2617ff836f0SOleksij Rempel		};
2627ff836f0SOleksij Rempel
2631e6a3492SAntony Pavlov		usb: usb@1b000100 {
2641e6a3492SAntony Pavlov			compatible = "chipidea,usb2";
2651e6a3492SAntony Pavlov			reg = <0x1b000000 0x200>;
2661e6a3492SAntony Pavlov
2671e6a3492SAntony Pavlov			interrupts = <3>;
2681e6a3492SAntony Pavlov			resets = <&rst 5>;
2691e6a3492SAntony Pavlov
2701e6a3492SAntony Pavlov			phy-names = "usb-phy";
2711e6a3492SAntony Pavlov			phys = <&usb_phy>;
2721e6a3492SAntony Pavlov
2731e6a3492SAntony Pavlov			status = "disabled";
2741e6a3492SAntony Pavlov		};
2751e6a3492SAntony Pavlov
2761e6a3492SAntony Pavlov		spi: spi@1f000000 {
2771e6a3492SAntony Pavlov			compatible = "qca,ar7100-spi";
2781e6a3492SAntony Pavlov			reg = <0x1f000000 0x10>;
2791e6a3492SAntony Pavlov
2801e6a3492SAntony Pavlov			clocks = <&pll ATH79_CLK_AHB>;
2811e6a3492SAntony Pavlov			clock-names = "ahb";
2821e6a3492SAntony Pavlov
2831e6a3492SAntony Pavlov			#address-cells = <1>;
2841e6a3492SAntony Pavlov			#size-cells = <0>;
2851e6a3492SAntony Pavlov
2861e6a3492SAntony Pavlov			status = "disabled";
2871e6a3492SAntony Pavlov		};
2881e6a3492SAntony Pavlov	};
2891e6a3492SAntony Pavlov
2901e6a3492SAntony Pavlov	usb_phy: usb-phy {
2911e6a3492SAntony Pavlov		compatible = "qca,ar7100-usb-phy";
2921e6a3492SAntony Pavlov
2935bdd5fbbSAlban Bedel		reset-names = "phy", "suspend-override";
2941e6a3492SAntony Pavlov		resets = <&rst 4>, <&rst 3>;
2951e6a3492SAntony Pavlov
2961e6a3492SAntony Pavlov		#phy-cells = <0>;
2971e6a3492SAntony Pavlov
2981e6a3492SAntony Pavlov		status = "disabled";
2991e6a3492SAntony Pavlov	};
3001e6a3492SAntony Pavlov};
301