rpi.dts revision 265013
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: head/sys/boot/fdt/dts/arm/rpi.dts 265013 2014-04-27 13:10:51Z loos $
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
38252439Srpaulo	memory {
39252439Srpaulo		device_type = "memory";
40252439Srpaulo		reg = <0 0x8000000>; /* 128MB, Set by VideoCore */
41252439Srpaulo	
42252439Srpaulo	};
43252439Srpaulo
44252439Srpaulo	system {
45252439Srpaulo		revision = <0>;			/* Set by VideoCore */
46252439Srpaulo		serial = <0 0>;			/* Set by VideoCore */
47252439Srpaulo	};
48252439Srpaulo
49252439Srpaulo	axi {
50252439Srpaulo		gpio: gpio {
51252439Srpaulo			/* BSC0 */
52252439Srpaulo			pins_bsc0_a: bsc0_a {
53252439Srpaulo				broadcom,function = "ALT0";
54252439Srpaulo			};
55252439Srpaulo
56252439Srpaulo			pins_bsc0_b: bsc0_b {
57252439Srpaulo				broadcom,function = "ALT0";
58252439Srpaulo			};
59252439Srpaulo
60252439Srpaulo			pins_bsc0_c: bsc0_c {
61252439Srpaulo				broadcom,function = "ALT1";
62252439Srpaulo			};
63252439Srpaulo
64252439Srpaulo			/* BSC1 */
65252439Srpaulo			pins_bsc1_a: bsc1_a {
66252439Srpaulo				broadcom,function = "ALT0";
67252439Srpaulo			};
68252439Srpaulo
69252439Srpaulo			pins_bsc1_b: bsc1_b {
70252439Srpaulo				broadcom,function = "ALT2";
71252439Srpaulo			};
72252439Srpaulo
73252439Srpaulo			/* GPCLK0 */
74252439Srpaulo			pins_gpclk0_a: gpclk0_a {
75252439Srpaulo				broadcom,function = "ALT0";
76252439Srpaulo			};
77252439Srpaulo
78252439Srpaulo			pins_gpclk0_b: gpclk0_b {
79252439Srpaulo				broadcom,function = "ALT5";
80252439Srpaulo			};
81252439Srpaulo
82252439Srpaulo			pins_gpclk0_c: gpclk0_c {
83252439Srpaulo				broadcom,function = "ALT0";
84252439Srpaulo			};
85252439Srpaulo
86252439Srpaulo			pins_gpclk0_d: gpclk0_d {
87252439Srpaulo				broadcom,function = "ALT0";
88252439Srpaulo			};
89252439Srpaulo
90252439Srpaulo			/* GPCLK1 */
91252439Srpaulo			pins_gpclk1_a: gpclk1_a {
92252439Srpaulo				broadcom,function = "ALT0";
93252439Srpaulo			};
94252439Srpaulo
95252439Srpaulo			pins_gpclk1_b: gpclk1_b {
96252439Srpaulo				broadcom,function = "ALT5";
97252439Srpaulo			};
98252439Srpaulo
99252439Srpaulo			pins_gpclk1_c: gpclk1_c {
100252439Srpaulo				broadcom,function = "ALT0";
101252439Srpaulo			};
102252439Srpaulo
103252439Srpaulo			pins_gpclk1_d: gpclk1_d {
104252439Srpaulo				broadcom,function = "ALT0";
105252439Srpaulo			};
106252439Srpaulo
107252439Srpaulo			/* GPCLK2 */
108252439Srpaulo			pins_gpclk2_a: gpclk2_a {
109252439Srpaulo				broadcom,function = "ALT0";
110252439Srpaulo			};
111252439Srpaulo
112252439Srpaulo			pins_gpclk2_b: gpclk2_b {
113252439Srpaulo				broadcom,function = "ALT0";
114252439Srpaulo			};
115252439Srpaulo
116252439Srpaulo			/* SPI0 */
117252439Srpaulo			pins_spi0_a: spi0_a {
118252439Srpaulo				broadcom,function = "ALT0";
119252439Srpaulo			};
120252439Srpaulo
121252439Srpaulo			pins_spi0_b: spi0_b {
122252439Srpaulo				broadcom,function = "ALT0";
123252439Srpaulo			};
124252439Srpaulo
125252439Srpaulo			/* PWM */
126252439Srpaulo			pins_pwm0_a: pwm0_a {
127252439Srpaulo				broadcom,function = "ALT0";
128252439Srpaulo			};
129252439Srpaulo
130252439Srpaulo			pins_pwm0_b: pwm0_b {
131252439Srpaulo				broadcom,function = "ALT5";
132252439Srpaulo			};
133252439Srpaulo
134252439Srpaulo			pins_pwm0_c: pwm0_c {
135252439Srpaulo				broadcom,function = "ALT0";
136252439Srpaulo			};
137252439Srpaulo
138252439Srpaulo			pins_pwm1_a: pwm1_a {
139252439Srpaulo				broadcom,function = "ALT0";
140252439Srpaulo			};
141252439Srpaulo
142252439Srpaulo			pins_pwm1_b: pwm1_b {
143252439Srpaulo				broadcom,function = "ALT5";
144252439Srpaulo			};
145252439Srpaulo
146252439Srpaulo			pins_pwm1_c: pwm1_c {
147252439Srpaulo				broadcom,function = "ALT0";
148252439Srpaulo			};
149252439Srpaulo
150252439Srpaulo			pins_pwm1_d: pwm1_d {
151252439Srpaulo				broadcom,function = "ALT0";
152252439Srpaulo			};
153252439Srpaulo
154252439Srpaulo			/* UART0 */
155252439Srpaulo			pins_uart0_a: uart0_a {
156252439Srpaulo				broadcom,function = "ALT0";
157252439Srpaulo			};
158252439Srpaulo
159252439Srpaulo			pins_uart0_b: uart0_b {
160252439Srpaulo				broadcom,function = "ALT3";
161252439Srpaulo			};
162252439Srpaulo
163252439Srpaulo			pins_uart0_c: uart0_c {
164252439Srpaulo				broadcom,function = "ALT2";
165252439Srpaulo			};
166252439Srpaulo
167252439Srpaulo			pins_uart0_fc_a: uart0_fc_a {
168252439Srpaulo				broadcom,function = "ALT3";
169252439Srpaulo			};
170252439Srpaulo
171252439Srpaulo			pins_uart0_fc_b: uart0_fc_b {
172252439Srpaulo				broadcom,function = "ALT3";
173252439Srpaulo			};
174252439Srpaulo
175252439Srpaulo			pins_uart0_fc_c: uart0_fc_c {
176252439Srpaulo				broadcom,function = "ALT2";
177252439Srpaulo			};
178252439Srpaulo
179252439Srpaulo			/* PCM */
180252439Srpaulo			pins_pcm_a: pcm_a {
181252439Srpaulo				broadcom,function = "ALT0";
182252439Srpaulo			};
183252439Srpaulo
184252439Srpaulo			pins_pcm_b: pcm_b {
185252439Srpaulo				broadcom,function = "ALT2";
186252439Srpaulo			};
187252439Srpaulo
188252439Srpaulo			/* Secondary Address Bus */
189252439Srpaulo			pins_sm_addr_a: sm_addr_a {
190252439Srpaulo				broadcom,function = "ALT1";
191252439Srpaulo			};
192252439Srpaulo
193252439Srpaulo			pins_sm_addr_b: sm_addr_b {
194252439Srpaulo				broadcom,function = "ALT1";
195252439Srpaulo			};
196252439Srpaulo
197252439Srpaulo			pins_sm_ctl_a: sm_ctl_a {
198252439Srpaulo				broadcom,function = "ALT1";
199252439Srpaulo			};
200252439Srpaulo
201252439Srpaulo			pins_sm_ctl_b: sm_ctl_b {
202252439Srpaulo				broadcom,function = "ALT1";
203252439Srpaulo			};
204252439Srpaulo
205252439Srpaulo			pins_sm_data_8bit_a: sm_data_8bit_a {
206252439Srpaulo				broadcom,function = "ALT1";
207252439Srpaulo			};
208252439Srpaulo
209252439Srpaulo			pins_sm_data_8bit_b: sm_data_8bit_b {
210252439Srpaulo				broadcom,function = "ALT1";
211252439Srpaulo			};
212252439Srpaulo
213252439Srpaulo			pins_sm_data_16bit: sm_data_16bit {
214252439Srpaulo				broadcom,function = "ALT1";
215252439Srpaulo			};
216252439Srpaulo
217252439Srpaulo			pins_sm_data_18bit: sm_data_18bit {
218252439Srpaulo				broadcom,function = "ALT1";
219252439Srpaulo			};
220252439Srpaulo
221252439Srpaulo			/* BSCSL */
222252439Srpaulo			pins_bscsl: bscsl {
223252439Srpaulo				broadcom,function = "ALT3";
224252439Srpaulo			};
225252439Srpaulo
226252439Srpaulo			/* SPISL */
227252439Srpaulo			pins_spisl: spisl {
228252439Srpaulo				broadcom,function = "ALT3";
229252439Srpaulo			};
230252439Srpaulo
231252439Srpaulo			/* SPI1 */
232252439Srpaulo			pins_spi1: spi1 {
233252439Srpaulo				broadcom,function = "ALT4";
234252439Srpaulo			};
235252439Srpaulo
236252439Srpaulo			/* UART1 */
237252439Srpaulo			pins_uart1_a: uart1_a {
238252439Srpaulo				broadcom,function = "ALT5";
239252439Srpaulo			};
240252439Srpaulo
241252439Srpaulo			pins_uart1_b: uart1_b {
242252439Srpaulo				broadcom,function = "ALT5";
243252439Srpaulo			};
244252439Srpaulo
245252439Srpaulo			pins_uart1_c: uart1_c {
246252439Srpaulo				broadcom,function = "ALT5";
247252439Srpaulo			};
248252439Srpaulo
249252439Srpaulo			pins_uart1_fc_a: uart1_fc_a {
250252439Srpaulo				broadcom,function = "ALT5";
251252439Srpaulo			};
252252439Srpaulo
253252439Srpaulo			pins_uart1_fc_b: uart1_fc_b {
254252439Srpaulo				broadcom,function = "ALT5";
255252439Srpaulo			};
256252439Srpaulo
257252439Srpaulo			pins_uart1_fc_c: uart1_fc_c {
258252439Srpaulo				broadcom,function = "ALT5";
259252439Srpaulo			};
260252439Srpaulo
261252439Srpaulo			/* SPI2 */
262252439Srpaulo			pins_spi2: spi2 {
263252439Srpaulo				broadcom,function = "ALT4";
264252439Srpaulo			};
265252439Srpaulo
266252439Srpaulo			/* ARM JTAG */
267252439Srpaulo			pins_arm_jtag_trst: arm_jtag_trst {
268252439Srpaulo				broadcom,function = "ALT4";
269252439Srpaulo			};
270252439Srpaulo
271252439Srpaulo			pins_arm_jtag_a: arm_jtag_a {
272252439Srpaulo				broadcom,function = "ALT5";
273252439Srpaulo			};
274252439Srpaulo
275252439Srpaulo			pins_arm_jtag_b: arm_jtag_b {
276252439Srpaulo				broadcom,function = "ALT4";
277252439Srpaulo			};
278252439Srpaulo
279252439Srpaulo			/* Reserved */
280252439Srpaulo			pins_reserved: reserved {
281252439Srpaulo				broadcom,function = "ALT3";
282252439Srpaulo			};
283252439Srpaulo		};
284252439Srpaulo		usb {
285252439Srpaulo			hub {
286252439Srpaulo				compatible = "usb,hub", "usb,device";
287252439Srpaulo				reg = <0x00000001>;
288252439Srpaulo				#address-cells = <1>;
289252439Srpaulo				#size-cells = <0>;
290252439Srpaulo				ethernet {
291252439Srpaulo					compatible = "net,ethernet",
292252439Srpaulo						     "usb,device";
293252439Srpaulo					reg = <0x00000001>;
294252439Srpaulo					mac-address = [00 00 00 00 00 00];
295252439Srpaulo				};
296252439Srpaulo			};
297252439Srpaulo
298252439Srpaulo		};
299252439Srpaulo
300252439Srpaulo
301252439Srpaulo	};
302252439Srpaulo
303252439Srpaulo	display {
304252439Srpaulo		compatible = "broadcom,bcm2835-fb", "broadcom,bcm2708-fb";
305252439Srpaulo
306252439Srpaulo		broadcom,vc-mailbox = <&vc_mbox>;
307252439Srpaulo		broadcom,vc-channel = <1>;
308252439Srpaulo
309252439Srpaulo		broadcom,width = <0>;		/* Set by VideoCore */
310252439Srpaulo		broadcom,height = <0>;		/* Set by VideoCore */
311252439Srpaulo		broadcom,depth = <0>;		/* Set by VideoCore */
312252439Srpaulo	};
313252439Srpaulo
314252439Srpaulo	leds {
315252439Srpaulo		compatible = "gpio-leds";
316252439Srpaulo
317252439Srpaulo		ok {
318252439Srpaulo			label = "ok";
319265013Sloos			gpios = <&gpio 16 1>;
320252439Srpaulo
321252439Srpaulo			/* Don't change this - it configures
322252439Srpaulo			 * how the led driver determines if
323252439Srpaulo			 * the led is on or off when it loads.
324252439Srpaulo			 */
325252439Srpaulo			default-state = "keep";
326252439Srpaulo
327252439Srpaulo			/* This is the real default state. */
328252439Srpaulo			linux,default-trigger = "default-on";
329252439Srpaulo		};
330252439Srpaulo	};
331252439Srpaulo
332252439Srpaulo	power: regulator {
333252439Srpaulo		compatible = "broadcom,bcm2835-power-mgr",
334252439Srpaulo			     "broadcom,bcm2708-power-mgr",
335252439Srpaulo			     "simple-bus";
336252439Srpaulo		#address-cells = <1>;
337252439Srpaulo		#size-cells = <0>;
338252439Srpaulo
339252439Srpaulo		broadcom,vc-mailbox = <&vc_mbox>;
340252439Srpaulo		broadcom,vc-channel = <0>;
341252439Srpaulo
342252439Srpaulo		regulator-name = "VideoCore";
343252439Srpaulo		regulator-min-microvolt = <5000000>;
344252439Srpaulo		regulator-max-microvolt = <5000000>;
345252439Srpaulo		regulator-always-on = <1>;
346252439Srpaulo
347252439Srpaulo		sd_card_power: regulator@0 {
348252439Srpaulo			compatible = "broadcom,bcm2835-power-dev",
349252439Srpaulo				     "broadcom,bcm2708-power-dev";
350252439Srpaulo			reg = <0>;
351252439Srpaulo
352252439Srpaulo			vin-supply = <&power>;
353252439Srpaulo			regulator-name = "SD Card";
354252439Srpaulo			regulator-min-microvolt = <3300000>;
355252439Srpaulo			regulator-max-microvolt = <3300000>;
356252439Srpaulo		};
357252439Srpaulo
358252439Srpaulo		/* This is for the controller itself, not the root port */
359252439Srpaulo		usb_hcd_power: regulator@3 {
360252439Srpaulo			compatible = "broadcom,bcm2835-power-dev",
361252439Srpaulo				     "broadcom,bcm2708-power-dev";
362252439Srpaulo			reg = <3>;
363252439Srpaulo
364252439Srpaulo			vin-supply = <&power>;
365252439Srpaulo			regulator-name = "USB HCD";
366252439Srpaulo			regulator-min-microvolt = <5000000>;
367252439Srpaulo			regulator-max-microvolt = <5000000>;
368252439Srpaulo		};
369252439Srpaulo	};
370252439Srpaulo
371252439Srpaulo	aliases {
372252439Srpaulo		uart0 = &uart0;
373252439Srpaulo	};
374252439Srpaulo
375252439Srpaulo	chosen {
376252439Srpaulo		bootargs = "";			/* Set by VideoCore */
377252439Srpaulo		stdin = "uart0";
378252439Srpaulo		stdout = "uart0";
379252439Srpaulo	};
380252439Srpaulo
381252439Srpaulo};
382