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