1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
4 */
5
6#include <dt-bindings/clock/bcm6368-clock.h>
7#include <dt-bindings/dma/bcm6368-dma.h>
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/reset/bcm6368-reset.h>
10#include "skeleton.dtsi"
11
12/ {
13	compatible = "brcm,bcm6368";
14
15	aliases {
16		spi0 = &spi;
17	};
18
19	cpus {
20		reg = <0x10000000 0x4>;
21		#address-cells = <1>;
22		#size-cells = <0>;
23		u-boot,dm-pre-reloc;
24
25		cpu@0 {
26			compatible = "brcm,bcm6368-cpu", "mips,mips4Kc";
27			device_type = "cpu";
28			reg = <0>;
29			u-boot,dm-pre-reloc;
30		};
31
32		cpu@1 {
33			compatible = "brcm,bcm6368-cpu", "mips,mips4Kc";
34			device_type = "cpu";
35			reg = <1>;
36			u-boot,dm-pre-reloc;
37		};
38	};
39
40	clocks {
41		compatible = "simple-bus";
42		#address-cells = <1>;
43		#size-cells = <1>;
44		u-boot,dm-pre-reloc;
45
46		periph_osc: periph-osc {
47			compatible = "fixed-clock";
48			#clock-cells = <0>;
49			clock-frequency = <50000000>;
50			u-boot,dm-pre-reloc;
51		};
52
53		periph_clk: periph-clk {
54			compatible = "brcm,bcm6345-clk";
55			reg = <0x10000004 0x4>;
56			#clock-cells = <1>;
57		};
58	};
59
60	pflash: nor@18000000 {
61		compatible = "cfi-flash";
62		reg = <0x18000000 0x2000000>;
63		bank-width = <2>;
64		#address-cells = <1>;
65		#size-cells = <1>;
66
67		status = "disabled";
68	};
69
70	ubus {
71		compatible = "simple-bus";
72		#address-cells = <1>;
73		#size-cells = <1>;
74		u-boot,dm-pre-reloc;
75
76		pll_cntl: syscon@10000008 {
77			compatible = "syscon";
78			reg = <0x10000008 0x4>;
79		};
80
81		syscon-reboot {
82			compatible = "syscon-reboot";
83			regmap = <&pll_cntl>;
84			offset = <0x0>;
85			mask = <0x1>;
86		};
87
88		periph_rst: reset-controller@10000010 {
89			compatible = "brcm,bcm6345-reset";
90			reg = <0x10000010 0x4>;
91			#reset-cells = <1>;
92		};
93
94		wdt: watchdog@1000005c {
95			compatible = "brcm,bcm6345-wdt";
96			reg = <0x1000005c 0xc>;
97			clocks = <&periph_osc>;
98		};
99
100		wdt-reboot {
101			compatible = "wdt-reboot";
102			wdt = <&wdt>;
103		};
104
105		gpio1: gpio-controller@10000080 {
106			compatible = "brcm,bcm6345-gpio";
107			reg = <0x10000080 0x4>, <0x10000088 0x4>;
108			gpio-controller;
109			#gpio-cells = <2>;
110			ngpios = <6>;
111
112			status = "disabled";
113		};
114
115		gpio0: gpio-controller@10000084 {
116			compatible = "brcm,bcm6345-gpio";
117			reg = <0x10000084 0x4>, <0x1000008c 0x4>;
118			gpio-controller;
119			#gpio-cells = <2>;
120
121			status = "disabled";
122		};
123
124		leds: led-controller@100000d0 {
125			compatible = "brcm,bcm6358-leds";
126			reg = <0x100000d0 0x8>;
127			#address-cells = <1>;
128			#size-cells = <0>;
129
130			status = "disabled";
131		};
132
133		uart0: serial@10000100 {
134			compatible = "brcm,bcm6345-uart";
135			reg = <0x10000100 0x18>;
136			clocks = <&periph_osc>;
137
138			status = "disabled";
139		};
140
141		uart1: serial@10000120 {
142			compatible = "brcm,bcm6345-uart";
143			reg = <0x10000120 0x18>;
144			clocks = <&periph_osc>;
145
146			status = "disabled";
147		};
148
149		nand: nand-controller@10000200 {
150			#address-cells = <1>;
151			#size-cells = <0>;
152			compatible = "brcm,nand-bcm6368",
153				     "brcm,brcmnand-v2.1",
154				     "brcm,brcmnand";
155			reg-names = "nand",
156				    "nand-cache",
157				    "nand-int-base";
158			reg = <0x10000200 0x180>,
159			      <0x10000600 0x200>,
160			      <0x100000b0 0x10>;
161			clocks = <&periph_clk BCM6368_CLK_NAND>;
162			clock-names = "nand";
163
164			status = "disabled";
165		};
166
167		spi: spi@10000800 {
168			compatible = "brcm,bcm6358-spi";
169			reg = <0x10000800 0x70c>;
170			#address-cells = <1>;
171			#size-cells = <0>;
172			clocks = <&periph_clk BCM6368_CLK_SPI>;
173			resets = <&periph_rst BCM6368_RST_SPI>;
174			spi-max-frequency = <20000000>;
175			num-cs = <6>;
176
177			status = "disabled";
178		};
179
180		memory-controller@10001200 {
181			compatible = "brcm,bcm6358-mc";
182			reg = <0x10001200 0x4c>;
183			u-boot,dm-pre-reloc;
184		};
185
186		ehci: usb-controller@10001500 {
187			compatible = "brcm,bcm6368-ehci", "generic-ehci";
188			reg = <0x10001500 0x100>;
189			phys = <&usbh>;
190			big-endian;
191
192			status = "disabled";
193		};
194
195		ohci: usb-controller@10001600 {
196			compatible = "brcm,bcm6368-ohci", "generic-ohci";
197			reg = <0x10001600 0x100>;
198			phys = <&usbh>;
199			big-endian;
200
201			status = "disabled";
202		};
203
204		usbh: usb-phy@10001700 {
205			compatible = "brcm,bcm6368-usbh";
206			reg = <0x10001700 0x38>;
207			#phy-cells = <0>;
208			clocks = <&periph_clk BCM6368_CLK_USBH>;
209			clock-names = "usbh";
210			resets = <&periph_rst BCM6368_RST_USBH>;
211
212			status = "disabled";
213		};
214
215		iudma: dma-controller@10006800 {
216			compatible = "brcm,bcm6368-iudma";
217			reg = <0x10006800 0x80>,
218			      <0x10006a00 0x80>,
219			      <0x10006c00 0x80>;
220			reg-names = "dma",
221				    "dma-channels",
222				    "dma-sram";
223			#dma-cells = <1>;
224			dma-channels = <8>;
225		};
226
227		enet: ethernet@10f00000 {
228			compatible = "brcm,bcm6368-enet";
229			#address-cells = <1>;
230			#size-cells = <0>;
231			reg = <0x10f00000 0x10000>;
232			clocks = <&periph_clk BCM6368_CLK_SWPKT_USB>,
233				 <&periph_clk BCM6368_CLK_SWPKT_SAR>,
234				 <&periph_clk BCM6368_CLK_ROBOSW>;
235			resets = <&periph_rst BCM6368_RST_SWITCH>,
236				 <&periph_rst BCM6368_RST_EPHY>;
237			dmas = <&iudma BCM6368_DMA_ENETSW_RX>,
238			       <&iudma BCM6368_DMA_ENETSW_TX>;
239			dma-names = "rx",
240				    "tx";
241			brcm,num-ports = <6>;
242
243			status = "disabled";
244		};
245	};
246};
247