1252439Srpaulo/* 2252439Srpaulo * Copyright (c) 2012 Oleksandr Tymoshenko <gonzo@bluezbox.com> 3252439Srpaulo * 4252439Srpaulo * Redistribution and use in source and binary forms, with or without 5252439Srpaulo * modification, are permitted provided that the following conditions 6252439Srpaulo * are met: 7252439Srpaulo * 1. Redistributions of source code must retain the above copyright 8252439Srpaulo * notice, this list of conditions and the following disclaimer. 9252439Srpaulo * 2. Redistributions in binary form must reproduce the above copyright 10252439Srpaulo * notice, this list of conditions and the following disclaimer in the 11252439Srpaulo * documentation and/or other materials provided with the distribution. 12252439Srpaulo * 13252439Srpaulo * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14252439Srpaulo * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15252439Srpaulo * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16252439Srpaulo * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17252439Srpaulo * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18252439Srpaulo * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19252439Srpaulo * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20252439Srpaulo * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21252439Srpaulo * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22252439Srpaulo * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23252439Srpaulo * SUCH DAMAGE. 24252439Srpaulo * 25252439Srpaulo * $FreeBSD: releng/11.0/sys/boot/fdt/dts/arm/rpi.dts 290321 2015-11-03 04:50:58Z gonzo $ 26252439Srpaulo */ 27252439Srpaulo/dts-v1/; 28252439Srpaulo 29252439Srpaulo/include/ "bcm2835.dtsi" 30252439Srpaulo 31252439Srpaulo/ { 32252439Srpaulo model = "Raspberry Pi (BCM2835)"; 33252439Srpaulo compatible = "raspberrypi,model-a", "raspberrypi,model-b", 34252439Srpaulo "broadcom,bcm2835-vc", "broadcom,bcm2708-vc"; 35252439Srpaulo 36262725Simp memreserve = <0x08000000 0x08000000>; /* Set by VideoCore */ 37262725Simp 38275963Srpaulo cpus { 39275963Srpaulo #address-cells = <1>; 40275963Srpaulo #size-cells = <0>; 41275963Srpaulo cpu@0 { 42275963Srpaulo compatible = "arm,1176jzf-s"; 43275963Srpaulo device_type = "cpu"; 44275963Srpaulo reg = <0>; /* CPU ID=0 */ 45275963Srpaulo clock-frequency = <700000000>; /* 700MHz */ 46275963Srpaulo }; 47275963Srpaulo }; 48275963Srpaulo 49252439Srpaulo memory { 50252439Srpaulo device_type = "memory"; 51252439Srpaulo reg = <0 0x8000000>; /* 128MB, Set by VideoCore */ 52252439Srpaulo 53252439Srpaulo }; 54252439Srpaulo 55252439Srpaulo system { 56252439Srpaulo revision = <0>; /* Set by VideoCore */ 57252439Srpaulo serial = <0 0>; /* Set by VideoCore */ 58252439Srpaulo }; 59252439Srpaulo 60252439Srpaulo axi { 61252439Srpaulo gpio: gpio { 62252439Srpaulo /* BSC0 */ 63252439Srpaulo pins_bsc0_a: bsc0_a { 64252439Srpaulo broadcom,function = "ALT0"; 65252439Srpaulo }; 66252439Srpaulo 67252439Srpaulo pins_bsc0_b: bsc0_b { 68252439Srpaulo broadcom,function = "ALT0"; 69252439Srpaulo }; 70252439Srpaulo 71252439Srpaulo pins_bsc0_c: bsc0_c { 72252439Srpaulo broadcom,function = "ALT1"; 73252439Srpaulo }; 74252439Srpaulo 75252439Srpaulo /* BSC1 */ 76252439Srpaulo pins_bsc1_a: bsc1_a { 77252439Srpaulo broadcom,function = "ALT0"; 78252439Srpaulo }; 79252439Srpaulo 80252439Srpaulo pins_bsc1_b: bsc1_b { 81252439Srpaulo broadcom,function = "ALT2"; 82252439Srpaulo }; 83252439Srpaulo 84252439Srpaulo /* GPCLK0 */ 85252439Srpaulo pins_gpclk0_a: gpclk0_a { 86252439Srpaulo broadcom,function = "ALT0"; 87252439Srpaulo }; 88252439Srpaulo 89252439Srpaulo pins_gpclk0_b: gpclk0_b { 90252439Srpaulo broadcom,function = "ALT5"; 91252439Srpaulo }; 92252439Srpaulo 93252439Srpaulo pins_gpclk0_c: gpclk0_c { 94252439Srpaulo broadcom,function = "ALT0"; 95252439Srpaulo }; 96252439Srpaulo 97252439Srpaulo pins_gpclk0_d: gpclk0_d { 98252439Srpaulo broadcom,function = "ALT0"; 99252439Srpaulo }; 100252439Srpaulo 101252439Srpaulo /* GPCLK1 */ 102252439Srpaulo pins_gpclk1_a: gpclk1_a { 103252439Srpaulo broadcom,function = "ALT0"; 104252439Srpaulo }; 105252439Srpaulo 106252439Srpaulo pins_gpclk1_b: gpclk1_b { 107252439Srpaulo broadcom,function = "ALT5"; 108252439Srpaulo }; 109252439Srpaulo 110252439Srpaulo pins_gpclk1_c: gpclk1_c { 111252439Srpaulo broadcom,function = "ALT0"; 112252439Srpaulo }; 113252439Srpaulo 114252439Srpaulo pins_gpclk1_d: gpclk1_d { 115252439Srpaulo broadcom,function = "ALT0"; 116252439Srpaulo }; 117252439Srpaulo 118252439Srpaulo /* GPCLK2 */ 119252439Srpaulo pins_gpclk2_a: gpclk2_a { 120252439Srpaulo broadcom,function = "ALT0"; 121252439Srpaulo }; 122252439Srpaulo 123252439Srpaulo pins_gpclk2_b: gpclk2_b { 124252439Srpaulo broadcom,function = "ALT0"; 125252439Srpaulo }; 126252439Srpaulo 127252439Srpaulo /* SPI0 */ 128252439Srpaulo pins_spi0_a: spi0_a { 129252439Srpaulo broadcom,function = "ALT0"; 130252439Srpaulo }; 131252439Srpaulo 132252439Srpaulo pins_spi0_b: spi0_b { 133252439Srpaulo broadcom,function = "ALT0"; 134252439Srpaulo }; 135252439Srpaulo 136252439Srpaulo /* PWM */ 137252439Srpaulo pins_pwm0_a: pwm0_a { 138252439Srpaulo broadcom,function = "ALT0"; 139252439Srpaulo }; 140252439Srpaulo 141252439Srpaulo pins_pwm0_b: pwm0_b { 142252439Srpaulo broadcom,function = "ALT5"; 143252439Srpaulo }; 144252439Srpaulo 145252439Srpaulo pins_pwm0_c: pwm0_c { 146252439Srpaulo broadcom,function = "ALT0"; 147252439Srpaulo }; 148252439Srpaulo 149252439Srpaulo pins_pwm1_a: pwm1_a { 150252439Srpaulo broadcom,function = "ALT0"; 151252439Srpaulo }; 152252439Srpaulo 153252439Srpaulo pins_pwm1_b: pwm1_b { 154252439Srpaulo broadcom,function = "ALT5"; 155252439Srpaulo }; 156252439Srpaulo 157252439Srpaulo pins_pwm1_c: pwm1_c { 158252439Srpaulo broadcom,function = "ALT0"; 159252439Srpaulo }; 160252439Srpaulo 161252439Srpaulo pins_pwm1_d: pwm1_d { 162252439Srpaulo broadcom,function = "ALT0"; 163252439Srpaulo }; 164252439Srpaulo 165252439Srpaulo /* UART0 */ 166252439Srpaulo pins_uart0_a: uart0_a { 167252439Srpaulo broadcom,function = "ALT0"; 168252439Srpaulo }; 169252439Srpaulo 170252439Srpaulo pins_uart0_b: uart0_b { 171252439Srpaulo broadcom,function = "ALT3"; 172252439Srpaulo }; 173252439Srpaulo 174252439Srpaulo pins_uart0_c: uart0_c { 175252439Srpaulo broadcom,function = "ALT2"; 176252439Srpaulo }; 177252439Srpaulo 178252439Srpaulo pins_uart0_fc_a: uart0_fc_a { 179252439Srpaulo broadcom,function = "ALT3"; 180252439Srpaulo }; 181252439Srpaulo 182252439Srpaulo pins_uart0_fc_b: uart0_fc_b { 183252439Srpaulo broadcom,function = "ALT3"; 184252439Srpaulo }; 185252439Srpaulo 186252439Srpaulo pins_uart0_fc_c: uart0_fc_c { 187252439Srpaulo broadcom,function = "ALT2"; 188252439Srpaulo }; 189252439Srpaulo 190252439Srpaulo /* PCM */ 191252439Srpaulo pins_pcm_a: pcm_a { 192252439Srpaulo broadcom,function = "ALT0"; 193252439Srpaulo }; 194252439Srpaulo 195252439Srpaulo pins_pcm_b: pcm_b { 196252439Srpaulo broadcom,function = "ALT2"; 197252439Srpaulo }; 198252439Srpaulo 199252439Srpaulo /* Secondary Address Bus */ 200252439Srpaulo pins_sm_addr_a: sm_addr_a { 201252439Srpaulo broadcom,function = "ALT1"; 202252439Srpaulo }; 203252439Srpaulo 204252439Srpaulo pins_sm_addr_b: sm_addr_b { 205252439Srpaulo broadcom,function = "ALT1"; 206252439Srpaulo }; 207252439Srpaulo 208252439Srpaulo pins_sm_ctl_a: sm_ctl_a { 209252439Srpaulo broadcom,function = "ALT1"; 210252439Srpaulo }; 211252439Srpaulo 212252439Srpaulo pins_sm_ctl_b: sm_ctl_b { 213252439Srpaulo broadcom,function = "ALT1"; 214252439Srpaulo }; 215252439Srpaulo 216252439Srpaulo pins_sm_data_8bit_a: sm_data_8bit_a { 217252439Srpaulo broadcom,function = "ALT1"; 218252439Srpaulo }; 219252439Srpaulo 220252439Srpaulo pins_sm_data_8bit_b: sm_data_8bit_b { 221252439Srpaulo broadcom,function = "ALT1"; 222252439Srpaulo }; 223252439Srpaulo 224252439Srpaulo pins_sm_data_16bit: sm_data_16bit { 225252439Srpaulo broadcom,function = "ALT1"; 226252439Srpaulo }; 227252439Srpaulo 228252439Srpaulo pins_sm_data_18bit: sm_data_18bit { 229252439Srpaulo broadcom,function = "ALT1"; 230252439Srpaulo }; 231252439Srpaulo 232252439Srpaulo /* BSCSL */ 233252439Srpaulo pins_bscsl: bscsl { 234252439Srpaulo broadcom,function = "ALT3"; 235252439Srpaulo }; 236252439Srpaulo 237252439Srpaulo /* SPISL */ 238252439Srpaulo pins_spisl: spisl { 239252439Srpaulo broadcom,function = "ALT3"; 240252439Srpaulo }; 241252439Srpaulo 242252439Srpaulo /* SPI1 */ 243252439Srpaulo pins_spi1: spi1 { 244252439Srpaulo broadcom,function = "ALT4"; 245252439Srpaulo }; 246252439Srpaulo 247252439Srpaulo /* UART1 */ 248252439Srpaulo pins_uart1_a: uart1_a { 249252439Srpaulo broadcom,function = "ALT5"; 250252439Srpaulo }; 251252439Srpaulo 252252439Srpaulo pins_uart1_b: uart1_b { 253252439Srpaulo broadcom,function = "ALT5"; 254252439Srpaulo }; 255252439Srpaulo 256252439Srpaulo pins_uart1_c: uart1_c { 257252439Srpaulo broadcom,function = "ALT5"; 258252439Srpaulo }; 259252439Srpaulo 260252439Srpaulo pins_uart1_fc_a: uart1_fc_a { 261252439Srpaulo broadcom,function = "ALT5"; 262252439Srpaulo }; 263252439Srpaulo 264252439Srpaulo pins_uart1_fc_b: uart1_fc_b { 265252439Srpaulo broadcom,function = "ALT5"; 266252439Srpaulo }; 267252439Srpaulo 268252439Srpaulo pins_uart1_fc_c: uart1_fc_c { 269252439Srpaulo broadcom,function = "ALT5"; 270252439Srpaulo }; 271252439Srpaulo 272252439Srpaulo /* SPI2 */ 273252439Srpaulo pins_spi2: spi2 { 274252439Srpaulo broadcom,function = "ALT4"; 275252439Srpaulo }; 276252439Srpaulo 277252439Srpaulo /* ARM JTAG */ 278252439Srpaulo pins_arm_jtag_trst: arm_jtag_trst { 279252439Srpaulo broadcom,function = "ALT4"; 280252439Srpaulo }; 281252439Srpaulo 282252439Srpaulo pins_arm_jtag_a: arm_jtag_a { 283252439Srpaulo broadcom,function = "ALT5"; 284252439Srpaulo }; 285252439Srpaulo 286252439Srpaulo pins_arm_jtag_b: arm_jtag_b { 287252439Srpaulo broadcom,function = "ALT4"; 288252439Srpaulo }; 289252439Srpaulo 290252439Srpaulo /* Reserved */ 291252439Srpaulo pins_reserved: reserved { 292252439Srpaulo broadcom,function = "ALT3"; 293252439Srpaulo }; 294252439Srpaulo }; 295252439Srpaulo usb { 296252439Srpaulo hub { 297252439Srpaulo compatible = "usb,hub", "usb,device"; 298252439Srpaulo reg = <0x00000001>; 299252439Srpaulo #address-cells = <1>; 300252439Srpaulo #size-cells = <0>; 301252439Srpaulo ethernet { 302252439Srpaulo compatible = "net,ethernet", 303252439Srpaulo "usb,device"; 304252439Srpaulo reg = <0x00000001>; 305252439Srpaulo mac-address = [00 00 00 00 00 00]; 306252439Srpaulo }; 307252439Srpaulo }; 308252439Srpaulo 309252439Srpaulo }; 310252439Srpaulo 311252439Srpaulo 312252439Srpaulo }; 313252439Srpaulo 314252439Srpaulo display { 315252439Srpaulo compatible = "broadcom,bcm2835-fb", "broadcom,bcm2708-fb"; 316252439Srpaulo 317252439Srpaulo broadcom,vc-mailbox = <&vc_mbox>; 318252439Srpaulo broadcom,vc-channel = <1>; 319252439Srpaulo 320252439Srpaulo broadcom,width = <0>; /* Set by VideoCore */ 321252439Srpaulo broadcom,height = <0>; /* Set by VideoCore */ 322252439Srpaulo broadcom,depth = <0>; /* Set by VideoCore */ 323252439Srpaulo }; 324252439Srpaulo 325252439Srpaulo leds { 326252439Srpaulo compatible = "gpio-leds"; 327252439Srpaulo 328252439Srpaulo ok { 329252439Srpaulo label = "ok"; 330265013Sloos gpios = <&gpio 16 1>; 331252439Srpaulo 332252439Srpaulo /* Don't change this - it configures 333252439Srpaulo * how the led driver determines if 334252439Srpaulo * the led is on or off when it loads. 335252439Srpaulo */ 336252439Srpaulo default-state = "keep"; 337252439Srpaulo 338252439Srpaulo /* This is the real default state. */ 339252439Srpaulo linux,default-trigger = "default-on"; 340252439Srpaulo }; 341252439Srpaulo }; 342252439Srpaulo 343252439Srpaulo power: regulator { 344252439Srpaulo compatible = "broadcom,bcm2835-power-mgr", 345252439Srpaulo "broadcom,bcm2708-power-mgr", 346252439Srpaulo "simple-bus"; 347252439Srpaulo #address-cells = <1>; 348252439Srpaulo #size-cells = <0>; 349252439Srpaulo 350252439Srpaulo broadcom,vc-mailbox = <&vc_mbox>; 351252439Srpaulo broadcom,vc-channel = <0>; 352252439Srpaulo 353252439Srpaulo regulator-name = "VideoCore"; 354252439Srpaulo regulator-min-microvolt = <5000000>; 355252439Srpaulo regulator-max-microvolt = <5000000>; 356252439Srpaulo regulator-always-on = <1>; 357252439Srpaulo 358252439Srpaulo sd_card_power: regulator@0 { 359252439Srpaulo compatible = "broadcom,bcm2835-power-dev", 360252439Srpaulo "broadcom,bcm2708-power-dev"; 361252439Srpaulo reg = <0>; 362252439Srpaulo 363252439Srpaulo vin-supply = <&power>; 364252439Srpaulo regulator-name = "SD Card"; 365252439Srpaulo regulator-min-microvolt = <3300000>; 366252439Srpaulo regulator-max-microvolt = <3300000>; 367252439Srpaulo }; 368252439Srpaulo 369252439Srpaulo /* This is for the controller itself, not the root port */ 370252439Srpaulo usb_hcd_power: regulator@3 { 371252439Srpaulo compatible = "broadcom,bcm2835-power-dev", 372252439Srpaulo "broadcom,bcm2708-power-dev"; 373252439Srpaulo reg = <3>; 374252439Srpaulo 375252439Srpaulo vin-supply = <&power>; 376252439Srpaulo regulator-name = "USB HCD"; 377252439Srpaulo regulator-min-microvolt = <5000000>; 378252439Srpaulo regulator-max-microvolt = <5000000>; 379252439Srpaulo }; 380252439Srpaulo }; 381252439Srpaulo 382252439Srpaulo aliases { 383252439Srpaulo uart0 = &uart0; 384252439Srpaulo }; 385252439Srpaulo 386252439Srpaulo chosen { 387252439Srpaulo bootargs = ""; /* Set by VideoCore */ 388252439Srpaulo stdin = "uart0"; 389252439Srpaulo stdout = "uart0"; 390252439Srpaulo }; 391252439Srpaulo 392290321Sgonzo __overrides__ { 393290321Sgonzo cache_line_size = <&vchiq>, "cache-line-size:0"; 394290321Sgonzo }; 395252439Srpaulo}; 396