]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - sys/boot/fdt/dts/arm/rpi.dts
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / sys / boot / fdt / dts / arm / 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 / {
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 };