Split bcm2835-rpi-b.dts into bcm2835.dtsi and rpi.dts. This DTS actually works
on all R-Pi models because VideoCore binary patches it during boot. Reviewed by: gonzo
This commit is contained in:
parent
39f4fb1031
commit
706fb327a3
@ -1,19 +1,33 @@
|
||||
/*
|
||||
* Copyright (c) 2012 Oleksandr Tymoshenko <gonzo@bluezbox.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
/dts-v1/;
|
||||
/memreserve/ 0x08000000 0x08000000; /* Set by VideoCore */
|
||||
|
||||
/ {
|
||||
model = "Raspberry Pi Model B (BCM2835)";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "raspberrypi,model-b", "broadcom,bcm2835-vc", "broadcom,bcm2708-vc";
|
||||
|
||||
system {
|
||||
revision = <0>; /* Set by VideoCore */
|
||||
serial = <0 0>; /* Set by VideoCore */
|
||||
};
|
||||
|
||||
cpus {
|
||||
cpu@0 {
|
||||
@ -22,7 +36,7 @@
|
||||
};
|
||||
|
||||
|
||||
axi {
|
||||
SOC: axi {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
@ -30,7 +44,8 @@
|
||||
ranges = <0 0x20000000 0x01000000>;
|
||||
|
||||
intc: interrupt-controller {
|
||||
compatible = "broadcom,bcm2835-armctrl-ic", "broadcom,bcm2708-armctrl-ic";
|
||||
compatible = "broadcom,bcm2835-armctrl-ic",
|
||||
"broadcom,bcm2708-armctrl-ic";
|
||||
reg = <0xB200 0x200>;
|
||||
|
||||
interrupt-controller;
|
||||
@ -87,7 +102,8 @@
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "broadcom,bcm2835-system-timer", "broadcom,bcm2708-system-timer";
|
||||
compatible = "broadcom,bcm2835-system-timer",
|
||||
"broadcom,bcm2708-system-timer";
|
||||
reg = <0x3000 0x1000>;
|
||||
interrupts = <8 9 10 11>;
|
||||
interrupt-parent = <&intc>;
|
||||
@ -104,15 +120,18 @@
|
||||
};
|
||||
|
||||
watchdog0 {
|
||||
compatible = "broadcom,bcm2835-wdt", "broadcom,bcm2708-wdt";
|
||||
compatible = "broadcom,bcm2835-wdt",
|
||||
"broadcom,bcm2708-wdt";
|
||||
reg = <0x10001c 0x0c>; /* 0x1c, 0x20, 0x24 */
|
||||
};
|
||||
|
||||
gpio: gpio {
|
||||
compatible = "broadcom,bcm2835-gpio", "broadcom,bcm2708-gpio";
|
||||
compatible = "broadcom,bcm2835-gpio",
|
||||
"broadcom,bcm2708-gpio";
|
||||
reg = <0x200000 0xb0>;
|
||||
|
||||
/* Unusual arrangement of interrupts (determined by testing)
|
||||
/* Unusual arrangement of interrupts
|
||||
* (determined by testing)
|
||||
* 17: Bank 0 (GPIOs 0-31)
|
||||
* 19: Bank 1 (GPIOs 32-53)
|
||||
* 18: Bank 2
|
||||
@ -130,301 +149,256 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pins_reserved>;
|
||||
|
||||
/* pins that can short 3.3V to GND in output mode: 46-47
|
||||
* pins used by VideoCore: 48-53
|
||||
/* Pins that can short 3.3V to GND in output mode: 46-47
|
||||
* Pins used by VideoCore: 48-53
|
||||
*/
|
||||
broadcom,read-only = <46>, <47>, <48>, <49>, <50>, <51>, <52>, <53>;
|
||||
broadcom,read-only = <46>, <47>, <48>, <49>, <50>,
|
||||
<51>, <52>, <53>;
|
||||
|
||||
/* BSC0 */
|
||||
pins_bsc0_a: bsc0_a {
|
||||
broadcom,pins = <0>, <1>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_bsc0_b: bsc0_b {
|
||||
broadcom,pins = <28>, <29>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_bsc0_c: bsc0_c {
|
||||
broadcom,pins = <44>, <45>;
|
||||
broadcom,function = "ALT1";
|
||||
};
|
||||
|
||||
/* BSC1 */
|
||||
pins_bsc1_a: bsc1_a {
|
||||
broadcom,pins = <2>, <3>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_bsc1_b: bsc1_b {
|
||||
broadcom,pins = <44>, <45>;
|
||||
broadcom,function = "ALT2";
|
||||
};
|
||||
|
||||
/* GPCLK0 */
|
||||
pins_gpclk0_a: gpclk0_a {
|
||||
broadcom,pins = <4>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_gpclk0_b: gpclk0_b {
|
||||
broadcom,pins = <20>;
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_gpclk0_c: gpclk0_c {
|
||||
broadcom,pins = <32>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_gpclk0_d: gpclk0_d {
|
||||
broadcom,pins = <34>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
/* GPCLK1 */
|
||||
pins_gpclk1_a: gpclk1_a {
|
||||
broadcom,pins = <5>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_gpclk1_b: gpclk1_b {
|
||||
broadcom,pins = <21>;
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_gpclk1_c: gpclk1_c {
|
||||
broadcom,pins = <42>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_gpclk1_d: gpclk1_d {
|
||||
broadcom,pins = <44>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
/* GPCLK2 */
|
||||
pins_gpclk2_a: gpclk2_a {
|
||||
broadcom,pins = <6>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_gpclk2_b: gpclk2_b {
|
||||
broadcom,pins = <43>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
/* SPI0 */
|
||||
pins_spi0_a: spi0_a {
|
||||
broadcom,pins = <7>, <8>, <9>, <10>, <11>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_spi0_b: spi0_b {
|
||||
broadcom,pins = <35>, <36>, <37>, <38>, <39>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
/* PWM */
|
||||
pins_pwm0_a: pwm0_a {
|
||||
broadcom,pins = <12>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_pwm0_b: pwm0_b {
|
||||
broadcom,pins = <18>;
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_pwm0_c: pwm0_c {
|
||||
broadcom,pins = <40>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_pwm1_a: pwm1_a {
|
||||
broadcom,pins = <13>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_pwm1_b: pwm1_b {
|
||||
broadcom,pins = <19>;
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_pwm1_c: pwm1_c {
|
||||
broadcom,pins = <41>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_pwm1_d: pwm1_d {
|
||||
broadcom,pins = <45>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
/* UART0 */
|
||||
pins_uart0_a: uart0_a {
|
||||
broadcom,pins = <14>, <15>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_uart0_b: uart0_b {
|
||||
broadcom,pins = <32>, <33>;
|
||||
broadcom,function = "ALT3";
|
||||
};
|
||||
|
||||
pins_uart0_c: uart0_c {
|
||||
broadcom,pins = <36>, <37>;
|
||||
broadcom,function = "ALT2";
|
||||
};
|
||||
|
||||
pins_uart0_fc_a: uart0_fc_a {
|
||||
broadcom,pins = <16>, <17>;
|
||||
broadcom,function = "ALT3";
|
||||
};
|
||||
|
||||
pins_uart0_fc_b: uart0_fc_b {
|
||||
broadcom,pins = <30>, <31>;
|
||||
broadcom,function = "ALT3";
|
||||
};
|
||||
|
||||
pins_uart0_fc_c: uart0_fc_c {
|
||||
broadcom,pins = <39>, <38>;
|
||||
broadcom,function = "ALT2";
|
||||
};
|
||||
|
||||
/* PCM */
|
||||
pins_pcm_a: pcm_a {
|
||||
broadcom,pins = <18>, <19>, <20>, <21>;
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_pcm_b: pcm_b {
|
||||
broadcom,pins = <28>, <29>, <30>, <31>;
|
||||
broadcom,function = "ALT2";
|
||||
};
|
||||
|
||||
/* Secondary Address Bus */
|
||||
pins_sm_addr_a: sm_addr_a {
|
||||
broadcom,pins = <5>, <4>, <3>, <2>, <1>, <0>;
|
||||
broadcom,function = "ALT1";
|
||||
};
|
||||
|
||||
pins_sm_addr_b: sm_addr_b {
|
||||
broadcom,pins = <33>, <32>, <31>, <30>, <29>, <28>;
|
||||
broadcom,function = "ALT1";
|
||||
broadcom,pins = <33>, <32>, <31>, <30>, <29>,
|
||||
<28>;
|
||||
};
|
||||
|
||||
pins_sm_ctl_a: sm_ctl_a {
|
||||
broadcom,pins = <6>, <7>;
|
||||
broadcom,function = "ALT1";
|
||||
};
|
||||
|
||||
pins_sm_ctl_b: sm_ctl_b {
|
||||
broadcom,pins = <34>, <35>;
|
||||
broadcom,function = "ALT1";
|
||||
};
|
||||
|
||||
pins_sm_data_8bit_a: sm_data_8bit_a {
|
||||
broadcom,pins = <8>, <9>, <10>, <11>, <12>, <13>, <14>, <15>;
|
||||
broadcom,function = "ALT1";
|
||||
broadcom,pins = <8>, <9>, <10>, <11>, <12>,
|
||||
<13>, <14>, <15>;
|
||||
};
|
||||
|
||||
pins_sm_data_8bit_b: sm_data_8bit_b {
|
||||
broadcom,pins = <36>, <37>, <38>, <39>, <40>, <41>, <42>, <43>;
|
||||
broadcom,function = "ALT1";
|
||||
broadcom,pins = <36>, <37>, <38>, <39>, <40>,
|
||||
<41>, <42>, <43>;
|
||||
};
|
||||
|
||||
pins_sm_data_16bit: sm_data_16bit {
|
||||
broadcom,pins = <16>, <17>, <18>, <19>, <20>, <21>, <22>, <23>;
|
||||
broadcom,function = "ALT1";
|
||||
broadcom,pins = <16>, <17>, <18>, <19>, <20>,
|
||||
<21>, <22>, <23>;
|
||||
};
|
||||
|
||||
pins_sm_data_18bit: sm_data_18bit {
|
||||
broadcom,pins = <24>, <25>;
|
||||
broadcom,function = "ALT1";
|
||||
};
|
||||
|
||||
/* BSCSL */
|
||||
pins_bscsl: bscsl {
|
||||
broadcom,pins = <18>, <19>;
|
||||
broadcom,function = "ALT3";
|
||||
};
|
||||
|
||||
/* SPISL */
|
||||
pins_spisl: spisl {
|
||||
broadcom,pins = <18>, <19>, <20>, <21>;
|
||||
broadcom,function = "ALT3";
|
||||
};
|
||||
|
||||
/* SPI1 */
|
||||
pins_spi1: spi1 {
|
||||
broadcom,pins = <16>, <17>, <18>, <19>, <20>, <21>;
|
||||
broadcom,function = "ALT4";
|
||||
broadcom,pins = <16>, <17>, <18>, <19>, <20>,
|
||||
<21>;
|
||||
};
|
||||
|
||||
/* UART1 */
|
||||
pins_uart1_a: uart1_a {
|
||||
broadcom,pins = <14>, <15>;
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_uart1_b: uart1_b {
|
||||
broadcom,pins = <32>, <33>;
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_uart1_c: uart1_c {
|
||||
broadcom,pins = <40>, <41>;
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_uart1_fc_a: uart1_fc_a {
|
||||
broadcom,pins = <16>, <17>;
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_uart1_fc_b: uart1_fc_b {
|
||||
broadcom,pins = <30>, <31>;
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_uart1_fc_c: uart1_fc_c {
|
||||
broadcom,pins = <43>, <42>;
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
/* SPI2 */
|
||||
pins_spi2: spi2 {
|
||||
broadcom,pins = <40>, <41>, <42>, <43>, <44>, <45>;
|
||||
broadcom,function = "ALT4";
|
||||
broadcom,pins = <40>, <41>, <42>, <43>, <44>,
|
||||
<45>;
|
||||
};
|
||||
|
||||
/* ARM JTAG */
|
||||
pins_arm_jtag_trst: arm_jtag_trst {
|
||||
broadcom,pins = <22>;
|
||||
broadcom,function = "ALT4";
|
||||
};
|
||||
|
||||
pins_arm_jtag_a: arm_jtag_a {
|
||||
broadcom,pins = <4>, <5>, <6>, <12>, <13>;
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_arm_jtag_b: arm_jtag_b {
|
||||
broadcom,pins = <23>, <24>, <25>, <26>, <27>;
|
||||
broadcom,function = "ALT4";
|
||||
};
|
||||
|
||||
/* Reserved */
|
||||
pins_reserved: reserved {
|
||||
broadcom,pins = <48>, <49>, <50>, <51>, <52>, <53>;
|
||||
broadcom,function = "ALT3";
|
||||
broadcom,pins = <48>, <49>, <50>, <51>, <52>,
|
||||
<53>;
|
||||
};
|
||||
};
|
||||
|
||||
dma: dma {
|
||||
compatible = "broadcom,bcm2835-dma", "broadcom,bcm2708-dma";
|
||||
compatible = "broadcom,bcm2835-dma",
|
||||
"broadcom,bcm2708-dma";
|
||||
reg = <0x7000 0x1000>, <0xE05000 0x1000>;
|
||||
interrupts = <24 25 26 27 28 29 30 31 32 33 34 35 36>;
|
||||
interrupt-parent = <&intc>;
|
||||
@ -433,7 +407,8 @@
|
||||
};
|
||||
|
||||
vc_mbox: mbox {
|
||||
compatible = "broadcom,bcm2835-mbox", "broadcom,bcm2708-mbox";
|
||||
compatible = "broadcom,bcm2835-mbox",
|
||||
"broadcom,bcm2708-mbox";
|
||||
reg = <0xB880 0x40>;
|
||||
interrupts = <1>;
|
||||
interrupt-parent = <&intc>;
|
||||
@ -450,7 +425,8 @@
|
||||
};
|
||||
|
||||
sdhci {
|
||||
compatible = "broadcom,bcm2835-sdhci", "broadcom,bcm2708-sdhci";
|
||||
compatible = "broadcom,bcm2835-sdhci",
|
||||
"broadcom,bcm2708-sdhci";
|
||||
reg = <0x300000 0x100>;
|
||||
interrupts = <70>;
|
||||
interrupt-parent = <&intc>;
|
||||
@ -459,7 +435,9 @@
|
||||
};
|
||||
|
||||
uart0: uart0 {
|
||||
compatible = "broadcom,bcm2835-uart", "broadcom,bcm2708-uart", "arm,pl011", "arm,primecell";
|
||||
compatible = "broadcom,bcm2835-uart",
|
||||
"broadcom,bcm2708-uart", "arm,pl011",
|
||||
"arm,primecell";
|
||||
reg = <0x201000 0x1000>;
|
||||
interrupts = <65>;
|
||||
interrupt-parent = <&intc>;
|
||||
@ -476,104 +454,15 @@
|
||||
};
|
||||
|
||||
usb {
|
||||
compatible = "broadcom,bcm2835-usb", "broadcom,bcm2708-usb", "synopsys,designware-hs-otg2";
|
||||
compatible = "broadcom,bcm2835-usb",
|
||||
"broadcom,bcm2708-usb",
|
||||
"synopsys,designware-hs-otg2";
|
||||
reg = <0x980000 0x20000>;
|
||||
interrupts = <17>;
|
||||
interrupt-parent = <&intc>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
hub {
|
||||
compatible = "usb,hub", "usb,device";
|
||||
reg = <0x00000001>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
ethernet {
|
||||
compatible = "net,ethernet", "usb,device";
|
||||
reg = <0x00000001>;
|
||||
mac-address = [00 00 00 00 00 00];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0 0x08000000>; /* 128MB */
|
||||
};
|
||||
|
||||
display {
|
||||
compatible = "broadcom,bcm2835-fb", "broadcom,bcm2708-fb";
|
||||
|
||||
broadcom,vc-mailbox = <&vc_mbox>;
|
||||
broadcom,vc-channel = <1>;
|
||||
|
||||
broadcom,width = <0>; /* Set by VideoCore */
|
||||
broadcom,height = <0>; /* Set by VideoCore */
|
||||
broadcom,depth = <0>; /* Set by VideoCore */
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
ok {
|
||||
label = "ok";
|
||||
gpios = <&gpio 16 1>;
|
||||
|
||||
/* Don't change this - it configures
|
||||
* how the led driver determines if
|
||||
* the led is on or off when it loads.
|
||||
*/
|
||||
default-state = "keep";
|
||||
|
||||
/* This is the real default state. */
|
||||
linux,default-trigger = "default-on";
|
||||
};
|
||||
};
|
||||
|
||||
power: regulator {
|
||||
compatible = "broadcom,bcm2835-power-mgr", "broadcom,bcm2708-power-mgr", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
broadcom,vc-mailbox = <&vc_mbox>;
|
||||
broadcom,vc-channel = <0>;
|
||||
|
||||
regulator-name = "VideoCore";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on = <1>;
|
||||
|
||||
sd_card_power: regulator@0 {
|
||||
compatible = "broadcom,bcm2835-power-dev", "broadcom,bcm2708-power-dev";
|
||||
reg = <0>;
|
||||
|
||||
vin-supply = <&power>;
|
||||
regulator-name = "SD Card";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
/* This is for the controller itself, not the root port */
|
||||
usb_hcd_power: regulator@3 {
|
||||
compatible = "broadcom,bcm2835-power-dev", "broadcom,bcm2708-power-dev";
|
||||
reg = <3>;
|
||||
|
||||
vin-supply = <&power>;
|
||||
regulator-name = "USB HCD";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
};
|
||||
};
|
||||
|
||||
aliases {
|
||||
uart0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = ""; /* Set by VideoCore */
|
||||
stdin = "uart0";
|
||||
stdout = "uart0";
|
||||
};
|
||||
|
||||
};
|
381
sys/boot/fdt/dts/rpi.dts
Normal file
381
sys/boot/fdt/dts/rpi.dts
Normal file
@ -0,0 +1,381 @@
|
||||
/*
|
||||
* Copyright (c) 2012 Oleksandr Tymoshenko <gonzo@bluezbox.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
/dts-v1/;
|
||||
|
||||
/include/ "bcm2835.dtsi"
|
||||
|
||||
/memreserve/ 0x08000000 0x08000000; /* Set by VideoCore */
|
||||
|
||||
/ {
|
||||
model = "Raspberry Pi (BCM2835)";
|
||||
compatible = "raspberrypi,model-a", "raspberrypi,model-b",
|
||||
"broadcom,bcm2835-vc", "broadcom,bcm2708-vc";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0 0x8000000>; /* 128MB, Set by VideoCore */
|
||||
|
||||
};
|
||||
|
||||
system {
|
||||
revision = <0>; /* Set by VideoCore */
|
||||
serial = <0 0>; /* Set by VideoCore */
|
||||
};
|
||||
|
||||
axi {
|
||||
gpio: gpio {
|
||||
/* BSC0 */
|
||||
pins_bsc0_a: bsc0_a {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_bsc0_b: bsc0_b {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_bsc0_c: bsc0_c {
|
||||
broadcom,function = "ALT1";
|
||||
};
|
||||
|
||||
/* BSC1 */
|
||||
pins_bsc1_a: bsc1_a {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_bsc1_b: bsc1_b {
|
||||
broadcom,function = "ALT2";
|
||||
};
|
||||
|
||||
/* GPCLK0 */
|
||||
pins_gpclk0_a: gpclk0_a {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_gpclk0_b: gpclk0_b {
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_gpclk0_c: gpclk0_c {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_gpclk0_d: gpclk0_d {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
/* GPCLK1 */
|
||||
pins_gpclk1_a: gpclk1_a {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_gpclk1_b: gpclk1_b {
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_gpclk1_c: gpclk1_c {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_gpclk1_d: gpclk1_d {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
/* GPCLK2 */
|
||||
pins_gpclk2_a: gpclk2_a {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_gpclk2_b: gpclk2_b {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
/* SPI0 */
|
||||
pins_spi0_a: spi0_a {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_spi0_b: spi0_b {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
/* PWM */
|
||||
pins_pwm0_a: pwm0_a {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_pwm0_b: pwm0_b {
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_pwm0_c: pwm0_c {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_pwm1_a: pwm1_a {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_pwm1_b: pwm1_b {
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_pwm1_c: pwm1_c {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_pwm1_d: pwm1_d {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
/* UART0 */
|
||||
pins_uart0_a: uart0_a {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_uart0_b: uart0_b {
|
||||
broadcom,function = "ALT3";
|
||||
};
|
||||
|
||||
pins_uart0_c: uart0_c {
|
||||
broadcom,function = "ALT2";
|
||||
};
|
||||
|
||||
pins_uart0_fc_a: uart0_fc_a {
|
||||
broadcom,function = "ALT3";
|
||||
};
|
||||
|
||||
pins_uart0_fc_b: uart0_fc_b {
|
||||
broadcom,function = "ALT3";
|
||||
};
|
||||
|
||||
pins_uart0_fc_c: uart0_fc_c {
|
||||
broadcom,function = "ALT2";
|
||||
};
|
||||
|
||||
/* PCM */
|
||||
pins_pcm_a: pcm_a {
|
||||
broadcom,function = "ALT0";
|
||||
};
|
||||
|
||||
pins_pcm_b: pcm_b {
|
||||
broadcom,function = "ALT2";
|
||||
};
|
||||
|
||||
/* Secondary Address Bus */
|
||||
pins_sm_addr_a: sm_addr_a {
|
||||
broadcom,function = "ALT1";
|
||||
};
|
||||
|
||||
pins_sm_addr_b: sm_addr_b {
|
||||
broadcom,function = "ALT1";
|
||||
};
|
||||
|
||||
pins_sm_ctl_a: sm_ctl_a {
|
||||
broadcom,function = "ALT1";
|
||||
};
|
||||
|
||||
pins_sm_ctl_b: sm_ctl_b {
|
||||
broadcom,function = "ALT1";
|
||||
};
|
||||
|
||||
pins_sm_data_8bit_a: sm_data_8bit_a {
|
||||
broadcom,function = "ALT1";
|
||||
};
|
||||
|
||||
pins_sm_data_8bit_b: sm_data_8bit_b {
|
||||
broadcom,function = "ALT1";
|
||||
};
|
||||
|
||||
pins_sm_data_16bit: sm_data_16bit {
|
||||
broadcom,function = "ALT1";
|
||||
};
|
||||
|
||||
pins_sm_data_18bit: sm_data_18bit {
|
||||
broadcom,function = "ALT1";
|
||||
};
|
||||
|
||||
/* BSCSL */
|
||||
pins_bscsl: bscsl {
|
||||
broadcom,function = "ALT3";
|
||||
};
|
||||
|
||||
/* SPISL */
|
||||
pins_spisl: spisl {
|
||||
broadcom,function = "ALT3";
|
||||
};
|
||||
|
||||
/* SPI1 */
|
||||
pins_spi1: spi1 {
|
||||
broadcom,function = "ALT4";
|
||||
};
|
||||
|
||||
/* UART1 */
|
||||
pins_uart1_a: uart1_a {
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_uart1_b: uart1_b {
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_uart1_c: uart1_c {
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_uart1_fc_a: uart1_fc_a {
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_uart1_fc_b: uart1_fc_b {
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_uart1_fc_c: uart1_fc_c {
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
/* SPI2 */
|
||||
pins_spi2: spi2 {
|
||||
broadcom,function = "ALT4";
|
||||
};
|
||||
|
||||
/* ARM JTAG */
|
||||
pins_arm_jtag_trst: arm_jtag_trst {
|
||||
broadcom,function = "ALT4";
|
||||
};
|
||||
|
||||
pins_arm_jtag_a: arm_jtag_a {
|
||||
broadcom,function = "ALT5";
|
||||
};
|
||||
|
||||
pins_arm_jtag_b: arm_jtag_b {
|
||||
broadcom,function = "ALT4";
|
||||
};
|
||||
|
||||
/* Reserved */
|
||||
pins_reserved: reserved {
|
||||
broadcom,function = "ALT3";
|
||||
};
|
||||
};
|
||||
usb {
|
||||
hub {
|
||||
compatible = "usb,hub", "usb,device";
|
||||
reg = <0x00000001>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
ethernet {
|
||||
compatible = "net,ethernet",
|
||||
"usb,device";
|
||||
reg = <0x00000001>;
|
||||
mac-address = [00 00 00 00 00 00];
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
|
||||
display {
|
||||
compatible = "broadcom,bcm2835-fb", "broadcom,bcm2708-fb";
|
||||
|
||||
broadcom,vc-mailbox = <&vc_mbox>;
|
||||
broadcom,vc-channel = <1>;
|
||||
|
||||
broadcom,width = <0>; /* Set by VideoCore */
|
||||
broadcom,height = <0>; /* Set by VideoCore */
|
||||
broadcom,depth = <0>; /* Set by VideoCore */
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
ok {
|
||||
label = "ok";
|
||||
gpios = <&gpio 16 1>;
|
||||
|
||||
/* Don't change this - it configures
|
||||
* how the led driver determines if
|
||||
* the led is on or off when it loads.
|
||||
*/
|
||||
default-state = "keep";
|
||||
|
||||
/* This is the real default state. */
|
||||
linux,default-trigger = "default-on";
|
||||
};
|
||||
};
|
||||
|
||||
power: regulator {
|
||||
compatible = "broadcom,bcm2835-power-mgr",
|
||||
"broadcom,bcm2708-power-mgr",
|
||||
"simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
broadcom,vc-mailbox = <&vc_mbox>;
|
||||
broadcom,vc-channel = <0>;
|
||||
|
||||
regulator-name = "VideoCore";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on = <1>;
|
||||
|
||||
sd_card_power: regulator@0 {
|
||||
compatible = "broadcom,bcm2835-power-dev",
|
||||
"broadcom,bcm2708-power-dev";
|
||||
reg = <0>;
|
||||
|
||||
vin-supply = <&power>;
|
||||
regulator-name = "SD Card";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
/* This is for the controller itself, not the root port */
|
||||
usb_hcd_power: regulator@3 {
|
||||
compatible = "broadcom,bcm2835-power-dev",
|
||||
"broadcom,bcm2708-power-dev";
|
||||
reg = <3>;
|
||||
|
||||
vin-supply = <&power>;
|
||||
regulator-name = "USB HCD";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
};
|
||||
};
|
||||
|
||||
aliases {
|
||||
uart0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = ""; /* Set by VideoCore */
|
||||
stdin = "uart0";
|
||||
stdout = "uart0";
|
||||
};
|
||||
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user