rpi.dts revision 276101
1/*
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: head/sys/boot/fdt/dts/arm/rpi.dts 276101 2014-12-23 03:00:18Z rpaulo $
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	/*
39	cpus {
40		#address-cells = <1>;
41		#size-cells = <0>;
42		cpu@0 {
43			compatible = "arm,1176jzf-s";
44			device_type = "cpu";
45			reg = <0>;			/* CPU ID=0 */
46			clock-frequency = <700000000>;	/* 700MHz */
47		};
48	};
49	*/
50
51	memory {
52		device_type = "memory";
53		reg = <0 0x8000000>; /* 128MB, Set by VideoCore */
54	
55	};
56
57	system {
58		revision = <0>;			/* Set by VideoCore */
59		serial = <0 0>;			/* Set by VideoCore */
60	};
61
62	axi {
63		gpio: gpio {
64			/* BSC0 */
65			pins_bsc0_a: bsc0_a {
66				broadcom,function = "ALT0";
67			};
68
69			pins_bsc0_b: bsc0_b {
70				broadcom,function = "ALT0";
71			};
72
73			pins_bsc0_c: bsc0_c {
74				broadcom,function = "ALT1";
75			};
76
77			/* BSC1 */
78			pins_bsc1_a: bsc1_a {
79				broadcom,function = "ALT0";
80			};
81
82			pins_bsc1_b: bsc1_b {
83				broadcom,function = "ALT2";
84			};
85
86			/* GPCLK0 */
87			pins_gpclk0_a: gpclk0_a {
88				broadcom,function = "ALT0";
89			};
90
91			pins_gpclk0_b: gpclk0_b {
92				broadcom,function = "ALT5";
93			};
94
95			pins_gpclk0_c: gpclk0_c {
96				broadcom,function = "ALT0";
97			};
98
99			pins_gpclk0_d: gpclk0_d {
100				broadcom,function = "ALT0";
101			};
102
103			/* GPCLK1 */
104			pins_gpclk1_a: gpclk1_a {
105				broadcom,function = "ALT0";
106			};
107
108			pins_gpclk1_b: gpclk1_b {
109				broadcom,function = "ALT5";
110			};
111
112			pins_gpclk1_c: gpclk1_c {
113				broadcom,function = "ALT0";
114			};
115
116			pins_gpclk1_d: gpclk1_d {
117				broadcom,function = "ALT0";
118			};
119
120			/* GPCLK2 */
121			pins_gpclk2_a: gpclk2_a {
122				broadcom,function = "ALT0";
123			};
124
125			pins_gpclk2_b: gpclk2_b {
126				broadcom,function = "ALT0";
127			};
128
129			/* SPI0 */
130			pins_spi0_a: spi0_a {
131				broadcom,function = "ALT0";
132			};
133
134			pins_spi0_b: spi0_b {
135				broadcom,function = "ALT0";
136			};
137
138			/* PWM */
139			pins_pwm0_a: pwm0_a {
140				broadcom,function = "ALT0";
141			};
142
143			pins_pwm0_b: pwm0_b {
144				broadcom,function = "ALT5";
145			};
146
147			pins_pwm0_c: pwm0_c {
148				broadcom,function = "ALT0";
149			};
150
151			pins_pwm1_a: pwm1_a {
152				broadcom,function = "ALT0";
153			};
154
155			pins_pwm1_b: pwm1_b {
156				broadcom,function = "ALT5";
157			};
158
159			pins_pwm1_c: pwm1_c {
160				broadcom,function = "ALT0";
161			};
162
163			pins_pwm1_d: pwm1_d {
164				broadcom,function = "ALT0";
165			};
166
167			/* UART0 */
168			pins_uart0_a: uart0_a {
169				broadcom,function = "ALT0";
170			};
171
172			pins_uart0_b: uart0_b {
173				broadcom,function = "ALT3";
174			};
175
176			pins_uart0_c: uart0_c {
177				broadcom,function = "ALT2";
178			};
179
180			pins_uart0_fc_a: uart0_fc_a {
181				broadcom,function = "ALT3";
182			};
183
184			pins_uart0_fc_b: uart0_fc_b {
185				broadcom,function = "ALT3";
186			};
187
188			pins_uart0_fc_c: uart0_fc_c {
189				broadcom,function = "ALT2";
190			};
191
192			/* PCM */
193			pins_pcm_a: pcm_a {
194				broadcom,function = "ALT0";
195			};
196
197			pins_pcm_b: pcm_b {
198				broadcom,function = "ALT2";
199			};
200
201			/* Secondary Address Bus */
202			pins_sm_addr_a: sm_addr_a {
203				broadcom,function = "ALT1";
204			};
205
206			pins_sm_addr_b: sm_addr_b {
207				broadcom,function = "ALT1";
208			};
209
210			pins_sm_ctl_a: sm_ctl_a {
211				broadcom,function = "ALT1";
212			};
213
214			pins_sm_ctl_b: sm_ctl_b {
215				broadcom,function = "ALT1";
216			};
217
218			pins_sm_data_8bit_a: sm_data_8bit_a {
219				broadcom,function = "ALT1";
220			};
221
222			pins_sm_data_8bit_b: sm_data_8bit_b {
223				broadcom,function = "ALT1";
224			};
225
226			pins_sm_data_16bit: sm_data_16bit {
227				broadcom,function = "ALT1";
228			};
229
230			pins_sm_data_18bit: sm_data_18bit {
231				broadcom,function = "ALT1";
232			};
233
234			/* BSCSL */
235			pins_bscsl: bscsl {
236				broadcom,function = "ALT3";
237			};
238
239			/* SPISL */
240			pins_spisl: spisl {
241				broadcom,function = "ALT3";
242			};
243
244			/* SPI1 */
245			pins_spi1: spi1 {
246				broadcom,function = "ALT4";
247			};
248
249			/* UART1 */
250			pins_uart1_a: uart1_a {
251				broadcom,function = "ALT5";
252			};
253
254			pins_uart1_b: uart1_b {
255				broadcom,function = "ALT5";
256			};
257
258			pins_uart1_c: uart1_c {
259				broadcom,function = "ALT5";
260			};
261
262			pins_uart1_fc_a: uart1_fc_a {
263				broadcom,function = "ALT5";
264			};
265
266			pins_uart1_fc_b: uart1_fc_b {
267				broadcom,function = "ALT5";
268			};
269
270			pins_uart1_fc_c: uart1_fc_c {
271				broadcom,function = "ALT5";
272			};
273
274			/* SPI2 */
275			pins_spi2: spi2 {
276				broadcom,function = "ALT4";
277			};
278
279			/* ARM JTAG */
280			pins_arm_jtag_trst: arm_jtag_trst {
281				broadcom,function = "ALT4";
282			};
283
284			pins_arm_jtag_a: arm_jtag_a {
285				broadcom,function = "ALT5";
286			};
287
288			pins_arm_jtag_b: arm_jtag_b {
289				broadcom,function = "ALT4";
290			};
291
292			/* Reserved */
293			pins_reserved: reserved {
294				broadcom,function = "ALT3";
295			};
296		};
297		usb {
298			hub {
299				compatible = "usb,hub", "usb,device";
300				reg = <0x00000001>;
301				#address-cells = <1>;
302				#size-cells = <0>;
303				ethernet {
304					compatible = "net,ethernet",
305						     "usb,device";
306					reg = <0x00000001>;
307					mac-address = [00 00 00 00 00 00];
308				};
309			};
310
311		};
312
313
314	};
315
316	display {
317		compatible = "broadcom,bcm2835-fb", "broadcom,bcm2708-fb";
318
319		broadcom,vc-mailbox = <&vc_mbox>;
320		broadcom,vc-channel = <1>;
321
322		broadcom,width = <0>;		/* Set by VideoCore */
323		broadcom,height = <0>;		/* Set by VideoCore */
324		broadcom,depth = <0>;		/* Set by VideoCore */
325	};
326
327	leds {
328		compatible = "gpio-leds";
329
330		ok {
331			label = "ok";
332			gpios = <&gpio 16 1>;
333
334			/* Don't change this - it configures
335			 * how the led driver determines if
336			 * the led is on or off when it loads.
337			 */
338			default-state = "keep";
339
340			/* This is the real default state. */
341			linux,default-trigger = "default-on";
342		};
343	};
344
345	power: regulator {
346		compatible = "broadcom,bcm2835-power-mgr",
347			     "broadcom,bcm2708-power-mgr",
348			     "simple-bus";
349		#address-cells = <1>;
350		#size-cells = <0>;
351
352		broadcom,vc-mailbox = <&vc_mbox>;
353		broadcom,vc-channel = <0>;
354
355		regulator-name = "VideoCore";
356		regulator-min-microvolt = <5000000>;
357		regulator-max-microvolt = <5000000>;
358		regulator-always-on = <1>;
359
360		sd_card_power: regulator@0 {
361			compatible = "broadcom,bcm2835-power-dev",
362				     "broadcom,bcm2708-power-dev";
363			reg = <0>;
364
365			vin-supply = <&power>;
366			regulator-name = "SD Card";
367			regulator-min-microvolt = <3300000>;
368			regulator-max-microvolt = <3300000>;
369		};
370
371		/* This is for the controller itself, not the root port */
372		usb_hcd_power: regulator@3 {
373			compatible = "broadcom,bcm2835-power-dev",
374				     "broadcom,bcm2708-power-dev";
375			reg = <3>;
376
377			vin-supply = <&power>;
378			regulator-name = "USB HCD";
379			regulator-min-microvolt = <5000000>;
380			regulator-max-microvolt = <5000000>;
381		};
382	};
383
384	aliases {
385		uart0 = &uart0;
386	};
387
388	chosen {
389		bootargs = "";			/* Set by VideoCore */
390		stdin = "uart0";
391		stdout = "uart0";
392	};
393
394};
395