1252439Srpaulo/*
2252439Srpaulo * Copyright (c) 2012 Oleksandr Tymoshenko <gonzo@bluezbox.com>
3252439Srpaulo *
4252439Srpaulo * Redistribution and use in source and binary forms, with or without
5252439Srpaulo * modification, are permitted provided that the following conditions
6252439Srpaulo * are met:
7252439Srpaulo * 1. Redistributions of source code must retain the above copyright
8252439Srpaulo *    notice, this list of conditions and the following disclaimer.
9252439Srpaulo * 2. Redistributions in binary form must reproduce the above copyright
10252439Srpaulo *    notice, this list of conditions and the following disclaimer in the
11252439Srpaulo *    documentation and/or other materials provided with the distribution.
12252439Srpaulo *
13252439Srpaulo * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14252439Srpaulo * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15252439Srpaulo * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16252439Srpaulo * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17252439Srpaulo * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18252439Srpaulo * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19252439Srpaulo * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20252439Srpaulo * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21252439Srpaulo * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22252439Srpaulo * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23252439Srpaulo * SUCH DAMAGE.
24252439Srpaulo *
25252439Srpaulo * $FreeBSD: releng/11.0/sys/boot/fdt/dts/arm/rpi.dts 290321 2015-11-03 04:50:58Z gonzo $
26252439Srpaulo */
27252439Srpaulo/dts-v1/;
28252439Srpaulo
29252439Srpaulo/include/ "bcm2835.dtsi"
30252439Srpaulo
31252439Srpaulo/ {
32252439Srpaulo	model = "Raspberry Pi (BCM2835)";
33252439Srpaulo	compatible = "raspberrypi,model-a", "raspberrypi,model-b", 
34252439Srpaulo		     "broadcom,bcm2835-vc", "broadcom,bcm2708-vc";
35252439Srpaulo
36262725Simp	memreserve = <0x08000000 0x08000000>;	/* Set by VideoCore */
37262725Simp
38275963Srpaulo	cpus {
39275963Srpaulo		#address-cells = <1>;
40275963Srpaulo		#size-cells = <0>;
41275963Srpaulo		cpu@0 {
42275963Srpaulo			compatible = "arm,1176jzf-s";
43275963Srpaulo			device_type = "cpu";
44275963Srpaulo			reg = <0>;			/* CPU ID=0 */
45275963Srpaulo			clock-frequency = <700000000>;	/* 700MHz */
46275963Srpaulo		};
47275963Srpaulo	};
48275963Srpaulo
49252439Srpaulo	memory {
50252439Srpaulo		device_type = "memory";
51252439Srpaulo		reg = <0 0x8000000>; /* 128MB, Set by VideoCore */
52252439Srpaulo	
53252439Srpaulo	};
54252439Srpaulo
55252439Srpaulo	system {
56252439Srpaulo		revision = <0>;			/* Set by VideoCore */
57252439Srpaulo		serial = <0 0>;			/* Set by VideoCore */
58252439Srpaulo	};
59252439Srpaulo
60252439Srpaulo	axi {
61252439Srpaulo		gpio: gpio {
62252439Srpaulo			/* BSC0 */
63252439Srpaulo			pins_bsc0_a: bsc0_a {
64252439Srpaulo				broadcom,function = "ALT0";
65252439Srpaulo			};
66252439Srpaulo
67252439Srpaulo			pins_bsc0_b: bsc0_b {
68252439Srpaulo				broadcom,function = "ALT0";
69252439Srpaulo			};
70252439Srpaulo
71252439Srpaulo			pins_bsc0_c: bsc0_c {
72252439Srpaulo				broadcom,function = "ALT1";
73252439Srpaulo			};
74252439Srpaulo
75252439Srpaulo			/* BSC1 */
76252439Srpaulo			pins_bsc1_a: bsc1_a {
77252439Srpaulo				broadcom,function = "ALT0";
78252439Srpaulo			};
79252439Srpaulo
80252439Srpaulo			pins_bsc1_b: bsc1_b {
81252439Srpaulo				broadcom,function = "ALT2";
82252439Srpaulo			};
83252439Srpaulo
84252439Srpaulo			/* GPCLK0 */
85252439Srpaulo			pins_gpclk0_a: gpclk0_a {
86252439Srpaulo				broadcom,function = "ALT0";
87252439Srpaulo			};
88252439Srpaulo
89252439Srpaulo			pins_gpclk0_b: gpclk0_b {
90252439Srpaulo				broadcom,function = "ALT5";
91252439Srpaulo			};
92252439Srpaulo
93252439Srpaulo			pins_gpclk0_c: gpclk0_c {
94252439Srpaulo				broadcom,function = "ALT0";
95252439Srpaulo			};
96252439Srpaulo
97252439Srpaulo			pins_gpclk0_d: gpclk0_d {
98252439Srpaulo				broadcom,function = "ALT0";
99252439Srpaulo			};
100252439Srpaulo
101252439Srpaulo			/* GPCLK1 */
102252439Srpaulo			pins_gpclk1_a: gpclk1_a {
103252439Srpaulo				broadcom,function = "ALT0";
104252439Srpaulo			};
105252439Srpaulo
106252439Srpaulo			pins_gpclk1_b: gpclk1_b {
107252439Srpaulo				broadcom,function = "ALT5";
108252439Srpaulo			};
109252439Srpaulo
110252439Srpaulo			pins_gpclk1_c: gpclk1_c {
111252439Srpaulo				broadcom,function = "ALT0";
112252439Srpaulo			};
113252439Srpaulo
114252439Srpaulo			pins_gpclk1_d: gpclk1_d {
115252439Srpaulo				broadcom,function = "ALT0";
116252439Srpaulo			};
117252439Srpaulo
118252439Srpaulo			/* GPCLK2 */
119252439Srpaulo			pins_gpclk2_a: gpclk2_a {
120252439Srpaulo				broadcom,function = "ALT0";
121252439Srpaulo			};
122252439Srpaulo
123252439Srpaulo			pins_gpclk2_b: gpclk2_b {
124252439Srpaulo				broadcom,function = "ALT0";
125252439Srpaulo			};
126252439Srpaulo
127252439Srpaulo			/* SPI0 */
128252439Srpaulo			pins_spi0_a: spi0_a {
129252439Srpaulo				broadcom,function = "ALT0";
130252439Srpaulo			};
131252439Srpaulo
132252439Srpaulo			pins_spi0_b: spi0_b {
133252439Srpaulo				broadcom,function = "ALT0";
134252439Srpaulo			};
135252439Srpaulo
136252439Srpaulo			/* PWM */
137252439Srpaulo			pins_pwm0_a: pwm0_a {
138252439Srpaulo				broadcom,function = "ALT0";
139252439Srpaulo			};
140252439Srpaulo
141252439Srpaulo			pins_pwm0_b: pwm0_b {
142252439Srpaulo				broadcom,function = "ALT5";
143252439Srpaulo			};
144252439Srpaulo
145252439Srpaulo			pins_pwm0_c: pwm0_c {
146252439Srpaulo				broadcom,function = "ALT0";
147252439Srpaulo			};
148252439Srpaulo
149252439Srpaulo			pins_pwm1_a: pwm1_a {
150252439Srpaulo				broadcom,function = "ALT0";
151252439Srpaulo			};
152252439Srpaulo
153252439Srpaulo			pins_pwm1_b: pwm1_b {
154252439Srpaulo				broadcom,function = "ALT5";
155252439Srpaulo			};
156252439Srpaulo
157252439Srpaulo			pins_pwm1_c: pwm1_c {
158252439Srpaulo				broadcom,function = "ALT0";
159252439Srpaulo			};
160252439Srpaulo
161252439Srpaulo			pins_pwm1_d: pwm1_d {
162252439Srpaulo				broadcom,function = "ALT0";
163252439Srpaulo			};
164252439Srpaulo
165252439Srpaulo			/* UART0 */
166252439Srpaulo			pins_uart0_a: uart0_a {
167252439Srpaulo				broadcom,function = "ALT0";
168252439Srpaulo			};
169252439Srpaulo
170252439Srpaulo			pins_uart0_b: uart0_b {
171252439Srpaulo				broadcom,function = "ALT3";
172252439Srpaulo			};
173252439Srpaulo
174252439Srpaulo			pins_uart0_c: uart0_c {
175252439Srpaulo				broadcom,function = "ALT2";
176252439Srpaulo			};
177252439Srpaulo
178252439Srpaulo			pins_uart0_fc_a: uart0_fc_a {
179252439Srpaulo				broadcom,function = "ALT3";
180252439Srpaulo			};
181252439Srpaulo
182252439Srpaulo			pins_uart0_fc_b: uart0_fc_b {
183252439Srpaulo				broadcom,function = "ALT3";
184252439Srpaulo			};
185252439Srpaulo
186252439Srpaulo			pins_uart0_fc_c: uart0_fc_c {
187252439Srpaulo				broadcom,function = "ALT2";
188252439Srpaulo			};
189252439Srpaulo
190252439Srpaulo			/* PCM */
191252439Srpaulo			pins_pcm_a: pcm_a {
192252439Srpaulo				broadcom,function = "ALT0";
193252439Srpaulo			};
194252439Srpaulo
195252439Srpaulo			pins_pcm_b: pcm_b {
196252439Srpaulo				broadcom,function = "ALT2";
197252439Srpaulo			};
198252439Srpaulo
199252439Srpaulo			/* Secondary Address Bus */
200252439Srpaulo			pins_sm_addr_a: sm_addr_a {
201252439Srpaulo				broadcom,function = "ALT1";
202252439Srpaulo			};
203252439Srpaulo
204252439Srpaulo			pins_sm_addr_b: sm_addr_b {
205252439Srpaulo				broadcom,function = "ALT1";
206252439Srpaulo			};
207252439Srpaulo
208252439Srpaulo			pins_sm_ctl_a: sm_ctl_a {
209252439Srpaulo				broadcom,function = "ALT1";
210252439Srpaulo			};
211252439Srpaulo
212252439Srpaulo			pins_sm_ctl_b: sm_ctl_b {
213252439Srpaulo				broadcom,function = "ALT1";
214252439Srpaulo			};
215252439Srpaulo
216252439Srpaulo			pins_sm_data_8bit_a: sm_data_8bit_a {
217252439Srpaulo				broadcom,function = "ALT1";
218252439Srpaulo			};
219252439Srpaulo
220252439Srpaulo			pins_sm_data_8bit_b: sm_data_8bit_b {
221252439Srpaulo				broadcom,function = "ALT1";
222252439Srpaulo			};
223252439Srpaulo
224252439Srpaulo			pins_sm_data_16bit: sm_data_16bit {
225252439Srpaulo				broadcom,function = "ALT1";
226252439Srpaulo			};
227252439Srpaulo
228252439Srpaulo			pins_sm_data_18bit: sm_data_18bit {
229252439Srpaulo				broadcom,function = "ALT1";
230252439Srpaulo			};
231252439Srpaulo
232252439Srpaulo			/* BSCSL */
233252439Srpaulo			pins_bscsl: bscsl {
234252439Srpaulo				broadcom,function = "ALT3";
235252439Srpaulo			};
236252439Srpaulo
237252439Srpaulo			/* SPISL */
238252439Srpaulo			pins_spisl: spisl {
239252439Srpaulo				broadcom,function = "ALT3";
240252439Srpaulo			};
241252439Srpaulo
242252439Srpaulo			/* SPI1 */
243252439Srpaulo			pins_spi1: spi1 {
244252439Srpaulo				broadcom,function = "ALT4";
245252439Srpaulo			};
246252439Srpaulo
247252439Srpaulo			/* UART1 */
248252439Srpaulo			pins_uart1_a: uart1_a {
249252439Srpaulo				broadcom,function = "ALT5";
250252439Srpaulo			};
251252439Srpaulo
252252439Srpaulo			pins_uart1_b: uart1_b {
253252439Srpaulo				broadcom,function = "ALT5";
254252439Srpaulo			};
255252439Srpaulo
256252439Srpaulo			pins_uart1_c: uart1_c {
257252439Srpaulo				broadcom,function = "ALT5";
258252439Srpaulo			};
259252439Srpaulo
260252439Srpaulo			pins_uart1_fc_a: uart1_fc_a {
261252439Srpaulo				broadcom,function = "ALT5";
262252439Srpaulo			};
263252439Srpaulo
264252439Srpaulo			pins_uart1_fc_b: uart1_fc_b {
265252439Srpaulo				broadcom,function = "ALT5";
266252439Srpaulo			};
267252439Srpaulo
268252439Srpaulo			pins_uart1_fc_c: uart1_fc_c {
269252439Srpaulo				broadcom,function = "ALT5";
270252439Srpaulo			};
271252439Srpaulo
272252439Srpaulo			/* SPI2 */
273252439Srpaulo			pins_spi2: spi2 {
274252439Srpaulo				broadcom,function = "ALT4";
275252439Srpaulo			};
276252439Srpaulo
277252439Srpaulo			/* ARM JTAG */
278252439Srpaulo			pins_arm_jtag_trst: arm_jtag_trst {
279252439Srpaulo				broadcom,function = "ALT4";
280252439Srpaulo			};
281252439Srpaulo
282252439Srpaulo			pins_arm_jtag_a: arm_jtag_a {
283252439Srpaulo				broadcom,function = "ALT5";
284252439Srpaulo			};
285252439Srpaulo
286252439Srpaulo			pins_arm_jtag_b: arm_jtag_b {
287252439Srpaulo				broadcom,function = "ALT4";
288252439Srpaulo			};
289252439Srpaulo
290252439Srpaulo			/* Reserved */
291252439Srpaulo			pins_reserved: reserved {
292252439Srpaulo				broadcom,function = "ALT3";
293252439Srpaulo			};
294252439Srpaulo		};
295252439Srpaulo		usb {
296252439Srpaulo			hub {
297252439Srpaulo				compatible = "usb,hub", "usb,device";
298252439Srpaulo				reg = <0x00000001>;
299252439Srpaulo				#address-cells = <1>;
300252439Srpaulo				#size-cells = <0>;
301252439Srpaulo				ethernet {
302252439Srpaulo					compatible = "net,ethernet",
303252439Srpaulo						     "usb,device";
304252439Srpaulo					reg = <0x00000001>;
305252439Srpaulo					mac-address = [00 00 00 00 00 00];
306252439Srpaulo				};
307252439Srpaulo			};
308252439Srpaulo
309252439Srpaulo		};
310252439Srpaulo
311252439Srpaulo
312252439Srpaulo	};
313252439Srpaulo
314252439Srpaulo	display {
315252439Srpaulo		compatible = "broadcom,bcm2835-fb", "broadcom,bcm2708-fb";
316252439Srpaulo
317252439Srpaulo		broadcom,vc-mailbox = <&vc_mbox>;
318252439Srpaulo		broadcom,vc-channel = <1>;
319252439Srpaulo
320252439Srpaulo		broadcom,width = <0>;		/* Set by VideoCore */
321252439Srpaulo		broadcom,height = <0>;		/* Set by VideoCore */
322252439Srpaulo		broadcom,depth = <0>;		/* Set by VideoCore */
323252439Srpaulo	};
324252439Srpaulo
325252439Srpaulo	leds {
326252439Srpaulo		compatible = "gpio-leds";
327252439Srpaulo
328252439Srpaulo		ok {
329252439Srpaulo			label = "ok";
330265013Sloos			gpios = <&gpio 16 1>;
331252439Srpaulo
332252439Srpaulo			/* Don't change this - it configures
333252439Srpaulo			 * how the led driver determines if
334252439Srpaulo			 * the led is on or off when it loads.
335252439Srpaulo			 */
336252439Srpaulo			default-state = "keep";
337252439Srpaulo
338252439Srpaulo			/* This is the real default state. */
339252439Srpaulo			linux,default-trigger = "default-on";
340252439Srpaulo		};
341252439Srpaulo	};
342252439Srpaulo
343252439Srpaulo	power: regulator {
344252439Srpaulo		compatible = "broadcom,bcm2835-power-mgr",
345252439Srpaulo			     "broadcom,bcm2708-power-mgr",
346252439Srpaulo			     "simple-bus";
347252439Srpaulo		#address-cells = <1>;
348252439Srpaulo		#size-cells = <0>;
349252439Srpaulo
350252439Srpaulo		broadcom,vc-mailbox = <&vc_mbox>;
351252439Srpaulo		broadcom,vc-channel = <0>;
352252439Srpaulo
353252439Srpaulo		regulator-name = "VideoCore";
354252439Srpaulo		regulator-min-microvolt = <5000000>;
355252439Srpaulo		regulator-max-microvolt = <5000000>;
356252439Srpaulo		regulator-always-on = <1>;
357252439Srpaulo
358252439Srpaulo		sd_card_power: regulator@0 {
359252439Srpaulo			compatible = "broadcom,bcm2835-power-dev",
360252439Srpaulo				     "broadcom,bcm2708-power-dev";
361252439Srpaulo			reg = <0>;
362252439Srpaulo
363252439Srpaulo			vin-supply = <&power>;
364252439Srpaulo			regulator-name = "SD Card";
365252439Srpaulo			regulator-min-microvolt = <3300000>;
366252439Srpaulo			regulator-max-microvolt = <3300000>;
367252439Srpaulo		};
368252439Srpaulo
369252439Srpaulo		/* This is for the controller itself, not the root port */
370252439Srpaulo		usb_hcd_power: regulator@3 {
371252439Srpaulo			compatible = "broadcom,bcm2835-power-dev",
372252439Srpaulo				     "broadcom,bcm2708-power-dev";
373252439Srpaulo			reg = <3>;
374252439Srpaulo
375252439Srpaulo			vin-supply = <&power>;
376252439Srpaulo			regulator-name = "USB HCD";
377252439Srpaulo			regulator-min-microvolt = <5000000>;
378252439Srpaulo			regulator-max-microvolt = <5000000>;
379252439Srpaulo		};
380252439Srpaulo	};
381252439Srpaulo
382252439Srpaulo	aliases {
383252439Srpaulo		uart0 = &uart0;
384252439Srpaulo	};
385252439Srpaulo
386252439Srpaulo	chosen {
387252439Srpaulo		bootargs = "";			/* Set by VideoCore */
388252439Srpaulo		stdin = "uart0";
389252439Srpaulo		stdout = "uart0";
390252439Srpaulo	};
391252439Srpaulo
392290321Sgonzo	__overrides__ {
393290321Sgonzo		cache_line_size  = <&vchiq>, "cache-line-size:0";
394290321Sgonzo	};
395252439Srpaulo};
396