rpi.dts revision 266251
133965Sjdp/* 2130561Sobrien * Copyright (c) 2012 Oleksandr Tymoshenko <gonzo@bluezbox.com> 3218822Sdim * 4218822Sdim * Redistribution and use in source and binary forms, with or without 533965Sjdp * modification, are permitted provided that the following conditions 633965Sjdp * are met: 7130561Sobrien * 1. Redistributions of source code must retain the above copyright 833965Sjdp * notice, this list of conditions and the following disclaimer. 9130561Sobrien * 2. Redistributions in binary form must reproduce the above copyright 10130561Sobrien * notice, this list of conditions and the following disclaimer in the 11130561Sobrien * documentation and/or other materials provided with the distribution. 12130561Sobrien * 1333965Sjdp * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14130561Sobrien * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15130561Sobrien * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16130561Sobrien * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17130561Sobrien * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1833965Sjdp * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19130561Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20130561Sobrien * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21218822Sdim * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2233965Sjdp * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23218822Sdim * SUCH DAMAGE. 2433965Sjdp * 2533965Sjdp * $FreeBSD: stable/10/sys/boot/fdt/dts/arm/rpi.dts 266251 2014-05-16 15:56:34Z ian $ 2633965Sjdp */ 2733965Sjdp/dts-v1/; 2833965Sjdp 2933965Sjdp/include/ "bcm2835.dtsi" 3033965Sjdp 3133965Sjdp/ { 3233965Sjdp model = "Raspberry Pi (BCM2835)"; 3333965Sjdp compatible = "raspberrypi,model-a", "raspberrypi,model-b", 3433965Sjdp "broadcom,bcm2835-vc", "broadcom,bcm2708-vc"; 3533965Sjdp 3633965Sjdp memreserve = <0x08000000 0x08000000>; /* Set by VideoCore */ 3733965Sjdp 3833965Sjdp memory { 3933965Sjdp device_type = "memory"; 4033965Sjdp reg = <0 0x8000000>; /* 128MB, Set by VideoCore */ 4133965Sjdp 4233965Sjdp }; 4333965Sjdp 4433965Sjdp system { 4533965Sjdp revision = <0>; /* Set by VideoCore */ 4633965Sjdp serial = <0 0>; /* Set by VideoCore */ 4733965Sjdp }; 4833965Sjdp 4933965Sjdp axi { 5033965Sjdp gpio: gpio { 5133965Sjdp /* BSC0 */ 5233965Sjdp pins_bsc0_a: bsc0_a { 5333965Sjdp broadcom,function = "ALT0"; 5433965Sjdp }; 5533965Sjdp 5633965Sjdp pins_bsc0_b: bsc0_b { 5733965Sjdp broadcom,function = "ALT0"; 5833965Sjdp }; 5933965Sjdp 6033965Sjdp pins_bsc0_c: bsc0_c { 6133965Sjdp broadcom,function = "ALT1"; 6233965Sjdp }; 6333965Sjdp 6477298Sobrien /* BSC1 */ 6533965Sjdp pins_bsc1_a: bsc1_a { 6633965Sjdp broadcom,function = "ALT0"; 6733965Sjdp }; 6833965Sjdp 6933965Sjdp pins_bsc1_b: bsc1_b { 7033965Sjdp broadcom,function = "ALT2"; 7133965Sjdp }; 7233965Sjdp 7333965Sjdp /* GPCLK0 */ 7433965Sjdp pins_gpclk0_a: gpclk0_a { 7533965Sjdp broadcom,function = "ALT0"; 7633965Sjdp }; 7733965Sjdp 7833965Sjdp pins_gpclk0_b: gpclk0_b { 7960484Sobrien broadcom,function = "ALT5"; 8033965Sjdp }; 8133965Sjdp 8233965Sjdp pins_gpclk0_c: gpclk0_c { 8333965Sjdp broadcom,function = "ALT0"; 8433965Sjdp }; 8533965Sjdp 8633965Sjdp pins_gpclk0_d: gpclk0_d { 8733965Sjdp broadcom,function = "ALT0"; 8833965Sjdp }; 8933965Sjdp 9033965Sjdp /* GPCLK1 */ 9133965Sjdp pins_gpclk1_a: gpclk1_a { 92130561Sobrien broadcom,function = "ALT0"; 9333965Sjdp }; 9433965Sjdp 9533965Sjdp pins_gpclk1_b: gpclk1_b { 9633965Sjdp broadcom,function = "ALT5"; 9733965Sjdp }; 9833965Sjdp 9933965Sjdp pins_gpclk1_c: gpclk1_c { 10033965Sjdp broadcom,function = "ALT0"; 10133965Sjdp }; 10233965Sjdp 10333965Sjdp pins_gpclk1_d: gpclk1_d { 10433965Sjdp broadcom,function = "ALT0"; 10533965Sjdp }; 10633965Sjdp 10733965Sjdp /* GPCLK2 */ 10833965Sjdp pins_gpclk2_a: gpclk2_a { 10933965Sjdp broadcom,function = "ALT0"; 11033965Sjdp }; 11133965Sjdp 11233965Sjdp pins_gpclk2_b: gpclk2_b { 11333965Sjdp broadcom,function = "ALT0"; 11433965Sjdp }; 11533965Sjdp 11633965Sjdp /* SPI0 */ 11733965Sjdp pins_spi0_a: spi0_a { 11833965Sjdp broadcom,function = "ALT0"; 11933965Sjdp }; 12033965Sjdp 12133965Sjdp pins_spi0_b: spi0_b { 12233965Sjdp broadcom,function = "ALT0"; 12333965Sjdp }; 12433965Sjdp 12533965Sjdp /* PWM */ 12633965Sjdp pins_pwm0_a: pwm0_a { 12733965Sjdp broadcom,function = "ALT0"; 12833965Sjdp }; 12933965Sjdp 13033965Sjdp pins_pwm0_b: pwm0_b { 13133965Sjdp broadcom,function = "ALT5"; 13233965Sjdp }; 13333965Sjdp 13433965Sjdp pins_pwm0_c: pwm0_c { 13533965Sjdp broadcom,function = "ALT0"; 13633965Sjdp }; 13733965Sjdp 13833965Sjdp pins_pwm1_a: pwm1_a { 13933965Sjdp broadcom,function = "ALT0"; 14033965Sjdp }; 14133965Sjdp 14233965Sjdp pins_pwm1_b: pwm1_b { 14333965Sjdp broadcom,function = "ALT5"; 14433965Sjdp }; 14533965Sjdp 14633965Sjdp pins_pwm1_c: pwm1_c { 14733965Sjdp broadcom,function = "ALT0"; 14833965Sjdp }; 14933965Sjdp 15033965Sjdp pins_pwm1_d: pwm1_d { 15133965Sjdp broadcom,function = "ALT0"; 15233965Sjdp }; 15333965Sjdp 15433965Sjdp /* UART0 */ 15533965Sjdp pins_uart0_a: uart0_a { 15633965Sjdp broadcom,function = "ALT0"; 15733965Sjdp }; 15833965Sjdp 15933965Sjdp pins_uart0_b: uart0_b { 16033965Sjdp broadcom,function = "ALT3"; 16133965Sjdp }; 16233965Sjdp 16333965Sjdp pins_uart0_c: uart0_c { 16433965Sjdp broadcom,function = "ALT2"; 16533965Sjdp }; 16633965Sjdp 16733965Sjdp pins_uart0_fc_a: uart0_fc_a { 16833965Sjdp broadcom,function = "ALT3"; 16933965Sjdp }; 17033965Sjdp 17133965Sjdp pins_uart0_fc_b: uart0_fc_b { 17233965Sjdp broadcom,function = "ALT3"; 17333965Sjdp }; 17433965Sjdp 17533965Sjdp pins_uart0_fc_c: uart0_fc_c { 17633965Sjdp broadcom,function = "ALT2"; 17733965Sjdp }; 17833965Sjdp 17933965Sjdp /* PCM */ 18033965Sjdp pins_pcm_a: pcm_a { 18133965Sjdp broadcom,function = "ALT0"; 18233965Sjdp }; 18333965Sjdp 18433965Sjdp pins_pcm_b: pcm_b { 18533965Sjdp broadcom,function = "ALT2"; 18633965Sjdp }; 18733965Sjdp 18833965Sjdp /* Secondary Address Bus */ 18933965Sjdp pins_sm_addr_a: sm_addr_a { 19033965Sjdp broadcom,function = "ALT1"; 19133965Sjdp }; 19233965Sjdp 19333965Sjdp pins_sm_addr_b: sm_addr_b { 19433965Sjdp broadcom,function = "ALT1"; 19533965Sjdp }; 19633965Sjdp 19733965Sjdp pins_sm_ctl_a: sm_ctl_a { 19833965Sjdp broadcom,function = "ALT1"; 19933965Sjdp }; 20033965Sjdp 20133965Sjdp pins_sm_ctl_b: sm_ctl_b { 20233965Sjdp broadcom,function = "ALT1"; 20333965Sjdp }; 204130561Sobrien 20533965Sjdp pins_sm_data_8bit_a: sm_data_8bit_a { 20633965Sjdp broadcom,function = "ALT1"; 20733965Sjdp }; 20833965Sjdp 20933965Sjdp pins_sm_data_8bit_b: sm_data_8bit_b { 21033965Sjdp broadcom,function = "ALT1"; 21133965Sjdp }; 21233965Sjdp 21333965Sjdp pins_sm_data_16bit: sm_data_16bit { 21433965Sjdp broadcom,function = "ALT1"; 21533965Sjdp }; 21633965Sjdp 21733965Sjdp pins_sm_data_18bit: sm_data_18bit { 21833965Sjdp broadcom,function = "ALT1"; 21933965Sjdp }; 22033965Sjdp 22133965Sjdp /* BSCSL */ 22233965Sjdp pins_bscsl: bscsl { 22333965Sjdp broadcom,function = "ALT3"; 22433965Sjdp }; 22533965Sjdp 22633965Sjdp /* SPISL */ 22733965Sjdp pins_spisl: spisl { 22833965Sjdp broadcom,function = "ALT3"; 22933965Sjdp }; 23033965Sjdp 23133965Sjdp /* SPI1 */ 23233965Sjdp pins_spi1: spi1 { 23333965Sjdp broadcom,function = "ALT4"; 23433965Sjdp }; 23533965Sjdp 23633965Sjdp /* UART1 */ 23733965Sjdp pins_uart1_a: uart1_a { 23833965Sjdp broadcom,function = "ALT5"; 23933965Sjdp }; 24033965Sjdp 24133965Sjdp pins_uart1_b: uart1_b { 24233965Sjdp broadcom,function = "ALT5"; 24333965Sjdp }; 24433965Sjdp 24533965Sjdp pins_uart1_c: uart1_c { 24633965Sjdp broadcom,function = "ALT5"; 24733965Sjdp }; 24833965Sjdp 24933965Sjdp pins_uart1_fc_a: uart1_fc_a { 25033965Sjdp broadcom,function = "ALT5"; 25133965Sjdp }; 25233965Sjdp 25333965Sjdp pins_uart1_fc_b: uart1_fc_b { 25433965Sjdp broadcom,function = "ALT5"; 25533965Sjdp }; 25633965Sjdp 25733965Sjdp pins_uart1_fc_c: uart1_fc_c { 25833965Sjdp broadcom,function = "ALT5"; 25933965Sjdp }; 26033965Sjdp 26133965Sjdp /* SPI2 */ 26233965Sjdp pins_spi2: spi2 { 26333965Sjdp broadcom,function = "ALT4"; 26433965Sjdp }; 26533965Sjdp 26633965Sjdp /* ARM JTAG */ 26733965Sjdp pins_arm_jtag_trst: arm_jtag_trst { 26833965Sjdp broadcom,function = "ALT4"; 26933965Sjdp }; 27033965Sjdp 27133965Sjdp pins_arm_jtag_a: arm_jtag_a { 27233965Sjdp broadcom,function = "ALT5"; 27333965Sjdp }; 27433965Sjdp 27533965Sjdp pins_arm_jtag_b: arm_jtag_b { 27633965Sjdp broadcom,function = "ALT4"; 27733965Sjdp }; 27833965Sjdp 27933965Sjdp /* Reserved */ 28033965Sjdp pins_reserved: reserved { 281130561Sobrien broadcom,function = "ALT3"; 28233965Sjdp }; 28333965Sjdp }; 28433965Sjdp usb { 28533965Sjdp hub { 28633965Sjdp compatible = "usb,hub", "usb,device"; 28733965Sjdp reg = <0x00000001>; 28833965Sjdp #address-cells = <1>; 28933965Sjdp #size-cells = <0>; 29033965Sjdp ethernet { 29133965Sjdp compatible = "net,ethernet", 29233965Sjdp "usb,device"; 29333965Sjdp reg = <0x00000001>; 29433965Sjdp mac-address = [00 00 00 00 00 00]; 29533965Sjdp }; 29633965Sjdp }; 29733965Sjdp 29833965Sjdp }; 29933965Sjdp 30033965Sjdp 30133965Sjdp }; 30233965Sjdp 30333965Sjdp display { 30433965Sjdp compatible = "broadcom,bcm2835-fb", "broadcom,bcm2708-fb"; 30533965Sjdp 30633965Sjdp broadcom,vc-mailbox = <&vc_mbox>; 30733965Sjdp broadcom,vc-channel = <1>; 30833965Sjdp 30933965Sjdp broadcom,width = <0>; /* Set by VideoCore */ 31033965Sjdp broadcom,height = <0>; /* Set by VideoCore */ 31133965Sjdp broadcom,depth = <0>; /* Set by VideoCore */ 31233965Sjdp }; 313218822Sdim 31433965Sjdp leds { 31533965Sjdp compatible = "gpio-leds"; 31633965Sjdp 31733965Sjdp ok { 31833965Sjdp label = "ok"; 31933965Sjdp gpios = <&gpio 16 2 0>; 32033965Sjdp 321130561Sobrien /* Don't change this - it configures 32233965Sjdp * how the led driver determines if 32333965Sjdp * the led is on or off when it loads. 32433965Sjdp */ 32533965Sjdp default-state = "keep"; 32633965Sjdp 32733965Sjdp /* This is the real default state. */ 32833965Sjdp linux,default-trigger = "default-on"; 32933965Sjdp }; 33033965Sjdp }; 33133965Sjdp 33233965Sjdp power: regulator { 33333965Sjdp compatible = "broadcom,bcm2835-power-mgr", 33433965Sjdp "broadcom,bcm2708-power-mgr", 33533965Sjdp "simple-bus"; 33633965Sjdp #address-cells = <1>; 33733965Sjdp #size-cells = <0>; 33833965Sjdp 33933965Sjdp broadcom,vc-mailbox = <&vc_mbox>; 34033965Sjdp broadcom,vc-channel = <0>; 34133965Sjdp 34233965Sjdp regulator-name = "VideoCore"; 343130561Sobrien regulator-min-microvolt = <5000000>; 34433965Sjdp regulator-max-microvolt = <5000000>; 34533965Sjdp regulator-always-on = <1>; 34633965Sjdp 34733965Sjdp sd_card_power: regulator@0 { 34833965Sjdp compatible = "broadcom,bcm2835-power-dev", 34933965Sjdp "broadcom,bcm2708-power-dev"; 35033965Sjdp reg = <0>; 35133965Sjdp 35233965Sjdp vin-supply = <&power>; 35333965Sjdp regulator-name = "SD Card"; 35433965Sjdp regulator-min-microvolt = <3300000>; 35533965Sjdp regulator-max-microvolt = <3300000>; 35633965Sjdp }; 35733965Sjdp 35833965Sjdp /* This is for the controller itself, not the root port */ 35933965Sjdp usb_hcd_power: regulator@3 { 36033965Sjdp compatible = "broadcom,bcm2835-power-dev", 36133965Sjdp "broadcom,bcm2708-power-dev"; 36233965Sjdp reg = <3>; 36333965Sjdp 36433965Sjdp vin-supply = <&power>; 36533965Sjdp regulator-name = "USB HCD"; 36633965Sjdp regulator-min-microvolt = <5000000>; 36733965Sjdp regulator-max-microvolt = <5000000>; 36833965Sjdp }; 36933965Sjdp }; 37033965Sjdp 37133965Sjdp aliases { 37233965Sjdp uart0 = &uart0; 37333965Sjdp }; 37433965Sjdp 37533965Sjdp chosen { 37633965Sjdp bootargs = ""; /* Set by VideoCore */ 37733965Sjdp stdin = "uart0"; 37833965Sjdp stdout = "uart0"; 37933965Sjdp }; 38033965Sjdp 38133965Sjdp}; 38233965Sjdp