xref: /freebsd-src/sys/contrib/device-tree/src/mips/qca/ar9132.dtsi (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2*c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/ath79-clk.h>
3*c66ec88fSEmmanuel Vadot
4*c66ec88fSEmmanuel Vadot/ {
5*c66ec88fSEmmanuel Vadot	compatible = "qca,ar9132";
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel Vadot	#address-cells = <1>;
8*c66ec88fSEmmanuel Vadot	#size-cells = <1>;
9*c66ec88fSEmmanuel Vadot
10*c66ec88fSEmmanuel Vadot	cpus {
11*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
12*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
13*c66ec88fSEmmanuel Vadot
14*c66ec88fSEmmanuel Vadot		cpu@0 {
15*c66ec88fSEmmanuel Vadot			device_type = "cpu";
16*c66ec88fSEmmanuel Vadot			compatible = "mips,mips24Kc";
17*c66ec88fSEmmanuel Vadot			clocks = <&pll ATH79_CLK_CPU>;
18*c66ec88fSEmmanuel Vadot			reg = <0>;
19*c66ec88fSEmmanuel Vadot		};
20*c66ec88fSEmmanuel Vadot	};
21*c66ec88fSEmmanuel Vadot
22*c66ec88fSEmmanuel Vadot	cpuintc: interrupt-controller {
23*c66ec88fSEmmanuel Vadot		compatible = "qca,ar9132-cpu-intc", "qca,ar7100-cpu-intc";
24*c66ec88fSEmmanuel Vadot
25*c66ec88fSEmmanuel Vadot		interrupt-controller;
26*c66ec88fSEmmanuel Vadot		#interrupt-cells = <1>;
27*c66ec88fSEmmanuel Vadot
28*c66ec88fSEmmanuel Vadot		qca,ddr-wb-channel-interrupts = <2>, <3>, <4>, <5>;
29*c66ec88fSEmmanuel Vadot		qca,ddr-wb-channels = <&ddr_ctrl 3>, <&ddr_ctrl 2>,
30*c66ec88fSEmmanuel Vadot					<&ddr_ctrl 0>, <&ddr_ctrl 1>;
31*c66ec88fSEmmanuel Vadot	};
32*c66ec88fSEmmanuel Vadot
33*c66ec88fSEmmanuel Vadot	ahb {
34*c66ec88fSEmmanuel Vadot		compatible = "simple-bus";
35*c66ec88fSEmmanuel Vadot		ranges;
36*c66ec88fSEmmanuel Vadot
37*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
38*c66ec88fSEmmanuel Vadot		#size-cells = <1>;
39*c66ec88fSEmmanuel Vadot
40*c66ec88fSEmmanuel Vadot		interrupt-parent = <&cpuintc>;
41*c66ec88fSEmmanuel Vadot
42*c66ec88fSEmmanuel Vadot		apb {
43*c66ec88fSEmmanuel Vadot			compatible = "simple-bus";
44*c66ec88fSEmmanuel Vadot			ranges;
45*c66ec88fSEmmanuel Vadot
46*c66ec88fSEmmanuel Vadot			#address-cells = <1>;
47*c66ec88fSEmmanuel Vadot			#size-cells = <1>;
48*c66ec88fSEmmanuel Vadot
49*c66ec88fSEmmanuel Vadot			interrupt-parent = <&miscintc>;
50*c66ec88fSEmmanuel Vadot
51*c66ec88fSEmmanuel Vadot			ddr_ctrl: memory-controller@18000000 {
52*c66ec88fSEmmanuel Vadot				compatible = "qca,ar9132-ddr-controller",
53*c66ec88fSEmmanuel Vadot						"qca,ar7240-ddr-controller";
54*c66ec88fSEmmanuel Vadot				reg = <0x18000000 0x100>;
55*c66ec88fSEmmanuel Vadot
56*c66ec88fSEmmanuel Vadot				#qca,ddr-wb-channel-cells = <1>;
57*c66ec88fSEmmanuel Vadot			};
58*c66ec88fSEmmanuel Vadot
59*c66ec88fSEmmanuel Vadot			uart: uart@18020000 {
60*c66ec88fSEmmanuel Vadot				compatible = "ns8250";
61*c66ec88fSEmmanuel Vadot				reg = <0x18020000 0x20>;
62*c66ec88fSEmmanuel Vadot				interrupts = <3>;
63*c66ec88fSEmmanuel Vadot
64*c66ec88fSEmmanuel Vadot				clocks = <&pll ATH79_CLK_AHB>;
65*c66ec88fSEmmanuel Vadot				clock-names = "uart";
66*c66ec88fSEmmanuel Vadot
67*c66ec88fSEmmanuel Vadot				reg-io-width = <4>;
68*c66ec88fSEmmanuel Vadot				reg-shift = <2>;
69*c66ec88fSEmmanuel Vadot				no-loopback-test;
70*c66ec88fSEmmanuel Vadot
71*c66ec88fSEmmanuel Vadot				status = "disabled";
72*c66ec88fSEmmanuel Vadot			};
73*c66ec88fSEmmanuel Vadot
74*c66ec88fSEmmanuel Vadot			gpio: gpio@18040000 {
75*c66ec88fSEmmanuel Vadot				compatible = "qca,ar9132-gpio",
76*c66ec88fSEmmanuel Vadot						"qca,ar7100-gpio";
77*c66ec88fSEmmanuel Vadot				reg = <0x18040000 0x30>;
78*c66ec88fSEmmanuel Vadot				interrupts = <2>;
79*c66ec88fSEmmanuel Vadot
80*c66ec88fSEmmanuel Vadot				ngpios = <22>;
81*c66ec88fSEmmanuel Vadot
82*c66ec88fSEmmanuel Vadot				gpio-controller;
83*c66ec88fSEmmanuel Vadot				#gpio-cells = <2>;
84*c66ec88fSEmmanuel Vadot
85*c66ec88fSEmmanuel Vadot				interrupt-controller;
86*c66ec88fSEmmanuel Vadot				#interrupt-cells = <2>;
87*c66ec88fSEmmanuel Vadot			};
88*c66ec88fSEmmanuel Vadot
89*c66ec88fSEmmanuel Vadot			pll: pll-controller@18050000 {
90*c66ec88fSEmmanuel Vadot				compatible = "qca,ar9132-pll",
91*c66ec88fSEmmanuel Vadot						"qca,ar9130-pll";
92*c66ec88fSEmmanuel Vadot				reg = <0x18050000 0x20>;
93*c66ec88fSEmmanuel Vadot
94*c66ec88fSEmmanuel Vadot				clock-names = "ref";
95*c66ec88fSEmmanuel Vadot				/* The board must provides the ref clock */
96*c66ec88fSEmmanuel Vadot
97*c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
98*c66ec88fSEmmanuel Vadot				clock-output-names = "cpu", "ddr", "ahb";
99*c66ec88fSEmmanuel Vadot			};
100*c66ec88fSEmmanuel Vadot
101*c66ec88fSEmmanuel Vadot			wdt: wdt@18060008 {
102*c66ec88fSEmmanuel Vadot				compatible = "qca,ar7130-wdt";
103*c66ec88fSEmmanuel Vadot				reg = <0x18060008 0x8>;
104*c66ec88fSEmmanuel Vadot
105*c66ec88fSEmmanuel Vadot				interrupts = <4>;
106*c66ec88fSEmmanuel Vadot
107*c66ec88fSEmmanuel Vadot				clocks = <&pll ATH79_CLK_AHB>;
108*c66ec88fSEmmanuel Vadot				clock-names = "wdt";
109*c66ec88fSEmmanuel Vadot			};
110*c66ec88fSEmmanuel Vadot
111*c66ec88fSEmmanuel Vadot			miscintc: interrupt-controller@18060010 {
112*c66ec88fSEmmanuel Vadot				compatible = "qca,ar9132-misc-intc",
113*c66ec88fSEmmanuel Vadot					   "qca,ar7100-misc-intc";
114*c66ec88fSEmmanuel Vadot				reg = <0x18060010 0x8>;
115*c66ec88fSEmmanuel Vadot
116*c66ec88fSEmmanuel Vadot				interrupt-parent = <&cpuintc>;
117*c66ec88fSEmmanuel Vadot				interrupts = <6>;
118*c66ec88fSEmmanuel Vadot
119*c66ec88fSEmmanuel Vadot				interrupt-controller;
120*c66ec88fSEmmanuel Vadot				#interrupt-cells = <1>;
121*c66ec88fSEmmanuel Vadot			};
122*c66ec88fSEmmanuel Vadot
123*c66ec88fSEmmanuel Vadot			rst: reset-controller@1806001c {
124*c66ec88fSEmmanuel Vadot				compatible = "qca,ar9132-reset",
125*c66ec88fSEmmanuel Vadot						"qca,ar7100-reset";
126*c66ec88fSEmmanuel Vadot				reg = <0x1806001c 0x4>;
127*c66ec88fSEmmanuel Vadot
128*c66ec88fSEmmanuel Vadot				#reset-cells = <1>;
129*c66ec88fSEmmanuel Vadot			};
130*c66ec88fSEmmanuel Vadot		};
131*c66ec88fSEmmanuel Vadot
132*c66ec88fSEmmanuel Vadot		usb: usb@1b000100 {
133*c66ec88fSEmmanuel Vadot			compatible = "qca,ar7100-ehci", "generic-ehci";
134*c66ec88fSEmmanuel Vadot			reg = <0x1b000100 0x100>;
135*c66ec88fSEmmanuel Vadot
136*c66ec88fSEmmanuel Vadot			interrupts = <3>;
137*c66ec88fSEmmanuel Vadot			resets = <&rst 5>;
138*c66ec88fSEmmanuel Vadot
139*c66ec88fSEmmanuel Vadot			has-transaction-translator;
140*c66ec88fSEmmanuel Vadot
141*c66ec88fSEmmanuel Vadot			phy-names = "usb";
142*c66ec88fSEmmanuel Vadot			phys = <&usb_phy>;
143*c66ec88fSEmmanuel Vadot
144*c66ec88fSEmmanuel Vadot			status = "disabled";
145*c66ec88fSEmmanuel Vadot		};
146*c66ec88fSEmmanuel Vadot
147*c66ec88fSEmmanuel Vadot		spi: spi@1f000000 {
148*c66ec88fSEmmanuel Vadot			compatible = "qca,ar9132-spi", "qca,ar7100-spi";
149*c66ec88fSEmmanuel Vadot			reg = <0x1f000000 0x10>;
150*c66ec88fSEmmanuel Vadot
151*c66ec88fSEmmanuel Vadot			clocks = <&pll ATH79_CLK_AHB>;
152*c66ec88fSEmmanuel Vadot			clock-names = "ahb";
153*c66ec88fSEmmanuel Vadot
154*c66ec88fSEmmanuel Vadot			status = "disabled";
155*c66ec88fSEmmanuel Vadot
156*c66ec88fSEmmanuel Vadot			#address-cells = <1>;
157*c66ec88fSEmmanuel Vadot			#size-cells = <0>;
158*c66ec88fSEmmanuel Vadot		};
159*c66ec88fSEmmanuel Vadot	};
160*c66ec88fSEmmanuel Vadot
161*c66ec88fSEmmanuel Vadot	usb_phy: usb-phy {
162*c66ec88fSEmmanuel Vadot		compatible = "qca,ar7100-usb-phy";
163*c66ec88fSEmmanuel Vadot
164*c66ec88fSEmmanuel Vadot		reset-names = "phy", "suspend-override";
165*c66ec88fSEmmanuel Vadot		resets = <&rst 4>, <&rst 3>;
166*c66ec88fSEmmanuel Vadot
167*c66ec88fSEmmanuel Vadot		#phy-cells = <0>;
168*c66ec88fSEmmanuel Vadot
169*c66ec88fSEmmanuel Vadot		status = "disabled";
170*c66ec88fSEmmanuel Vadot	};
171*c66ec88fSEmmanuel Vadot};
172