rpi.dts revision 266340
194005Sobrien/*
2 * Copyright (c) 2012 Oleksandr Tymoshenko <gonzo@bluezbox.com>
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 *    notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 *    notice, this list of conditions and the following disclaimer in the
11 *    documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 * SUCH DAMAGE.
24 *
25 * $FreeBSD: stable/10/sys/boot/fdt/dts/arm/rpi.dts 266340 2014-05-17 19:16:45Z loos $
26 */
27/dts-v1/;
28
29/include/ "bcm2835.dtsi"
30
31/ {
32	model = "Raspberry Pi (BCM2835)";
33	compatible = "raspberrypi,model-a", "raspberrypi,model-b", 
34		     "broadcom,bcm2835-vc", "broadcom,bcm2708-vc";
35
36	memreserve = <0x08000000 0x08000000>;	/* Set by VideoCore */
37
38	memory {
39		device_type = "memory";
40		reg = <0 0x8000000>; /* 128MB, Set by VideoCore */
41	
42	};
43
44	system {
45		revision = <0>;			/* Set by VideoCore */
46		serial = <0 0>;			/* Set by VideoCore */
47	};
48
49	axi {
50		gpio: gpio {
51			/* BSC0 */
52			pins_bsc0_a: bsc0_a {
53				broadcom,function = "ALT0";
54			};
55
56			pins_bsc0_b: bsc0_b {
57				broadcom,function = "ALT0";
58			};
59
60			pins_bsc0_c: bsc0_c {
61				broadcom,function = "ALT1";
62			};
63
64			/* BSC1 */
65			pins_bsc1_a: bsc1_a {
66				broadcom,function = "ALT0";
67			};
68
69			pins_bsc1_b: bsc1_b {
70				broadcom,function = "ALT2";
71			};
72
73			/* GPCLK0 */
74			pins_gpclk0_a: gpclk0_a {
75				broadcom,function = "ALT0";
76			};
77
78			pins_gpclk0_b: gpclk0_b {
79				broadcom,function = "ALT5";
80			};
81
82			pins_gpclk0_c: gpclk0_c {
83				broadcom,function = "ALT0";
84			};
85
86			pins_gpclk0_d: gpclk0_d {
87				broadcom,function = "ALT0";
88			};
89
90			/* GPCLK1 */
91			pins_gpclk1_a: gpclk1_a {
92				broadcom,function = "ALT0";
93			};
94
95			pins_gpclk1_b: gpclk1_b {
96				broadcom,function = "ALT5";
97			};
98
99			pins_gpclk1_c: gpclk1_c {
100				broadcom,function = "ALT0";
101			};
102
103			pins_gpclk1_d: gpclk1_d {
104				broadcom,function = "ALT0";
105			};
106
107			/* GPCLK2 */
108			pins_gpclk2_a: gpclk2_a {
109				broadcom,function = "ALT0";
110			};
111
112			pins_gpclk2_b: gpclk2_b {
113				broadcom,function = "ALT0";
114			};
115
116			/* SPI0 */
117			pins_spi0_a: spi0_a {
118				broadcom,function = "ALT0";
119			};
120
121			pins_spi0_b: spi0_b {
122				broadcom,function = "ALT0";
123			};
124
125			/* PWM */
126			pins_pwm0_a: pwm0_a {
127				broadcom,function = "ALT0";
128			};
129
130			pins_pwm0_b: pwm0_b {
131				broadcom,function = "ALT5";
132			};
133
134			pins_pwm0_c: pwm0_c {
135				broadcom,function = "ALT0";
136			};
137
138			pins_pwm1_a: pwm1_a {
139				broadcom,function = "ALT0";
140			};
141
142			pins_pwm1_b: pwm1_b {
143				broadcom,function = "ALT5";
144			};
145
146			pins_pwm1_c: pwm1_c {
147				broadcom,function = "ALT0";
148			};
149
150			pins_pwm1_d: pwm1_d {
151				broadcom,function = "ALT0";
152			};
153
154			/* UART0 */
155			pins_uart0_a: uart0_a {
156				broadcom,function = "ALT0";
157			};
158
159			pins_uart0_b: uart0_b {
160				broadcom,function = "ALT3";
161			};
162
163			pins_uart0_c: uart0_c {
164				broadcom,function = "ALT2";
165			};
166
167			pins_uart0_fc_a: uart0_fc_a {
168				broadcom,function = "ALT3";
169			};
170
171			pins_uart0_fc_b: uart0_fc_b {
172				broadcom,function = "ALT3";
173			};
174
175			pins_uart0_fc_c: uart0_fc_c {
176				broadcom,function = "ALT2";
177			};
178
179			/* PCM */
180			pins_pcm_a: pcm_a {
181				broadcom,function = "ALT0";
182			};
183
184			pins_pcm_b: pcm_b {
185				broadcom,function = "ALT2";
186			};
187
188			/* Secondary Address Bus */
189			pins_sm_addr_a: sm_addr_a {
190				broadcom,function = "ALT1";
191			};
192
193			pins_sm_addr_b: sm_addr_b {
194				broadcom,function = "ALT1";
195			};
196
197			pins_sm_ctl_a: sm_ctl_a {
198				broadcom,function = "ALT1";
199			};
200
201			pins_sm_ctl_b: sm_ctl_b {
202				broadcom,function = "ALT1";
203			};
204
205			pins_sm_data_8bit_a: sm_data_8bit_a {
206				broadcom,function = "ALT1";
207			};
208
209			pins_sm_data_8bit_b: sm_data_8bit_b {
210				broadcom,function = "ALT1";
211			};
212
213			pins_sm_data_16bit: sm_data_16bit {
214				broadcom,function = "ALT1";
215			};
216
217			pins_sm_data_18bit: sm_data_18bit {
218				broadcom,function = "ALT1";
219			};
220
221			/* BSCSL */
222			pins_bscsl: bscsl {
223				broadcom,function = "ALT3";
224			};
225
226			/* SPISL */
227			pins_spisl: spisl {
228				broadcom,function = "ALT3";
229			};
230
231			/* SPI1 */
232			pins_spi1: spi1 {
233				broadcom,function = "ALT4";
234			};
235
236			/* UART1 */
237			pins_uart1_a: uart1_a {
238				broadcom,function = "ALT5";
239			};
240
241			pins_uart1_b: uart1_b {
242				broadcom,function = "ALT5";
243			};
244
245			pins_uart1_c: uart1_c {
246				broadcom,function = "ALT5";
247			};
248
249			pins_uart1_fc_a: uart1_fc_a {
250				broadcom,function = "ALT5";
251			};
252
253			pins_uart1_fc_b: uart1_fc_b {
254				broadcom,function = "ALT5";
255			};
256
257			pins_uart1_fc_c: uart1_fc_c {
258				broadcom,function = "ALT5";
259			};
260
261			/* SPI2 */
262			pins_spi2: spi2 {
263				broadcom,function = "ALT4";
264			};
265
266			/* ARM JTAG */
267			pins_arm_jtag_trst: arm_jtag_trst {
268				broadcom,function = "ALT4";
269			};
270
271			pins_arm_jtag_a: arm_jtag_a {
272				broadcom,function = "ALT5";
273			};
274
275			pins_arm_jtag_b: arm_jtag_b {
276				broadcom,function = "ALT4";
277			};
278
279			/* Reserved */
280			pins_reserved: reserved {
281				broadcom,function = "ALT3";
282			};
283		};
284		usb {
285			hub {
286				compatible = "usb,hub", "usb,device";
287				reg = <0x00000001>;
288				#address-cells = <1>;
289				#size-cells = <0>;
290				ethernet {
291					compatible = "net,ethernet",
292						     "usb,device";
293					reg = <0x00000001>;
294					mac-address = [00 00 00 00 00 00];
295				};
296			};
297
298		};
299
300
301	};
302
303	display {
304		compatible = "broadcom,bcm2835-fb", "broadcom,bcm2708-fb";
305
306		broadcom,vc-mailbox = <&vc_mbox>;
307		broadcom,vc-channel = <1>;
308
309		broadcom,width = <0>;		/* Set by VideoCore */
310		broadcom,height = <0>;		/* Set by VideoCore */
311		broadcom,depth = <0>;		/* Set by VideoCore */
312	};
313
314	leds {
315		compatible = "gpio-leds";
316
317		ok {
318			label = "ok";
319			gpios = <&gpio 16 1>;
320
321			/* Don't change this - it configures
322			 * how the led driver determines if
323			 * the led is on or off when it loads.
324			 */
325			default-state = "keep";
326
327			/* This is the real default state. */
328			linux,default-trigger = "default-on";
329		};
330	};
331
332	power: regulator {
333		compatible = "broadcom,bcm2835-power-mgr",
334			     "broadcom,bcm2708-power-mgr",
335			     "simple-bus";
336		#address-cells = <1>;
337		#size-cells = <0>;
338
339		broadcom,vc-mailbox = <&vc_mbox>;
340		broadcom,vc-channel = <0>;
341
342		regulator-name = "VideoCore";
343		regulator-min-microvolt = <5000000>;
344		regulator-max-microvolt = <5000000>;
345		regulator-always-on = <1>;
346
347		sd_card_power: regulator@0 {
348			compatible = "broadcom,bcm2835-power-dev",
349				     "broadcom,bcm2708-power-dev";
350			reg = <0>;
351
352			vin-supply = <&power>;
353			regulator-name = "SD Card";
354			regulator-min-microvolt = <3300000>;
355			regulator-max-microvolt = <3300000>;
356		};
357
358		/* This is for the controller itself, not the root port */
359		usb_hcd_power: regulator@3 {
360			compatible = "broadcom,bcm2835-power-dev",
361				     "broadcom,bcm2708-power-dev";
362			reg = <3>;
363
364			vin-supply = <&power>;
365			regulator-name = "USB HCD";
366			regulator-min-microvolt = <5000000>;
367			regulator-max-microvolt = <5000000>;
368		};
369	};
370
371	aliases {
372		uart0 = &uart0;
373	};
374
375	chosen {
376		bootargs = "";			/* Set by VideoCore */
377		stdin = "uart0";
378		stdout = "uart0";
379	};
380
381};
382