rpi.dts revision 252439
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: head/sys/boot/fdt/dts/rpi.dts 252439 2013-07-01 05:01:01Z rpaulo $ 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}; 382