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"
32 model = "Raspberry Pi (BCM2835)";
33 compatible = "raspberrypi,model-a", "raspberrypi,model-b",
34 "broadcom,bcm2835-vc", "broadcom,bcm2708-vc";
36 memreserve = <0x08000000 0x08000000>; /* Set by VideoCore */
42 compatible = "arm,1176jzf-s";
44 reg = <0>; /* CPU ID=0 */
45 clock-frequency = <700000000>; /* 700MHz */
50 device_type = "memory";
51 reg = <0 0x8000000>; /* 128MB, Set by VideoCore */
56 revision = <0>; /* Set by VideoCore */
57 serial = <0 0>; /* Set by VideoCore */
64 broadcom,function = "ALT0";
68 broadcom,function = "ALT0";
72 broadcom,function = "ALT1";
77 broadcom,function = "ALT0";
81 broadcom,function = "ALT2";
85 pins_gpclk0_a: gpclk0_a {
86 broadcom,function = "ALT0";
89 pins_gpclk0_b: gpclk0_b {
90 broadcom,function = "ALT5";
93 pins_gpclk0_c: gpclk0_c {
94 broadcom,function = "ALT0";
97 pins_gpclk0_d: gpclk0_d {
98 broadcom,function = "ALT0";
102 pins_gpclk1_a: gpclk1_a {
103 broadcom,function = "ALT0";
106 pins_gpclk1_b: gpclk1_b {
107 broadcom,function = "ALT5";
110 pins_gpclk1_c: gpclk1_c {
111 broadcom,function = "ALT0";
114 pins_gpclk1_d: gpclk1_d {
115 broadcom,function = "ALT0";
119 pins_gpclk2_a: gpclk2_a {
120 broadcom,function = "ALT0";
123 pins_gpclk2_b: gpclk2_b {
124 broadcom,function = "ALT0";
128 pins_spi0_a: spi0_a {
129 broadcom,function = "ALT0";
132 pins_spi0_b: spi0_b {
133 broadcom,function = "ALT0";
137 pins_pwm0_a: pwm0_a {
138 broadcom,function = "ALT0";
141 pins_pwm0_b: pwm0_b {
142 broadcom,function = "ALT5";
145 pins_pwm0_c: pwm0_c {
146 broadcom,function = "ALT0";
149 pins_pwm1_a: pwm1_a {
150 broadcom,function = "ALT0";
153 pins_pwm1_b: pwm1_b {
154 broadcom,function = "ALT5";
157 pins_pwm1_c: pwm1_c {
158 broadcom,function = "ALT0";
161 pins_pwm1_d: pwm1_d {
162 broadcom,function = "ALT0";
166 pins_uart0_a: uart0_a {
167 broadcom,function = "ALT0";
170 pins_uart0_b: uart0_b {
171 broadcom,function = "ALT3";
174 pins_uart0_c: uart0_c {
175 broadcom,function = "ALT2";
178 pins_uart0_fc_a: uart0_fc_a {
179 broadcom,function = "ALT3";
182 pins_uart0_fc_b: uart0_fc_b {
183 broadcom,function = "ALT3";
186 pins_uart0_fc_c: uart0_fc_c {
187 broadcom,function = "ALT2";
192 broadcom,function = "ALT0";
196 broadcom,function = "ALT2";
199 /* Secondary Address Bus */
200 pins_sm_addr_a: sm_addr_a {
201 broadcom,function = "ALT1";
204 pins_sm_addr_b: sm_addr_b {
205 broadcom,function = "ALT1";
208 pins_sm_ctl_a: sm_ctl_a {
209 broadcom,function = "ALT1";
212 pins_sm_ctl_b: sm_ctl_b {
213 broadcom,function = "ALT1";
216 pins_sm_data_8bit_a: sm_data_8bit_a {
217 broadcom,function = "ALT1";
220 pins_sm_data_8bit_b: sm_data_8bit_b {
221 broadcom,function = "ALT1";
224 pins_sm_data_16bit: sm_data_16bit {
225 broadcom,function = "ALT1";
228 pins_sm_data_18bit: sm_data_18bit {
229 broadcom,function = "ALT1";
234 broadcom,function = "ALT3";
239 broadcom,function = "ALT3";
244 broadcom,function = "ALT4";
248 pins_uart1_a: uart1_a {
249 broadcom,function = "ALT5";
252 pins_uart1_b: uart1_b {
253 broadcom,function = "ALT5";
256 pins_uart1_c: uart1_c {
257 broadcom,function = "ALT5";
260 pins_uart1_fc_a: uart1_fc_a {
261 broadcom,function = "ALT5";
264 pins_uart1_fc_b: uart1_fc_b {
265 broadcom,function = "ALT5";
268 pins_uart1_fc_c: uart1_fc_c {
269 broadcom,function = "ALT5";
274 broadcom,function = "ALT4";
278 pins_arm_jtag_trst: arm_jtag_trst {
279 broadcom,function = "ALT4";
282 pins_arm_jtag_a: arm_jtag_a {
283 broadcom,function = "ALT5";
286 pins_arm_jtag_b: arm_jtag_b {
287 broadcom,function = "ALT4";
291 pins_reserved: reserved {
292 broadcom,function = "ALT3";
297 compatible = "usb,hub", "usb,device";
299 #address-cells = <1>;
302 compatible = "net,ethernet",
305 mac-address = [00 00 00 00 00 00];
315 compatible = "broadcom,bcm2835-fb", "broadcom,bcm2708-fb";
317 broadcom,vc-mailbox = <&vc_mbox>;
318 broadcom,vc-channel = <1>;
320 broadcom,width = <0>; /* Set by VideoCore */
321 broadcom,height = <0>; /* Set by VideoCore */
322 broadcom,depth = <0>; /* Set by VideoCore */
326 compatible = "gpio-leds";
330 gpios = <&gpio 16 1>;
332 /* Don't change this - it configures
333 * how the led driver determines if
334 * the led is on or off when it loads.
336 default-state = "keep";
338 /* This is the real default state. */
339 linux,default-trigger = "default-on";
344 compatible = "broadcom,bcm2835-power-mgr",
345 "broadcom,bcm2708-power-mgr",
347 #address-cells = <1>;
350 broadcom,vc-mailbox = <&vc_mbox>;
351 broadcom,vc-channel = <0>;
353 regulator-name = "VideoCore";
354 regulator-min-microvolt = <5000000>;
355 regulator-max-microvolt = <5000000>;
356 regulator-always-on = <1>;
358 sd_card_power: regulator@0 {
359 compatible = "broadcom,bcm2835-power-dev",
360 "broadcom,bcm2708-power-dev";
363 vin-supply = <&power>;
364 regulator-name = "SD Card";
365 regulator-min-microvolt = <3300000>;
366 regulator-max-microvolt = <3300000>;
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";
375 vin-supply = <&power>;
376 regulator-name = "USB HCD";
377 regulator-min-microvolt = <5000000>;
378 regulator-max-microvolt = <5000000>;
387 bootargs = ""; /* Set by VideoCore */
393 cache_line_size = <&vchiq>, "cache-line-size:0";