2 * Copyright (c) 2012 Oleksandr Tymoshenko <gonzo@bluezbox.com>
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
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.
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
29 /include/ "bcm2835.dtsi"
31 /memreserve/ 0x08000000 0x08000000; /* Set by VideoCore */
34 model = "Raspberry Pi (BCM2835)";
35 compatible = "raspberrypi,model-a", "raspberrypi,model-b",
36 "broadcom,bcm2835-vc", "broadcom,bcm2708-vc";
39 device_type = "memory";
40 reg = <0 0x8000000>; /* 128MB, Set by VideoCore */
45 revision = <0>; /* Set by VideoCore */
46 serial = <0 0>; /* Set by VideoCore */
53 broadcom,function = "ALT0";
57 broadcom,function = "ALT0";
61 broadcom,function = "ALT1";
66 broadcom,function = "ALT0";
70 broadcom,function = "ALT2";
74 pins_gpclk0_a: gpclk0_a {
75 broadcom,function = "ALT0";
78 pins_gpclk0_b: gpclk0_b {
79 broadcom,function = "ALT5";
82 pins_gpclk0_c: gpclk0_c {
83 broadcom,function = "ALT0";
86 pins_gpclk0_d: gpclk0_d {
87 broadcom,function = "ALT0";
91 pins_gpclk1_a: gpclk1_a {
92 broadcom,function = "ALT0";
95 pins_gpclk1_b: gpclk1_b {
96 broadcom,function = "ALT5";
99 pins_gpclk1_c: gpclk1_c {
100 broadcom,function = "ALT0";
103 pins_gpclk1_d: gpclk1_d {
104 broadcom,function = "ALT0";
108 pins_gpclk2_a: gpclk2_a {
109 broadcom,function = "ALT0";
112 pins_gpclk2_b: gpclk2_b {
113 broadcom,function = "ALT0";
117 pins_spi0_a: spi0_a {
118 broadcom,function = "ALT0";
121 pins_spi0_b: spi0_b {
122 broadcom,function = "ALT0";
126 pins_pwm0_a: pwm0_a {
127 broadcom,function = "ALT0";
130 pins_pwm0_b: pwm0_b {
131 broadcom,function = "ALT5";
134 pins_pwm0_c: pwm0_c {
135 broadcom,function = "ALT0";
138 pins_pwm1_a: pwm1_a {
139 broadcom,function = "ALT0";
142 pins_pwm1_b: pwm1_b {
143 broadcom,function = "ALT5";
146 pins_pwm1_c: pwm1_c {
147 broadcom,function = "ALT0";
150 pins_pwm1_d: pwm1_d {
151 broadcom,function = "ALT0";
155 pins_uart0_a: uart0_a {
156 broadcom,function = "ALT0";
159 pins_uart0_b: uart0_b {
160 broadcom,function = "ALT3";
163 pins_uart0_c: uart0_c {
164 broadcom,function = "ALT2";
167 pins_uart0_fc_a: uart0_fc_a {
168 broadcom,function = "ALT3";
171 pins_uart0_fc_b: uart0_fc_b {
172 broadcom,function = "ALT3";
175 pins_uart0_fc_c: uart0_fc_c {
176 broadcom,function = "ALT2";
181 broadcom,function = "ALT0";
185 broadcom,function = "ALT2";
188 /* Secondary Address Bus */
189 pins_sm_addr_a: sm_addr_a {
190 broadcom,function = "ALT1";
193 pins_sm_addr_b: sm_addr_b {
194 broadcom,function = "ALT1";
197 pins_sm_ctl_a: sm_ctl_a {
198 broadcom,function = "ALT1";
201 pins_sm_ctl_b: sm_ctl_b {
202 broadcom,function = "ALT1";
205 pins_sm_data_8bit_a: sm_data_8bit_a {
206 broadcom,function = "ALT1";
209 pins_sm_data_8bit_b: sm_data_8bit_b {
210 broadcom,function = "ALT1";
213 pins_sm_data_16bit: sm_data_16bit {
214 broadcom,function = "ALT1";
217 pins_sm_data_18bit: sm_data_18bit {
218 broadcom,function = "ALT1";
223 broadcom,function = "ALT3";
228 broadcom,function = "ALT3";
233 broadcom,function = "ALT4";
237 pins_uart1_a: uart1_a {
238 broadcom,function = "ALT5";
241 pins_uart1_b: uart1_b {
242 broadcom,function = "ALT5";
245 pins_uart1_c: uart1_c {
246 broadcom,function = "ALT5";
249 pins_uart1_fc_a: uart1_fc_a {
250 broadcom,function = "ALT5";
253 pins_uart1_fc_b: uart1_fc_b {
254 broadcom,function = "ALT5";
257 pins_uart1_fc_c: uart1_fc_c {
258 broadcom,function = "ALT5";
263 broadcom,function = "ALT4";
267 pins_arm_jtag_trst: arm_jtag_trst {
268 broadcom,function = "ALT4";
271 pins_arm_jtag_a: arm_jtag_a {
272 broadcom,function = "ALT5";
275 pins_arm_jtag_b: arm_jtag_b {
276 broadcom,function = "ALT4";
280 pins_reserved: reserved {
281 broadcom,function = "ALT3";
286 compatible = "usb,hub", "usb,device";
288 #address-cells = <1>;
291 compatible = "net,ethernet",
294 mac-address = [00 00 00 00 00 00];
304 compatible = "broadcom,bcm2835-fb", "broadcom,bcm2708-fb";
306 broadcom,vc-mailbox = <&vc_mbox>;
307 broadcom,vc-channel = <1>;
309 broadcom,width = <0>; /* Set by VideoCore */
310 broadcom,height = <0>; /* Set by VideoCore */
311 broadcom,depth = <0>; /* Set by VideoCore */
315 compatible = "gpio-leds";
319 gpios = <&gpio 16 1>;
321 /* Don't change this - it configures
322 * how the led driver determines if
323 * the led is on or off when it loads.
325 default-state = "keep";
327 /* This is the real default state. */
328 linux,default-trigger = "default-on";
333 compatible = "broadcom,bcm2835-power-mgr",
334 "broadcom,bcm2708-power-mgr",
336 #address-cells = <1>;
339 broadcom,vc-mailbox = <&vc_mbox>;
340 broadcom,vc-channel = <0>;
342 regulator-name = "VideoCore";
343 regulator-min-microvolt = <5000000>;
344 regulator-max-microvolt = <5000000>;
345 regulator-always-on = <1>;
347 sd_card_power: regulator@0 {
348 compatible = "broadcom,bcm2835-power-dev",
349 "broadcom,bcm2708-power-dev";
352 vin-supply = <&power>;
353 regulator-name = "SD Card";
354 regulator-min-microvolt = <3300000>;
355 regulator-max-microvolt = <3300000>;
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";
364 vin-supply = <&power>;
365 regulator-name = "USB HCD";
366 regulator-min-microvolt = <5000000>;
367 regulator-max-microvolt = <5000000>;
376 bootargs = ""; /* Set by VideoCore */