rpi.dts revision 275963
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/arm/rpi.dts 275963 2014-12-20 19:15:10Z rpaulo $ 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}; 393