rpi.dts revision 265013
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: head/sys/boot/fdt/dts/arm/rpi.dts 265013 2014-04-27 13:10:51Z loos $ 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 38252439Srpaulo memory { 39252439Srpaulo device_type = "memory"; 40252439Srpaulo reg = <0 0x8000000>; /* 128MB, Set by VideoCore */ 41252439Srpaulo 42252439Srpaulo }; 43252439Srpaulo 44252439Srpaulo system { 45252439Srpaulo revision = <0>; /* Set by VideoCore */ 46252439Srpaulo serial = <0 0>; /* Set by VideoCore */ 47252439Srpaulo }; 48252439Srpaulo 49252439Srpaulo axi { 50252439Srpaulo gpio: gpio { 51252439Srpaulo /* BSC0 */ 52252439Srpaulo pins_bsc0_a: bsc0_a { 53252439Srpaulo broadcom,function = "ALT0"; 54252439Srpaulo }; 55252439Srpaulo 56252439Srpaulo pins_bsc0_b: bsc0_b { 57252439Srpaulo broadcom,function = "ALT0"; 58252439Srpaulo }; 59252439Srpaulo 60252439Srpaulo pins_bsc0_c: bsc0_c { 61252439Srpaulo broadcom,function = "ALT1"; 62252439Srpaulo }; 63252439Srpaulo 64252439Srpaulo /* BSC1 */ 65252439Srpaulo pins_bsc1_a: bsc1_a { 66252439Srpaulo broadcom,function = "ALT0"; 67252439Srpaulo }; 68252439Srpaulo 69252439Srpaulo pins_bsc1_b: bsc1_b { 70252439Srpaulo broadcom,function = "ALT2"; 71252439Srpaulo }; 72252439Srpaulo 73252439Srpaulo /* GPCLK0 */ 74252439Srpaulo pins_gpclk0_a: gpclk0_a { 75252439Srpaulo broadcom,function = "ALT0"; 76252439Srpaulo }; 77252439Srpaulo 78252439Srpaulo pins_gpclk0_b: gpclk0_b { 79252439Srpaulo broadcom,function = "ALT5"; 80252439Srpaulo }; 81252439Srpaulo 82252439Srpaulo pins_gpclk0_c: gpclk0_c { 83252439Srpaulo broadcom,function = "ALT0"; 84252439Srpaulo }; 85252439Srpaulo 86252439Srpaulo pins_gpclk0_d: gpclk0_d { 87252439Srpaulo broadcom,function = "ALT0"; 88252439Srpaulo }; 89252439Srpaulo 90252439Srpaulo /* GPCLK1 */ 91252439Srpaulo pins_gpclk1_a: gpclk1_a { 92252439Srpaulo broadcom,function = "ALT0"; 93252439Srpaulo }; 94252439Srpaulo 95252439Srpaulo pins_gpclk1_b: gpclk1_b { 96252439Srpaulo broadcom,function = "ALT5"; 97252439Srpaulo }; 98252439Srpaulo 99252439Srpaulo pins_gpclk1_c: gpclk1_c { 100252439Srpaulo broadcom,function = "ALT0"; 101252439Srpaulo }; 102252439Srpaulo 103252439Srpaulo pins_gpclk1_d: gpclk1_d { 104252439Srpaulo broadcom,function = "ALT0"; 105252439Srpaulo }; 106252439Srpaulo 107252439Srpaulo /* GPCLK2 */ 108252439Srpaulo pins_gpclk2_a: gpclk2_a { 109252439Srpaulo broadcom,function = "ALT0"; 110252439Srpaulo }; 111252439Srpaulo 112252439Srpaulo pins_gpclk2_b: gpclk2_b { 113252439Srpaulo broadcom,function = "ALT0"; 114252439Srpaulo }; 115252439Srpaulo 116252439Srpaulo /* SPI0 */ 117252439Srpaulo pins_spi0_a: spi0_a { 118252439Srpaulo broadcom,function = "ALT0"; 119252439Srpaulo }; 120252439Srpaulo 121252439Srpaulo pins_spi0_b: spi0_b { 122252439Srpaulo broadcom,function = "ALT0"; 123252439Srpaulo }; 124252439Srpaulo 125252439Srpaulo /* PWM */ 126252439Srpaulo pins_pwm0_a: pwm0_a { 127252439Srpaulo broadcom,function = "ALT0"; 128252439Srpaulo }; 129252439Srpaulo 130252439Srpaulo pins_pwm0_b: pwm0_b { 131252439Srpaulo broadcom,function = "ALT5"; 132252439Srpaulo }; 133252439Srpaulo 134252439Srpaulo pins_pwm0_c: pwm0_c { 135252439Srpaulo broadcom,function = "ALT0"; 136252439Srpaulo }; 137252439Srpaulo 138252439Srpaulo pins_pwm1_a: pwm1_a { 139252439Srpaulo broadcom,function = "ALT0"; 140252439Srpaulo }; 141252439Srpaulo 142252439Srpaulo pins_pwm1_b: pwm1_b { 143252439Srpaulo broadcom,function = "ALT5"; 144252439Srpaulo }; 145252439Srpaulo 146252439Srpaulo pins_pwm1_c: pwm1_c { 147252439Srpaulo broadcom,function = "ALT0"; 148252439Srpaulo }; 149252439Srpaulo 150252439Srpaulo pins_pwm1_d: pwm1_d { 151252439Srpaulo broadcom,function = "ALT0"; 152252439Srpaulo }; 153252439Srpaulo 154252439Srpaulo /* UART0 */ 155252439Srpaulo pins_uart0_a: uart0_a { 156252439Srpaulo broadcom,function = "ALT0"; 157252439Srpaulo }; 158252439Srpaulo 159252439Srpaulo pins_uart0_b: uart0_b { 160252439Srpaulo broadcom,function = "ALT3"; 161252439Srpaulo }; 162252439Srpaulo 163252439Srpaulo pins_uart0_c: uart0_c { 164252439Srpaulo broadcom,function = "ALT2"; 165252439Srpaulo }; 166252439Srpaulo 167252439Srpaulo pins_uart0_fc_a: uart0_fc_a { 168252439Srpaulo broadcom,function = "ALT3"; 169252439Srpaulo }; 170252439Srpaulo 171252439Srpaulo pins_uart0_fc_b: uart0_fc_b { 172252439Srpaulo broadcom,function = "ALT3"; 173252439Srpaulo }; 174252439Srpaulo 175252439Srpaulo pins_uart0_fc_c: uart0_fc_c { 176252439Srpaulo broadcom,function = "ALT2"; 177252439Srpaulo }; 178252439Srpaulo 179252439Srpaulo /* PCM */ 180252439Srpaulo pins_pcm_a: pcm_a { 181252439Srpaulo broadcom,function = "ALT0"; 182252439Srpaulo }; 183252439Srpaulo 184252439Srpaulo pins_pcm_b: pcm_b { 185252439Srpaulo broadcom,function = "ALT2"; 186252439Srpaulo }; 187252439Srpaulo 188252439Srpaulo /* Secondary Address Bus */ 189252439Srpaulo pins_sm_addr_a: sm_addr_a { 190252439Srpaulo broadcom,function = "ALT1"; 191252439Srpaulo }; 192252439Srpaulo 193252439Srpaulo pins_sm_addr_b: sm_addr_b { 194252439Srpaulo broadcom,function = "ALT1"; 195252439Srpaulo }; 196252439Srpaulo 197252439Srpaulo pins_sm_ctl_a: sm_ctl_a { 198252439Srpaulo broadcom,function = "ALT1"; 199252439Srpaulo }; 200252439Srpaulo 201252439Srpaulo pins_sm_ctl_b: sm_ctl_b { 202252439Srpaulo broadcom,function = "ALT1"; 203252439Srpaulo }; 204252439Srpaulo 205252439Srpaulo pins_sm_data_8bit_a: sm_data_8bit_a { 206252439Srpaulo broadcom,function = "ALT1"; 207252439Srpaulo }; 208252439Srpaulo 209252439Srpaulo pins_sm_data_8bit_b: sm_data_8bit_b { 210252439Srpaulo broadcom,function = "ALT1"; 211252439Srpaulo }; 212252439Srpaulo 213252439Srpaulo pins_sm_data_16bit: sm_data_16bit { 214252439Srpaulo broadcom,function = "ALT1"; 215252439Srpaulo }; 216252439Srpaulo 217252439Srpaulo pins_sm_data_18bit: sm_data_18bit { 218252439Srpaulo broadcom,function = "ALT1"; 219252439Srpaulo }; 220252439Srpaulo 221252439Srpaulo /* BSCSL */ 222252439Srpaulo pins_bscsl: bscsl { 223252439Srpaulo broadcom,function = "ALT3"; 224252439Srpaulo }; 225252439Srpaulo 226252439Srpaulo /* SPISL */ 227252439Srpaulo pins_spisl: spisl { 228252439Srpaulo broadcom,function = "ALT3"; 229252439Srpaulo }; 230252439Srpaulo 231252439Srpaulo /* SPI1 */ 232252439Srpaulo pins_spi1: spi1 { 233252439Srpaulo broadcom,function = "ALT4"; 234252439Srpaulo }; 235252439Srpaulo 236252439Srpaulo /* UART1 */ 237252439Srpaulo pins_uart1_a: uart1_a { 238252439Srpaulo broadcom,function = "ALT5"; 239252439Srpaulo }; 240252439Srpaulo 241252439Srpaulo pins_uart1_b: uart1_b { 242252439Srpaulo broadcom,function = "ALT5"; 243252439Srpaulo }; 244252439Srpaulo 245252439Srpaulo pins_uart1_c: uart1_c { 246252439Srpaulo broadcom,function = "ALT5"; 247252439Srpaulo }; 248252439Srpaulo 249252439Srpaulo pins_uart1_fc_a: uart1_fc_a { 250252439Srpaulo broadcom,function = "ALT5"; 251252439Srpaulo }; 252252439Srpaulo 253252439Srpaulo pins_uart1_fc_b: uart1_fc_b { 254252439Srpaulo broadcom,function = "ALT5"; 255252439Srpaulo }; 256252439Srpaulo 257252439Srpaulo pins_uart1_fc_c: uart1_fc_c { 258252439Srpaulo broadcom,function = "ALT5"; 259252439Srpaulo }; 260252439Srpaulo 261252439Srpaulo /* SPI2 */ 262252439Srpaulo pins_spi2: spi2 { 263252439Srpaulo broadcom,function = "ALT4"; 264252439Srpaulo }; 265252439Srpaulo 266252439Srpaulo /* ARM JTAG */ 267252439Srpaulo pins_arm_jtag_trst: arm_jtag_trst { 268252439Srpaulo broadcom,function = "ALT4"; 269252439Srpaulo }; 270252439Srpaulo 271252439Srpaulo pins_arm_jtag_a: arm_jtag_a { 272252439Srpaulo broadcom,function = "ALT5"; 273252439Srpaulo }; 274252439Srpaulo 275252439Srpaulo pins_arm_jtag_b: arm_jtag_b { 276252439Srpaulo broadcom,function = "ALT4"; 277252439Srpaulo }; 278252439Srpaulo 279252439Srpaulo /* Reserved */ 280252439Srpaulo pins_reserved: reserved { 281252439Srpaulo broadcom,function = "ALT3"; 282252439Srpaulo }; 283252439Srpaulo }; 284252439Srpaulo usb { 285252439Srpaulo hub { 286252439Srpaulo compatible = "usb,hub", "usb,device"; 287252439Srpaulo reg = <0x00000001>; 288252439Srpaulo #address-cells = <1>; 289252439Srpaulo #size-cells = <0>; 290252439Srpaulo ethernet { 291252439Srpaulo compatible = "net,ethernet", 292252439Srpaulo "usb,device"; 293252439Srpaulo reg = <0x00000001>; 294252439Srpaulo mac-address = [00 00 00 00 00 00]; 295252439Srpaulo }; 296252439Srpaulo }; 297252439Srpaulo 298252439Srpaulo }; 299252439Srpaulo 300252439Srpaulo 301252439Srpaulo }; 302252439Srpaulo 303252439Srpaulo display { 304252439Srpaulo compatible = "broadcom,bcm2835-fb", "broadcom,bcm2708-fb"; 305252439Srpaulo 306252439Srpaulo broadcom,vc-mailbox = <&vc_mbox>; 307252439Srpaulo broadcom,vc-channel = <1>; 308252439Srpaulo 309252439Srpaulo broadcom,width = <0>; /* Set by VideoCore */ 310252439Srpaulo broadcom,height = <0>; /* Set by VideoCore */ 311252439Srpaulo broadcom,depth = <0>; /* Set by VideoCore */ 312252439Srpaulo }; 313252439Srpaulo 314252439Srpaulo leds { 315252439Srpaulo compatible = "gpio-leds"; 316252439Srpaulo 317252439Srpaulo ok { 318252439Srpaulo label = "ok"; 319265013Sloos gpios = <&gpio 16 1>; 320252439Srpaulo 321252439Srpaulo /* Don't change this - it configures 322252439Srpaulo * how the led driver determines if 323252439Srpaulo * the led is on or off when it loads. 324252439Srpaulo */ 325252439Srpaulo default-state = "keep"; 326252439Srpaulo 327252439Srpaulo /* This is the real default state. */ 328252439Srpaulo linux,default-trigger = "default-on"; 329252439Srpaulo }; 330252439Srpaulo }; 331252439Srpaulo 332252439Srpaulo power: regulator { 333252439Srpaulo compatible = "broadcom,bcm2835-power-mgr", 334252439Srpaulo "broadcom,bcm2708-power-mgr", 335252439Srpaulo "simple-bus"; 336252439Srpaulo #address-cells = <1>; 337252439Srpaulo #size-cells = <0>; 338252439Srpaulo 339252439Srpaulo broadcom,vc-mailbox = <&vc_mbox>; 340252439Srpaulo broadcom,vc-channel = <0>; 341252439Srpaulo 342252439Srpaulo regulator-name = "VideoCore"; 343252439Srpaulo regulator-min-microvolt = <5000000>; 344252439Srpaulo regulator-max-microvolt = <5000000>; 345252439Srpaulo regulator-always-on = <1>; 346252439Srpaulo 347252439Srpaulo sd_card_power: regulator@0 { 348252439Srpaulo compatible = "broadcom,bcm2835-power-dev", 349252439Srpaulo "broadcom,bcm2708-power-dev"; 350252439Srpaulo reg = <0>; 351252439Srpaulo 352252439Srpaulo vin-supply = <&power>; 353252439Srpaulo regulator-name = "SD Card"; 354252439Srpaulo regulator-min-microvolt = <3300000>; 355252439Srpaulo regulator-max-microvolt = <3300000>; 356252439Srpaulo }; 357252439Srpaulo 358252439Srpaulo /* This is for the controller itself, not the root port */ 359252439Srpaulo usb_hcd_power: regulator@3 { 360252439Srpaulo compatible = "broadcom,bcm2835-power-dev", 361252439Srpaulo "broadcom,bcm2708-power-dev"; 362252439Srpaulo reg = <3>; 363252439Srpaulo 364252439Srpaulo vin-supply = <&power>; 365252439Srpaulo regulator-name = "USB HCD"; 366252439Srpaulo regulator-min-microvolt = <5000000>; 367252439Srpaulo regulator-max-microvolt = <5000000>; 368252439Srpaulo }; 369252439Srpaulo }; 370252439Srpaulo 371252439Srpaulo aliases { 372252439Srpaulo uart0 = &uart0; 373252439Srpaulo }; 374252439Srpaulo 375252439Srpaulo chosen { 376252439Srpaulo bootargs = ""; /* Set by VideoCore */ 377252439Srpaulo stdin = "uart0"; 378252439Srpaulo stdout = "uart0"; 379252439Srpaulo }; 380252439Srpaulo 381252439Srpaulo}; 382