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