1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2*2eb4d8dcSEmmanuel Vadot
3*2eb4d8dcSEmmanuel Vadot#include "dt-bindings/clock/bcm6362-clock.h"
4*2eb4d8dcSEmmanuel Vadot#include "dt-bindings/reset/bcm6362-reset.h"
5*2eb4d8dcSEmmanuel Vadot#include "dt-bindings/soc/bcm6362-pm.h"
6*2eb4d8dcSEmmanuel Vadot
7c66ec88fSEmmanuel Vadot/ {
8c66ec88fSEmmanuel Vadot	#address-cells = <1>;
9c66ec88fSEmmanuel Vadot	#size-cells = <1>;
10c66ec88fSEmmanuel Vadot	compatible = "brcm,bcm6362";
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadot	cpus {
13c66ec88fSEmmanuel Vadot		#address-cells = <1>;
14c66ec88fSEmmanuel Vadot		#size-cells = <0>;
15c66ec88fSEmmanuel Vadot
16c66ec88fSEmmanuel Vadot		mips-hpt-frequency = <200000000>;
17c66ec88fSEmmanuel Vadot
18c66ec88fSEmmanuel Vadot		cpu@0 {
19c66ec88fSEmmanuel Vadot			compatible = "brcm,bmips4350";
20c66ec88fSEmmanuel Vadot			device_type = "cpu";
21c66ec88fSEmmanuel Vadot			reg = <0>;
22c66ec88fSEmmanuel Vadot		};
23c66ec88fSEmmanuel Vadot
24c66ec88fSEmmanuel Vadot		cpu@1 {
25c66ec88fSEmmanuel Vadot			compatible = "brcm,bmips4350";
26c66ec88fSEmmanuel Vadot			device_type = "cpu";
27c66ec88fSEmmanuel Vadot			reg = <1>;
28c66ec88fSEmmanuel Vadot		};
29c66ec88fSEmmanuel Vadot	};
30c66ec88fSEmmanuel Vadot
31c66ec88fSEmmanuel Vadot	clocks {
32*2eb4d8dcSEmmanuel Vadot		periph_osc: periph-osc {
33c66ec88fSEmmanuel Vadot			compatible = "fixed-clock";
34c66ec88fSEmmanuel Vadot			#clock-cells = <0>;
35c66ec88fSEmmanuel Vadot			clock-frequency = <50000000>;
36*2eb4d8dcSEmmanuel Vadot			clock-output-names = "periph";
37*2eb4d8dcSEmmanuel Vadot		};
38*2eb4d8dcSEmmanuel Vadot
39*2eb4d8dcSEmmanuel Vadot		hsspi_osc: hsspi-osc {
40*2eb4d8dcSEmmanuel Vadot			compatible = "fixed-clock";
41*2eb4d8dcSEmmanuel Vadot
42*2eb4d8dcSEmmanuel Vadot			#clock-cells = <0>;
43*2eb4d8dcSEmmanuel Vadot
44*2eb4d8dcSEmmanuel Vadot			clock-frequency = <400000000>;
45*2eb4d8dcSEmmanuel Vadot			clock-output-names = "hsspi_osc";
46c66ec88fSEmmanuel Vadot		};
47c66ec88fSEmmanuel Vadot	};
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot	aliases {
50*2eb4d8dcSEmmanuel Vadot		nflash = &nflash;
51c66ec88fSEmmanuel Vadot		serial0 = &uart0;
52c66ec88fSEmmanuel Vadot		serial1 = &uart1;
53*2eb4d8dcSEmmanuel Vadot		spi0 = &lsspi;
54*2eb4d8dcSEmmanuel Vadot		spi1 = &hsspi;
55c66ec88fSEmmanuel Vadot	};
56c66ec88fSEmmanuel Vadot
57c66ec88fSEmmanuel Vadot	cpu_intc: interrupt-controller {
58c66ec88fSEmmanuel Vadot		#address-cells = <0>;
59c66ec88fSEmmanuel Vadot		compatible = "mti,cpu-interrupt-controller";
60c66ec88fSEmmanuel Vadot
61c66ec88fSEmmanuel Vadot		interrupt-controller;
62c66ec88fSEmmanuel Vadot		#interrupt-cells = <1>;
63c66ec88fSEmmanuel Vadot	};
64c66ec88fSEmmanuel Vadot
65c66ec88fSEmmanuel Vadot	ubus {
66c66ec88fSEmmanuel Vadot		#address-cells = <1>;
67c66ec88fSEmmanuel Vadot		#size-cells = <1>;
68c66ec88fSEmmanuel Vadot
69c66ec88fSEmmanuel Vadot		compatible = "simple-bus";
70c66ec88fSEmmanuel Vadot		ranges;
71c66ec88fSEmmanuel Vadot
72*2eb4d8dcSEmmanuel Vadot		periph_clk: clock-controller@10000004 {
73c66ec88fSEmmanuel Vadot			compatible = "brcm,bcm6362-clocks";
74c66ec88fSEmmanuel Vadot			reg = <0x10000004 0x4>;
75c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
76c66ec88fSEmmanuel Vadot		};
77c66ec88fSEmmanuel Vadot
78*2eb4d8dcSEmmanuel Vadot		pll_cntl: syscon@10000008 {
79c66ec88fSEmmanuel Vadot			compatible = "syscon";
80*2eb4d8dcSEmmanuel Vadot			reg = <0x10000008 0x4>;
81c66ec88fSEmmanuel Vadot			native-endian;
82c66ec88fSEmmanuel Vadot
83*2eb4d8dcSEmmanuel Vadot			reboot {
84c66ec88fSEmmanuel Vadot				compatible = "syscon-reboot";
85c66ec88fSEmmanuel Vadot				offset = <0x0>;
86c66ec88fSEmmanuel Vadot				mask = <0x1>;
87c66ec88fSEmmanuel Vadot			};
88*2eb4d8dcSEmmanuel Vadot		};
89c66ec88fSEmmanuel Vadot
905def4c47SEmmanuel Vadot		periph_rst: reset-controller@10000010 {
915def4c47SEmmanuel Vadot			compatible = "brcm,bcm6345-reset";
925def4c47SEmmanuel Vadot			reg = <0x10000010 0x4>;
935def4c47SEmmanuel Vadot			#reset-cells = <1>;
945def4c47SEmmanuel Vadot		};
955def4c47SEmmanuel Vadot
96c66ec88fSEmmanuel Vadot		periph_intc: interrupt-controller@10000020 {
97c66ec88fSEmmanuel Vadot			compatible = "brcm,bcm6345-l1-intc";
98c66ec88fSEmmanuel Vadot			reg = <0x10000020 0x10>,
99c66ec88fSEmmanuel Vadot			      <0x10000030 0x10>;
100c66ec88fSEmmanuel Vadot
101c66ec88fSEmmanuel Vadot			interrupt-controller;
102c66ec88fSEmmanuel Vadot			#interrupt-cells = <1>;
103c66ec88fSEmmanuel Vadot
104c66ec88fSEmmanuel Vadot			interrupt-parent = <&cpu_intc>;
105c66ec88fSEmmanuel Vadot			interrupts = <2>, <3>;
106c66ec88fSEmmanuel Vadot		};
107c66ec88fSEmmanuel Vadot
108*2eb4d8dcSEmmanuel Vadot		wdt: watchdog@1000005c {
109*2eb4d8dcSEmmanuel Vadot			compatible = "brcm,bcm7038-wdt";
110*2eb4d8dcSEmmanuel Vadot			reg = <0x1000005c 0xc>;
111*2eb4d8dcSEmmanuel Vadot
112*2eb4d8dcSEmmanuel Vadot			clocks = <&periph_osc>;
113*2eb4d8dcSEmmanuel Vadot			clock-names = "refclk";
114*2eb4d8dcSEmmanuel Vadot
115*2eb4d8dcSEmmanuel Vadot			timeout-sec = <30>;
116*2eb4d8dcSEmmanuel Vadot		};
117*2eb4d8dcSEmmanuel Vadot
118c66ec88fSEmmanuel Vadot		uart0: serial@10000100 {
119c66ec88fSEmmanuel Vadot			compatible = "brcm,bcm6345-uart";
120c66ec88fSEmmanuel Vadot			reg = <0x10000100 0x18>;
121c66ec88fSEmmanuel Vadot
122c66ec88fSEmmanuel Vadot			interrupt-parent = <&periph_intc>;
123c66ec88fSEmmanuel Vadot			interrupts = <3>;
124c66ec88fSEmmanuel Vadot
125*2eb4d8dcSEmmanuel Vadot			clocks = <&periph_osc>;
126c66ec88fSEmmanuel Vadot			clock-names = "refclk";
127c66ec88fSEmmanuel Vadot
128c66ec88fSEmmanuel Vadot			status = "disabled";
129c66ec88fSEmmanuel Vadot		};
130c66ec88fSEmmanuel Vadot
131c66ec88fSEmmanuel Vadot		uart1: serial@10000120 {
132c66ec88fSEmmanuel Vadot			compatible = "brcm,bcm6345-uart";
133c66ec88fSEmmanuel Vadot			reg = <0x10000120 0x18>;
134c66ec88fSEmmanuel Vadot
135c66ec88fSEmmanuel Vadot			interrupt-parent = <&periph_intc>;
136c66ec88fSEmmanuel Vadot			interrupts = <4>;
137c66ec88fSEmmanuel Vadot
138*2eb4d8dcSEmmanuel Vadot			clocks = <&periph_osc>;
139c66ec88fSEmmanuel Vadot			clock-names = "refclk";
140c66ec88fSEmmanuel Vadot
141c66ec88fSEmmanuel Vadot			status = "disabled";
142c66ec88fSEmmanuel Vadot		};
143c66ec88fSEmmanuel Vadot
144*2eb4d8dcSEmmanuel Vadot		nflash: nand@10000200 {
145*2eb4d8dcSEmmanuel Vadot			#address-cells = <1>;
146*2eb4d8dcSEmmanuel Vadot			#size-cells = <0>;
147*2eb4d8dcSEmmanuel Vadot			compatible = "brcm,nand-bcm6368",
148*2eb4d8dcSEmmanuel Vadot				     "brcm,brcmnand-v2.2",
149*2eb4d8dcSEmmanuel Vadot				     "brcm,brcmnand";
150*2eb4d8dcSEmmanuel Vadot			reg = <0x10000200 0x180>,
151*2eb4d8dcSEmmanuel Vadot			      <0x10000600 0x200>,
152*2eb4d8dcSEmmanuel Vadot			      <0x10000070 0x10>;
153*2eb4d8dcSEmmanuel Vadot			reg-names = "nand",
154*2eb4d8dcSEmmanuel Vadot				    "nand-cache",
155*2eb4d8dcSEmmanuel Vadot				    "nand-int-base";
156*2eb4d8dcSEmmanuel Vadot
157*2eb4d8dcSEmmanuel Vadot			interrupt-parent = <&periph_intc>;
158*2eb4d8dcSEmmanuel Vadot			interrupts = <12>;
159*2eb4d8dcSEmmanuel Vadot
160*2eb4d8dcSEmmanuel Vadot			clocks = <&periph_clk BCM6362_CLK_NAND>;
161*2eb4d8dcSEmmanuel Vadot			clock-names = "nand";
162*2eb4d8dcSEmmanuel Vadot
163*2eb4d8dcSEmmanuel Vadot			status = "disabled";
164*2eb4d8dcSEmmanuel Vadot		};
165*2eb4d8dcSEmmanuel Vadot
166*2eb4d8dcSEmmanuel Vadot		lsspi: spi@10000800 {
167*2eb4d8dcSEmmanuel Vadot			#address-cells = <1>;
168*2eb4d8dcSEmmanuel Vadot			#size-cells = <0>;
169*2eb4d8dcSEmmanuel Vadot			compatible = "brcm,bcm6358-spi";
170*2eb4d8dcSEmmanuel Vadot			reg = <0x10000800 0x70c>;
171*2eb4d8dcSEmmanuel Vadot
172*2eb4d8dcSEmmanuel Vadot			interrupt-parent = <&periph_intc>;
173*2eb4d8dcSEmmanuel Vadot			interrupts = <2>;
174*2eb4d8dcSEmmanuel Vadot
175*2eb4d8dcSEmmanuel Vadot			clocks = <&periph_clk BCM6362_CLK_SPI>;
176*2eb4d8dcSEmmanuel Vadot			clock-names = "spi";
177*2eb4d8dcSEmmanuel Vadot
178*2eb4d8dcSEmmanuel Vadot			resets = <&periph_rst BCM6362_RST_SPI>;
179*2eb4d8dcSEmmanuel Vadot			reset-names = "spi";
180*2eb4d8dcSEmmanuel Vadot
181*2eb4d8dcSEmmanuel Vadot			status = "disabled";
182*2eb4d8dcSEmmanuel Vadot		};
183*2eb4d8dcSEmmanuel Vadot
184*2eb4d8dcSEmmanuel Vadot		hsspi: spi@10001000 {
185*2eb4d8dcSEmmanuel Vadot			#address-cells = <1>;
186*2eb4d8dcSEmmanuel Vadot			#size-cells = <0>;
187*2eb4d8dcSEmmanuel Vadot			compatible = "brcm,bcm6328-hsspi";
188*2eb4d8dcSEmmanuel Vadot			reg = <0x10001000 0x600>;
189*2eb4d8dcSEmmanuel Vadot
190*2eb4d8dcSEmmanuel Vadot			interrupt-parent = <&periph_intc>;
191*2eb4d8dcSEmmanuel Vadot			interrupts = <5>;
192*2eb4d8dcSEmmanuel Vadot
193*2eb4d8dcSEmmanuel Vadot			clocks = <&periph_clk BCM6362_CLK_HSSPI>,
194*2eb4d8dcSEmmanuel Vadot				 <&hsspi_osc>;
195*2eb4d8dcSEmmanuel Vadot			clock-names = "hsspi",
196*2eb4d8dcSEmmanuel Vadot				      "pll";
197*2eb4d8dcSEmmanuel Vadot
198*2eb4d8dcSEmmanuel Vadot			resets = <&periph_rst BCM6362_RST_SPI>;
199*2eb4d8dcSEmmanuel Vadot			reset-names = "hsspi";
200*2eb4d8dcSEmmanuel Vadot
201*2eb4d8dcSEmmanuel Vadot			status = "disabled";
202*2eb4d8dcSEmmanuel Vadot		};
203*2eb4d8dcSEmmanuel Vadot
2046be33864SEmmanuel Vadot		periph_pwr: power-controller@10001848 {
2056be33864SEmmanuel Vadot			compatible = "brcm,bcm6362-power-controller";
2066be33864SEmmanuel Vadot			reg = <0x10001848 0x4>;
2076be33864SEmmanuel Vadot			#power-domain-cells = <1>;
2086be33864SEmmanuel Vadot		};
2096be33864SEmmanuel Vadot
210c66ec88fSEmmanuel Vadot		leds0: led-controller@10001900 {
211c66ec88fSEmmanuel Vadot			#address-cells = <1>;
212c66ec88fSEmmanuel Vadot			#size-cells = <0>;
213c66ec88fSEmmanuel Vadot			compatible = "brcm,bcm6328-leds";
214c66ec88fSEmmanuel Vadot			reg = <0x10001900 0x24>;
215c66ec88fSEmmanuel Vadot
216c66ec88fSEmmanuel Vadot			status = "disabled";
217c66ec88fSEmmanuel Vadot		};
218c66ec88fSEmmanuel Vadot
219c66ec88fSEmmanuel Vadot		ehci: usb@10002500 {
220c66ec88fSEmmanuel Vadot			compatible = "brcm,bcm6362-ehci", "generic-ehci";
221c66ec88fSEmmanuel Vadot			reg = <0x10002500 0x100>;
222c66ec88fSEmmanuel Vadot			big-endian;
223c66ec88fSEmmanuel Vadot
224c66ec88fSEmmanuel Vadot			interrupt-parent = <&periph_intc>;
225c66ec88fSEmmanuel Vadot			interrupts = <10>;
226c66ec88fSEmmanuel Vadot
227*2eb4d8dcSEmmanuel Vadot			phys = <&usbh 0>;
228*2eb4d8dcSEmmanuel Vadot			phy-names = "usb";
229*2eb4d8dcSEmmanuel Vadot
230c66ec88fSEmmanuel Vadot			status = "disabled";
231c66ec88fSEmmanuel Vadot		};
232c66ec88fSEmmanuel Vadot
233c66ec88fSEmmanuel Vadot		ohci: usb@10002600 {
234c66ec88fSEmmanuel Vadot			compatible = "brcm,bcm6362-ohci", "generic-ohci";
235c66ec88fSEmmanuel Vadot			reg = <0x10002600 0x100>;
236c66ec88fSEmmanuel Vadot			big-endian;
237c66ec88fSEmmanuel Vadot			no-big-frame-no;
238c66ec88fSEmmanuel Vadot
239c66ec88fSEmmanuel Vadot			interrupt-parent = <&periph_intc>;
240c66ec88fSEmmanuel Vadot			interrupts = <9>;
241c66ec88fSEmmanuel Vadot
242*2eb4d8dcSEmmanuel Vadot			phys = <&usbh 0>;
243*2eb4d8dcSEmmanuel Vadot			phy-names = "usb";
244*2eb4d8dcSEmmanuel Vadot
245*2eb4d8dcSEmmanuel Vadot			status = "disabled";
246*2eb4d8dcSEmmanuel Vadot		};
247*2eb4d8dcSEmmanuel Vadot
248*2eb4d8dcSEmmanuel Vadot		usbh: usb-phy@10002700 {
249*2eb4d8dcSEmmanuel Vadot			compatible = "brcm,bcm6362-usbh-phy";
250*2eb4d8dcSEmmanuel Vadot			reg = <0x10002700 0x38>;
251*2eb4d8dcSEmmanuel Vadot
252*2eb4d8dcSEmmanuel Vadot			#phy-cells = <1>;
253*2eb4d8dcSEmmanuel Vadot
254*2eb4d8dcSEmmanuel Vadot			clocks = <&periph_clk BCM6362_CLK_USBH>;
255*2eb4d8dcSEmmanuel Vadot			clock-names = "usbh";
256*2eb4d8dcSEmmanuel Vadot
257*2eb4d8dcSEmmanuel Vadot			power-domains = <&periph_pwr BCM6362_POWER_DOMAIN_USBH>;
258*2eb4d8dcSEmmanuel Vadot
259*2eb4d8dcSEmmanuel Vadot			resets = <&periph_rst BCM6362_RST_USBH>;
260*2eb4d8dcSEmmanuel Vadot			reset-names = "usbh";
261*2eb4d8dcSEmmanuel Vadot
262c66ec88fSEmmanuel Vadot			status = "disabled";
263c66ec88fSEmmanuel Vadot		};
264c66ec88fSEmmanuel Vadot	};
265c66ec88fSEmmanuel Vadot};
266