freebsd-dev/sys/boot/fdt/dts/bcm2835-rpi-b.dts
Oleksandr Tymoshenko 4f6c4eb93a Add vchiq node
2012-11-30 03:16:45 +00:00

583 lines
12 KiB
Plaintext

/*
* $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 {
compatible = "arm,1176jzf-s";
};
};
axi {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x20000000 0x01000000>;
ranges = <0 0x20000000 0x01000000>;
intc: interrupt-controller {
compatible = "broadcom,bcm2835-armctrl-ic", "broadcom,bcm2708-armctrl-ic";
reg = <0xB200 0x200>;
interrupt-controller;
#interrupt-cells = <1>;
/* Bank 0
* 0: ARM_TIMER
* 1: ARM_MAILBOX
* 2: ARM_DOORBELL_0
* 3: ARM_DOORBELL_1
* 4: VPU0_HALTED
* 5: VPU1_HALTED
* 6: ILLEGAL_TYPE0
* 7: ILLEGAL_TYPE1
*/
/* Bank 1
* 0: TIMER0 16: DMA0
* 1: TIMER1 17: DMA1
* 2: TIMER2 18: VC_DMA2
* 3: TIMER3 19: VC_DMA3
* 4: CODEC0 20: DMA4
* 5: CODEC1 21: DMA5
* 6: CODEC2 22: DMA6
* 7: VC_JPEG 23: DMA7
* 8: ISP 24: DMA8
* 9: VC_USB 25: DMA9
* 10: VC_3D 26: DMA10
* 11: TRANSPOSER 27: DMA11
* 12: MULTICORESYNC0 28: DMA12
* 13: MULTICORESYNC1 29: AUX
* 14: MULTICORESYNC2 30: ARM
* 15: MULTICORESYNC3 31: VPUDMA
*/
/* Bank 2
* 0: HOSTPORT 16: SMI
* 1: VIDEOSCALER 17: GPIO0
* 2: CCP2TX 18: GPIO1
* 3: SDC 19: GPIO2
* 4: DSI0 20: GPIO3
* 5: AVE 21: VC_I2C
* 6: CAM0 22: VC_SPI
* 7: CAM1 23: VC_I2SPCM
* 8: HDMI0 24: VC_SDIO
* 9: HDMI1 25: VC_UART
* 10: PIXELVALVE1 26: SLIMBUS
* 11: I2CSPISLV 27: VEC
* 12: DSI1 28: CPG
* 13: PWA0 29: RNG
* 14: PWA1 30: VC_ARASANSDIO
* 15: CPR 31: AVSPMON
*/
};
timer {
compatible = "broadcom,bcm2835-system-timer", "broadcom,bcm2708-system-timer";
reg = <0x3000 0x1000>;
interrupts = <8 9 10 11>;
interrupt-parent = <&intc>;
clock-frequency = <1000000>;
};
dma: dma {
compatible = "broadcom,bcm2835-dma", "broadcom,bcm2708-dma";
reg = <0x7000 0x1000>, <0xE05000 0x1000>;
interrupts = <
26 /* 2 */
27 /* 3 */
>;
interrupt-parent = <&intc>;
broadcom,channels = <0>; /* Set by VideoCore */
};
sdhci {
compatible = "broadcom,bcm2835-sdhci", "broadcom,bcm2708-sdhci";
reg = <0x300000 0x100>;
interrupts = <70>;
interrupt-parent = <&intc>;
clock-frequency = <50000000>; /* Set by VideoCore */
};
armtimer {
/* Not AMBA compatible */
compatible = "broadcom,bcm2835-sp804", "arm,sp804";
reg = <0xB400 0x24>;
interrupts = <0>;
interrupt-parent = <&intc>;
};
vc_mbox: mbox {
compatible = "broadcom,bcm2835-mbox", "broadcom,bcm2708-mbox";
reg = <0xB880 0x40>;
interrupts = <1>;
interrupt-parent = <&intc>;
/* Channels
* 0: Power
* 1: Frame buffer
* 2: Virtual UART
* 3: VCHIQ
* 4: LEDs
* 5: Buttons
* 6: Touch screen
*/
};
watchdog0 {
compatible = "broadcom,bcm2835-wdt", "broadcom,bcm2708-wdt";
reg = <0x10001c 0x0c>; /* 0x1c, 0x20, 0x24 */
};
gpio: gpio {
compatible = "broadcom,bcm2835-gpio", "broadcom,bcm2708-gpio";
reg = <0x200000 0xb0>;
/* Unusual arrangement of interrupts (determined by testing)
* 17: Bank 0 (GPIOs 0-31)
* 19: Bank 1 (GPIOs 32-53)
* 18: Bank 2
* 20: All banks (GPIOs 0-53)
*/
interrupts = <57 59 58 60>;
interrupt-parent = <&intc>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <1>;
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
*/
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";
};
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";
};
pins_sm_data_8bit_b: sm_data_8bit_b {
broadcom,pins = <36>, <37>, <38>, <39>, <40>, <41>, <42>, <43>;
broadcom,function = "ALT1";
};
pins_sm_data_16bit: sm_data_16bit {
broadcom,pins = <16>, <17>, <18>, <19>, <20>, <21>, <22>, <23>;
broadcom,function = "ALT1";
};
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";
};
/* 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";
};
/* 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";
};
};
uart0: uart0 {
compatible = "broadcom,bcm2835-uart", "broadcom,bcm2708-uart", "arm,pl011", "arm,primecell";
reg = <0x201000 0x1000>;
interrupts = <65>;
interrupt-parent = <&intc>;
clock-frequency = <3000000>; /* Set by VideoCore */
reg-shift = <2>;
};
vchiq {
compatible = "broadcom,bcm2835-vchiq";
reg = <0xB800 0x50>;
interrupts = <2>;
interrupt-parent = <&intc>;
};
usb {
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";
};
};