rpi.dts revision 276101
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 276101 2014-12-23 03:00:18Z 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 /* 39 cpus { 40 #address-cells = <1>; 41 #size-cells = <0>; 42 cpu@0 { 43 compatible = "arm,1176jzf-s"; 44 device_type = "cpu"; 45 reg = <0>; /* CPU ID=0 */ 46 clock-frequency = <700000000>; /* 700MHz */ 47 }; 48 }; 49 */ 50 51 memory { 52 device_type = "memory"; 53 reg = <0 0x8000000>; /* 128MB, Set by VideoCore */ 54 55 }; 56 57 system { 58 revision = <0>; /* Set by VideoCore */ 59 serial = <0 0>; /* Set by VideoCore */ 60 }; 61 62 axi { 63 gpio: gpio { 64 /* BSC0 */ 65 pins_bsc0_a: bsc0_a { 66 broadcom,function = "ALT0"; 67 }; 68 69 pins_bsc0_b: bsc0_b { 70 broadcom,function = "ALT0"; 71 }; 72 73 pins_bsc0_c: bsc0_c { 74 broadcom,function = "ALT1"; 75 }; 76 77 /* BSC1 */ 78 pins_bsc1_a: bsc1_a { 79 broadcom,function = "ALT0"; 80 }; 81 82 pins_bsc1_b: bsc1_b { 83 broadcom,function = "ALT2"; 84 }; 85 86 /* GPCLK0 */ 87 pins_gpclk0_a: gpclk0_a { 88 broadcom,function = "ALT0"; 89 }; 90 91 pins_gpclk0_b: gpclk0_b { 92 broadcom,function = "ALT5"; 93 }; 94 95 pins_gpclk0_c: gpclk0_c { 96 broadcom,function = "ALT0"; 97 }; 98 99 pins_gpclk0_d: gpclk0_d { 100 broadcom,function = "ALT0"; 101 }; 102 103 /* GPCLK1 */ 104 pins_gpclk1_a: gpclk1_a { 105 broadcom,function = "ALT0"; 106 }; 107 108 pins_gpclk1_b: gpclk1_b { 109 broadcom,function = "ALT5"; 110 }; 111 112 pins_gpclk1_c: gpclk1_c { 113 broadcom,function = "ALT0"; 114 }; 115 116 pins_gpclk1_d: gpclk1_d { 117 broadcom,function = "ALT0"; 118 }; 119 120 /* GPCLK2 */ 121 pins_gpclk2_a: gpclk2_a { 122 broadcom,function = "ALT0"; 123 }; 124 125 pins_gpclk2_b: gpclk2_b { 126 broadcom,function = "ALT0"; 127 }; 128 129 /* SPI0 */ 130 pins_spi0_a: spi0_a { 131 broadcom,function = "ALT0"; 132 }; 133 134 pins_spi0_b: spi0_b { 135 broadcom,function = "ALT0"; 136 }; 137 138 /* PWM */ 139 pins_pwm0_a: pwm0_a { 140 broadcom,function = "ALT0"; 141 }; 142 143 pins_pwm0_b: pwm0_b { 144 broadcom,function = "ALT5"; 145 }; 146 147 pins_pwm0_c: pwm0_c { 148 broadcom,function = "ALT0"; 149 }; 150 151 pins_pwm1_a: pwm1_a { 152 broadcom,function = "ALT0"; 153 }; 154 155 pins_pwm1_b: pwm1_b { 156 broadcom,function = "ALT5"; 157 }; 158 159 pins_pwm1_c: pwm1_c { 160 broadcom,function = "ALT0"; 161 }; 162 163 pins_pwm1_d: pwm1_d { 164 broadcom,function = "ALT0"; 165 }; 166 167 /* UART0 */ 168 pins_uart0_a: uart0_a { 169 broadcom,function = "ALT0"; 170 }; 171 172 pins_uart0_b: uart0_b { 173 broadcom,function = "ALT3"; 174 }; 175 176 pins_uart0_c: uart0_c { 177 broadcom,function = "ALT2"; 178 }; 179 180 pins_uart0_fc_a: uart0_fc_a { 181 broadcom,function = "ALT3"; 182 }; 183 184 pins_uart0_fc_b: uart0_fc_b { 185 broadcom,function = "ALT3"; 186 }; 187 188 pins_uart0_fc_c: uart0_fc_c { 189 broadcom,function = "ALT2"; 190 }; 191 192 /* PCM */ 193 pins_pcm_a: pcm_a { 194 broadcom,function = "ALT0"; 195 }; 196 197 pins_pcm_b: pcm_b { 198 broadcom,function = "ALT2"; 199 }; 200 201 /* Secondary Address Bus */ 202 pins_sm_addr_a: sm_addr_a { 203 broadcom,function = "ALT1"; 204 }; 205 206 pins_sm_addr_b: sm_addr_b { 207 broadcom,function = "ALT1"; 208 }; 209 210 pins_sm_ctl_a: sm_ctl_a { 211 broadcom,function = "ALT1"; 212 }; 213 214 pins_sm_ctl_b: sm_ctl_b { 215 broadcom,function = "ALT1"; 216 }; 217 218 pins_sm_data_8bit_a: sm_data_8bit_a { 219 broadcom,function = "ALT1"; 220 }; 221 222 pins_sm_data_8bit_b: sm_data_8bit_b { 223 broadcom,function = "ALT1"; 224 }; 225 226 pins_sm_data_16bit: sm_data_16bit { 227 broadcom,function = "ALT1"; 228 }; 229 230 pins_sm_data_18bit: sm_data_18bit { 231 broadcom,function = "ALT1"; 232 }; 233 234 /* BSCSL */ 235 pins_bscsl: bscsl { 236 broadcom,function = "ALT3"; 237 }; 238 239 /* SPISL */ 240 pins_spisl: spisl { 241 broadcom,function = "ALT3"; 242 }; 243 244 /* SPI1 */ 245 pins_spi1: spi1 { 246 broadcom,function = "ALT4"; 247 }; 248 249 /* UART1 */ 250 pins_uart1_a: uart1_a { 251 broadcom,function = "ALT5"; 252 }; 253 254 pins_uart1_b: uart1_b { 255 broadcom,function = "ALT5"; 256 }; 257 258 pins_uart1_c: uart1_c { 259 broadcom,function = "ALT5"; 260 }; 261 262 pins_uart1_fc_a: uart1_fc_a { 263 broadcom,function = "ALT5"; 264 }; 265 266 pins_uart1_fc_b: uart1_fc_b { 267 broadcom,function = "ALT5"; 268 }; 269 270 pins_uart1_fc_c: uart1_fc_c { 271 broadcom,function = "ALT5"; 272 }; 273 274 /* SPI2 */ 275 pins_spi2: spi2 { 276 broadcom,function = "ALT4"; 277 }; 278 279 /* ARM JTAG */ 280 pins_arm_jtag_trst: arm_jtag_trst { 281 broadcom,function = "ALT4"; 282 }; 283 284 pins_arm_jtag_a: arm_jtag_a { 285 broadcom,function = "ALT5"; 286 }; 287 288 pins_arm_jtag_b: arm_jtag_b { 289 broadcom,function = "ALT4"; 290 }; 291 292 /* Reserved */ 293 pins_reserved: reserved { 294 broadcom,function = "ALT3"; 295 }; 296 }; 297 usb { 298 hub { 299 compatible = "usb,hub", "usb,device"; 300 reg = <0x00000001>; 301 #address-cells = <1>; 302 #size-cells = <0>; 303 ethernet { 304 compatible = "net,ethernet", 305 "usb,device"; 306 reg = <0x00000001>; 307 mac-address = [00 00 00 00 00 00]; 308 }; 309 }; 310 311 }; 312 313 314 }; 315 316 display { 317 compatible = "broadcom,bcm2835-fb", "broadcom,bcm2708-fb"; 318 319 broadcom,vc-mailbox = <&vc_mbox>; 320 broadcom,vc-channel = <1>; 321 322 broadcom,width = <0>; /* Set by VideoCore */ 323 broadcom,height = <0>; /* Set by VideoCore */ 324 broadcom,depth = <0>; /* Set by VideoCore */ 325 }; 326 327 leds { 328 compatible = "gpio-leds"; 329 330 ok { 331 label = "ok"; 332 gpios = <&gpio 16 1>; 333 334 /* Don't change this - it configures 335 * how the led driver determines if 336 * the led is on or off when it loads. 337 */ 338 default-state = "keep"; 339 340 /* This is the real default state. */ 341 linux,default-trigger = "default-on"; 342 }; 343 }; 344 345 power: regulator { 346 compatible = "broadcom,bcm2835-power-mgr", 347 "broadcom,bcm2708-power-mgr", 348 "simple-bus"; 349 #address-cells = <1>; 350 #size-cells = <0>; 351 352 broadcom,vc-mailbox = <&vc_mbox>; 353 broadcom,vc-channel = <0>; 354 355 regulator-name = "VideoCore"; 356 regulator-min-microvolt = <5000000>; 357 regulator-max-microvolt = <5000000>; 358 regulator-always-on = <1>; 359 360 sd_card_power: regulator@0 { 361 compatible = "broadcom,bcm2835-power-dev", 362 "broadcom,bcm2708-power-dev"; 363 reg = <0>; 364 365 vin-supply = <&power>; 366 regulator-name = "SD Card"; 367 regulator-min-microvolt = <3300000>; 368 regulator-max-microvolt = <3300000>; 369 }; 370 371 /* This is for the controller itself, not the root port */ 372 usb_hcd_power: regulator@3 { 373 compatible = "broadcom,bcm2835-power-dev", 374 "broadcom,bcm2708-power-dev"; 375 reg = <3>; 376 377 vin-supply = <&power>; 378 regulator-name = "USB HCD"; 379 regulator-min-microvolt = <5000000>; 380 regulator-max-microvolt = <5000000>; 381 }; 382 }; 383 384 aliases { 385 uart0 = &uart0; 386 }; 387 388 chosen { 389 bootargs = ""; /* Set by VideoCore */ 390 stdin = "uart0"; 391 stdout = "uart0"; 392 }; 393 394}; 395