]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - sys/boot/fdt/dts/rpi.dts
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
[FreeBSD/stable/10.git] / sys / boot / fdt / dts / rpi.dts
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$
26  */
27 /dts-v1/;
28
29 /include/ "bcm2835.dtsi"
30
31 /memreserve/ 0x08000000 0x08000000;     /* Set by VideoCore */
32
33 / {
34         model = "Raspberry Pi (BCM2835)";
35         compatible = "raspberrypi,model-a", "raspberrypi,model-b", 
36                      "broadcom,bcm2835-vc", "broadcom,bcm2708-vc";
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 };