056876f6c7
This makes us possible to define pinmux mapping in board-specific DTS. prima2.dtsi provides all possible (groups,functions) configuration, and device in .dts select configurations from dtsi files. Signed-off-by: Barry Song <Baohua.Song@csr.com> Acked-by: Linus Walleij <linus.walleij@linaro.org>
641 lines
18 KiB
Plaintext
641 lines
18 KiB
Plaintext
/*
|
|
* DTS file for CSR SiRFprimaII SoC
|
|
*
|
|
* Copyright (c) 2012 Cambridge Silicon Radio Limited, a CSR plc group company.
|
|
*
|
|
* Licensed under GPLv2 or later.
|
|
*/
|
|
|
|
/include/ "skeleton.dtsi"
|
|
/ {
|
|
compatible = "sirf,prima2";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
interrupt-parent = <&intc>;
|
|
|
|
cpus {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
cpu@0 {
|
|
reg = <0x0>;
|
|
d-cache-line-size = <32>;
|
|
i-cache-line-size = <32>;
|
|
d-cache-size = <32768>;
|
|
i-cache-size = <32768>;
|
|
/* from bootloader */
|
|
timebase-frequency = <0>;
|
|
bus-frequency = <0>;
|
|
clock-frequency = <0>;
|
|
};
|
|
};
|
|
|
|
axi {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0x40000000 0x40000000 0x80000000>;
|
|
|
|
l2-cache-controller@80040000 {
|
|
compatible = "arm,pl310-cache", "sirf,prima2-pl310-cache";
|
|
reg = <0x80040000 0x1000>;
|
|
interrupts = <59>;
|
|
arm,tag-latency = <1 1 1>;
|
|
arm,data-latency = <1 1 1>;
|
|
arm,filter-ranges = <0 0x40000000>;
|
|
};
|
|
|
|
intc: interrupt-controller@80020000 {
|
|
#interrupt-cells = <1>;
|
|
interrupt-controller;
|
|
compatible = "sirf,prima2-intc";
|
|
reg = <0x80020000 0x1000>;
|
|
};
|
|
|
|
sys-iobg {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0x88000000 0x88000000 0x40000>;
|
|
|
|
clock-controller@88000000 {
|
|
compatible = "sirf,prima2-clkc";
|
|
reg = <0x88000000 0x1000>;
|
|
interrupts = <3>;
|
|
};
|
|
|
|
reset-controller@88010000 {
|
|
compatible = "sirf,prima2-rstc";
|
|
reg = <0x88010000 0x1000>;
|
|
};
|
|
|
|
rsc-controller@88020000 {
|
|
compatible = "sirf,prima2-rsc";
|
|
reg = <0x88020000 0x1000>;
|
|
};
|
|
};
|
|
|
|
mem-iobg {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0x90000000 0x90000000 0x10000>;
|
|
|
|
memory-controller@90000000 {
|
|
compatible = "sirf,prima2-memc";
|
|
reg = <0x90000000 0x10000>;
|
|
interrupts = <27>;
|
|
};
|
|
};
|
|
|
|
disp-iobg {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0x90010000 0x90010000 0x30000>;
|
|
|
|
display@90010000 {
|
|
compatible = "sirf,prima2-lcd";
|
|
reg = <0x90010000 0x20000>;
|
|
interrupts = <30>;
|
|
};
|
|
|
|
vpp@90020000 {
|
|
compatible = "sirf,prima2-vpp";
|
|
reg = <0x90020000 0x10000>;
|
|
interrupts = <31>;
|
|
};
|
|
};
|
|
|
|
graphics-iobg {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0x98000000 0x98000000 0x8000000>;
|
|
|
|
graphics@98000000 {
|
|
compatible = "powervr,sgx531";
|
|
reg = <0x98000000 0x8000000>;
|
|
interrupts = <6>;
|
|
};
|
|
};
|
|
|
|
multimedia-iobg {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0xa0000000 0xa0000000 0x8000000>;
|
|
|
|
multimedia@a0000000 {
|
|
compatible = "sirf,prima2-video-codec";
|
|
reg = <0xa0000000 0x8000000>;
|
|
interrupts = <5>;
|
|
};
|
|
};
|
|
|
|
dsp-iobg {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0xa8000000 0xa8000000 0x2000000>;
|
|
|
|
dspif@a8000000 {
|
|
compatible = "sirf,prima2-dspif";
|
|
reg = <0xa8000000 0x10000>;
|
|
interrupts = <9>;
|
|
};
|
|
|
|
gps@a8010000 {
|
|
compatible = "sirf,prima2-gps";
|
|
reg = <0xa8010000 0x10000>;
|
|
interrupts = <7>;
|
|
};
|
|
|
|
dsp@a9000000 {
|
|
compatible = "sirf,prima2-dsp";
|
|
reg = <0xa9000000 0x1000000>;
|
|
interrupts = <8>;
|
|
};
|
|
};
|
|
|
|
peri-iobg {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0xb0000000 0xb0000000 0x180000>;
|
|
|
|
timer@b0020000 {
|
|
compatible = "sirf,prima2-tick";
|
|
reg = <0xb0020000 0x1000>;
|
|
interrupts = <0>;
|
|
};
|
|
|
|
nand@b0030000 {
|
|
compatible = "sirf,prima2-nand";
|
|
reg = <0xb0030000 0x10000>;
|
|
interrupts = <41>;
|
|
};
|
|
|
|
audio@b0040000 {
|
|
compatible = "sirf,prima2-audio";
|
|
reg = <0xb0040000 0x10000>;
|
|
interrupts = <35>;
|
|
};
|
|
|
|
uart0: uart@b0050000 {
|
|
cell-index = <0>;
|
|
compatible = "sirf,prima2-uart";
|
|
reg = <0xb0050000 0x10000>;
|
|
interrupts = <17>;
|
|
};
|
|
|
|
uart1: uart@b0060000 {
|
|
cell-index = <1>;
|
|
compatible = "sirf,prima2-uart";
|
|
reg = <0xb0060000 0x10000>;
|
|
interrupts = <18>;
|
|
};
|
|
|
|
uart2: uart@b0070000 {
|
|
cell-index = <2>;
|
|
compatible = "sirf,prima2-uart";
|
|
reg = <0xb0070000 0x10000>;
|
|
interrupts = <19>;
|
|
};
|
|
|
|
usp0: usp@b0080000 {
|
|
cell-index = <0>;
|
|
compatible = "sirf,prima2-usp";
|
|
reg = <0xb0080000 0x10000>;
|
|
interrupts = <20>;
|
|
};
|
|
|
|
usp1: usp@b0090000 {
|
|
cell-index = <1>;
|
|
compatible = "sirf,prima2-usp";
|
|
reg = <0xb0090000 0x10000>;
|
|
interrupts = <21>;
|
|
};
|
|
|
|
usp2: usp@b00a0000 {
|
|
cell-index = <2>;
|
|
compatible = "sirf,prima2-usp";
|
|
reg = <0xb00a0000 0x10000>;
|
|
interrupts = <22>;
|
|
};
|
|
|
|
dmac0: dma-controller@b00b0000 {
|
|
cell-index = <0>;
|
|
compatible = "sirf,prima2-dmac";
|
|
reg = <0xb00b0000 0x10000>;
|
|
interrupts = <12>;
|
|
};
|
|
|
|
dmac1: dma-controller@b0160000 {
|
|
cell-index = <1>;
|
|
compatible = "sirf,prima2-dmac";
|
|
reg = <0xb0160000 0x10000>;
|
|
interrupts = <13>;
|
|
};
|
|
|
|
vip@b00C0000 {
|
|
compatible = "sirf,prima2-vip";
|
|
reg = <0xb00C0000 0x10000>;
|
|
};
|
|
|
|
spi0: spi@b00d0000 {
|
|
cell-index = <0>;
|
|
compatible = "sirf,prima2-spi";
|
|
reg = <0xb00d0000 0x10000>;
|
|
interrupts = <15>;
|
|
};
|
|
|
|
spi1: spi@b0170000 {
|
|
cell-index = <1>;
|
|
compatible = "sirf,prima2-spi";
|
|
reg = <0xb0170000 0x10000>;
|
|
interrupts = <16>;
|
|
};
|
|
|
|
i2c0: i2c@b00e0000 {
|
|
cell-index = <0>;
|
|
compatible = "sirf,prima2-i2c";
|
|
reg = <0xb00e0000 0x10000>;
|
|
interrupts = <24>;
|
|
};
|
|
|
|
i2c1: i2c@b00f0000 {
|
|
cell-index = <1>;
|
|
compatible = "sirf,prima2-i2c";
|
|
reg = <0xb00f0000 0x10000>;
|
|
interrupts = <25>;
|
|
};
|
|
|
|
tsc@b0110000 {
|
|
compatible = "sirf,prima2-tsc";
|
|
reg = <0xb0110000 0x10000>;
|
|
interrupts = <33>;
|
|
};
|
|
|
|
gpio: pinctrl@b0120000 {
|
|
#gpio-cells = <2>;
|
|
#interrupt-cells = <2>;
|
|
compatible = "sirf,prima2-pinctrl";
|
|
reg = <0xb0120000 0x10000>;
|
|
interrupts = <43 44 45 46 47>;
|
|
gpio-controller;
|
|
interrupt-controller;
|
|
|
|
lcd_16pins_a: lcd0@0 {
|
|
lcd {
|
|
sirf,pins = "lcd_16bitsgrp";
|
|
sirf,function = "lcd_16bits";
|
|
};
|
|
};
|
|
lcd_18pins_a: lcd0@1 {
|
|
lcd {
|
|
sirf,pins = "lcd_18bitsgrp";
|
|
sirf,function = "lcd_18bits";
|
|
};
|
|
};
|
|
lcd_24pins_a: lcd0@2 {
|
|
lcd {
|
|
sirf,pins = "lcd_24bitsgrp";
|
|
sirf,function = "lcd_24bits";
|
|
};
|
|
};
|
|
lcdrom_pins_a: lcdrom0@0 {
|
|
lcd {
|
|
sirf,pins = "lcdromgrp";
|
|
sirf,function = "lcdrom";
|
|
};
|
|
};
|
|
uart0_pins_a: uart0@0 {
|
|
uart {
|
|
sirf,pins = "uart0grp";
|
|
sirf,function = "uart0";
|
|
};
|
|
};
|
|
uart1_pins_a: uart1@0 {
|
|
uart {
|
|
sirf,pins = "uart1grp";
|
|
sirf,function = "uart1";
|
|
};
|
|
};
|
|
uart2_pins_a: uart2@0 {
|
|
uart {
|
|
sirf,pins = "uart2grp";
|
|
sirf,function = "uart2";
|
|
};
|
|
};
|
|
uart2_noflow_pins_a: uart2@1 {
|
|
uart {
|
|
sirf,pins = "uart2_nostreamctrlgrp";
|
|
sirf,function = "uart2_nostreamctrl";
|
|
};
|
|
};
|
|
spi0_pins_a: spi0@0 {
|
|
spi {
|
|
sirf,pins = "spi0grp";
|
|
sirf,function = "spi0";
|
|
};
|
|
};
|
|
spi1_pins_a: spi1@0 {
|
|
spi {
|
|
sirf,pins = "spi1grp";
|
|
sirf,function = "spi1";
|
|
};
|
|
};
|
|
i2c0_pins_a: i2c0@0 {
|
|
i2c {
|
|
sirf,pins = "i2c0grp";
|
|
sirf,function = "i2c0";
|
|
};
|
|
};
|
|
i2c1_pins_a: i2c1@0 {
|
|
i2c {
|
|
sirf,pins = "i2c1grp";
|
|
sirf,function = "i2c1";
|
|
};
|
|
};
|
|
pwm0_pins_a: pwm0@0 {
|
|
pwm {
|
|
sirf,pins = "pwm0grp";
|
|
sirf,function = "pwm0";
|
|
};
|
|
};
|
|
pwm1_pins_a: pwm1@0 {
|
|
pwm {
|
|
sirf,pins = "pwm1grp";
|
|
sirf,function = "pwm1";
|
|
};
|
|
};
|
|
pwm2_pins_a: pwm2@0 {
|
|
pwm {
|
|
sirf,pins = "pwm2grp";
|
|
sirf,function = "pwm2";
|
|
};
|
|
};
|
|
pwm3_pins_a: pwm3@0 {
|
|
pwm {
|
|
sirf,pins = "pwm3grp";
|
|
sirf,function = "pwm3";
|
|
};
|
|
};
|
|
gps_pins_a: gps@0 {
|
|
gps {
|
|
sirf,pins = "gpsgrp";
|
|
sirf,function = "gps";
|
|
};
|
|
};
|
|
vip_pins_a: vip@0 {
|
|
vip {
|
|
sirf,pins = "vipgrp";
|
|
sirf,function = "vip";
|
|
};
|
|
};
|
|
sdmmc0_pins_a: sdmmc0@0 {
|
|
sdmmc0 {
|
|
sirf,pins = "sdmmc0grp";
|
|
sirf,function = "sdmmc0";
|
|
};
|
|
};
|
|
sdmmc1_pins_a: sdmmc1@0 {
|
|
sdmmc1 {
|
|
sirf,pins = "sdmmc1grp";
|
|
sirf,function = "sdmmc1";
|
|
};
|
|
};
|
|
sdmmc2_pins_a: sdmmc2@0 {
|
|
sdmmc2 {
|
|
sirf,pins = "sdmmc2grp";
|
|
sirf,function = "sdmmc2";
|
|
};
|
|
};
|
|
sdmmc3_pins_a: sdmmc3@0 {
|
|
sdmmc3 {
|
|
sirf,pins = "sdmmc3grp";
|
|
sirf,function = "sdmmc3";
|
|
};
|
|
};
|
|
sdmmc4_pins_a: sdmmc4@0 {
|
|
sdmmc4 {
|
|
sirf,pins = "sdmmc4grp";
|
|
sirf,function = "sdmmc4";
|
|
};
|
|
};
|
|
sdmmc5_pins_a: sdmmc5@0 {
|
|
sdmmc5 {
|
|
sirf,pins = "sdmmc5grp";
|
|
sirf,function = "sdmmc5";
|
|
};
|
|
};
|
|
i2s_pins_a: i2s@0 {
|
|
i2s {
|
|
sirf,pins = "i2sgrp";
|
|
sirf,function = "i2s";
|
|
};
|
|
};
|
|
ac97_pins_a: ac97@0 {
|
|
ac97 {
|
|
sirf,pins = "ac97grp";
|
|
sirf,function = "ac97";
|
|
};
|
|
};
|
|
nand_pins_a: nand@0 {
|
|
nand {
|
|
sirf,pins = "nandgrp";
|
|
sirf,function = "nand";
|
|
};
|
|
};
|
|
usp0_pins_a: usp0@0 {
|
|
usp0 {
|
|
sirf,pins = "usp0grp";
|
|
sirf,function = "usp0";
|
|
};
|
|
};
|
|
usp1_pins_a: usp1@0 {
|
|
usp1 {
|
|
sirf,pins = "usp1grp";
|
|
sirf,function = "usp1";
|
|
};
|
|
};
|
|
usp2_pins_a: usp2@0 {
|
|
usp2 {
|
|
sirf,pins = "usp2grp";
|
|
sirf,function = "usp2";
|
|
};
|
|
};
|
|
usb0_utmi_drvbus_pins_a: usb0_utmi_drvbus@0 {
|
|
usb0_utmi_drvbus {
|
|
sirf,pins = "usb0_utmi_drvbusgrp";
|
|
sirf,function = "usb0_utmi_drvbus";
|
|
};
|
|
};
|
|
usb1_utmi_drvbus_pins_a: usb1_utmi_drvbus@0 {
|
|
usb1_utmi_drvbus {
|
|
sirf,pins = "usb1_utmi_drvbusgrp";
|
|
sirf,function = "usb1_utmi_drvbus";
|
|
};
|
|
};
|
|
warm_rst_pins_a: warm_rst@0 {
|
|
warm_rst {
|
|
sirf,pins = "warm_rstgrp";
|
|
sirf,function = "warm_rst";
|
|
};
|
|
};
|
|
pulse_count_pins_a: pulse_count@0 {
|
|
pulse_count {
|
|
sirf,pins = "pulse_countgrp";
|
|
sirf,function = "pulse_count";
|
|
};
|
|
};
|
|
cko0_rst_pins_a: cko0_rst@0 {
|
|
cko0_rst {
|
|
sirf,pins = "cko0_rstgrp";
|
|
sirf,function = "cko0_rst";
|
|
};
|
|
};
|
|
cko1_rst_pins_a: cko1_rst@0 {
|
|
cko1_rst {
|
|
sirf,pins = "cko1_rstgrp";
|
|
sirf,function = "cko1_rst";
|
|
};
|
|
};
|
|
};
|
|
|
|
pwm@b0130000 {
|
|
compatible = "sirf,prima2-pwm";
|
|
reg = <0xb0130000 0x10000>;
|
|
};
|
|
|
|
efusesys@b0140000 {
|
|
compatible = "sirf,prima2-efuse";
|
|
reg = <0xb0140000 0x10000>;
|
|
};
|
|
|
|
pulsec@b0150000 {
|
|
compatible = "sirf,prima2-pulsec";
|
|
reg = <0xb0150000 0x10000>;
|
|
interrupts = <48>;
|
|
};
|
|
|
|
pci-iobg {
|
|
compatible = "sirf,prima2-pciiobg", "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0x56000000 0x56000000 0x1b00000>;
|
|
|
|
sd0: sdhci@56000000 {
|
|
cell-index = <0>;
|
|
compatible = "sirf,prima2-sdhc";
|
|
reg = <0x56000000 0x100000>;
|
|
interrupts = <38>;
|
|
};
|
|
|
|
sd1: sdhci@56100000 {
|
|
cell-index = <1>;
|
|
compatible = "sirf,prima2-sdhc";
|
|
reg = <0x56100000 0x100000>;
|
|
interrupts = <38>;
|
|
};
|
|
|
|
sd2: sdhci@56200000 {
|
|
cell-index = <2>;
|
|
compatible = "sirf,prima2-sdhc";
|
|
reg = <0x56200000 0x100000>;
|
|
interrupts = <23>;
|
|
};
|
|
|
|
sd3: sdhci@56300000 {
|
|
cell-index = <3>;
|
|
compatible = "sirf,prima2-sdhc";
|
|
reg = <0x56300000 0x100000>;
|
|
interrupts = <23>;
|
|
};
|
|
|
|
sd4: sdhci@56400000 {
|
|
cell-index = <4>;
|
|
compatible = "sirf,prima2-sdhc";
|
|
reg = <0x56400000 0x100000>;
|
|
interrupts = <39>;
|
|
};
|
|
|
|
sd5: sdhci@56500000 {
|
|
cell-index = <5>;
|
|
compatible = "sirf,prima2-sdhc";
|
|
reg = <0x56500000 0x100000>;
|
|
interrupts = <39>;
|
|
};
|
|
|
|
pci-copy@57900000 {
|
|
compatible = "sirf,prima2-pcicp";
|
|
reg = <0x57900000 0x100000>;
|
|
interrupts = <40>;
|
|
};
|
|
|
|
rom-interface@57a00000 {
|
|
compatible = "sirf,prima2-romif";
|
|
reg = <0x57a00000 0x100000>;
|
|
};
|
|
};
|
|
};
|
|
|
|
rtc-iobg {
|
|
compatible = "sirf,prima2-rtciobg", "sirf-prima2-rtciobg-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
reg = <0x80030000 0x10000>;
|
|
|
|
gpsrtc@1000 {
|
|
compatible = "sirf,prima2-gpsrtc";
|
|
reg = <0x1000 0x1000>;
|
|
interrupts = <55 56 57>;
|
|
};
|
|
|
|
sysrtc@2000 {
|
|
compatible = "sirf,prima2-sysrtc";
|
|
reg = <0x2000 0x1000>;
|
|
interrupts = <52 53 54>;
|
|
};
|
|
|
|
pwrc@3000 {
|
|
compatible = "sirf,prima2-pwrc";
|
|
reg = <0x3000 0x1000>;
|
|
interrupts = <32>;
|
|
};
|
|
};
|
|
|
|
uus-iobg {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0xb8000000 0xb8000000 0x40000>;
|
|
|
|
usb0: usb@b00e0000 {
|
|
compatible = "chipidea,ci13611a-prima2";
|
|
reg = <0xb8000000 0x10000>;
|
|
interrupts = <10>;
|
|
};
|
|
|
|
usb1: usb@b00f0000 {
|
|
compatible = "chipidea,ci13611a-prima2";
|
|
reg = <0xb8010000 0x10000>;
|
|
interrupts = <11>;
|
|
};
|
|
|
|
sata@b00f0000 {
|
|
compatible = "synopsys,dwc-ahsata";
|
|
reg = <0xb8020000 0x10000>;
|
|
interrupts = <37>;
|
|
};
|
|
|
|
security@b00f0000 {
|
|
compatible = "sirf,prima2-security";
|
|
reg = <0xb8030000 0x10000>;
|
|
interrupts = <42>;
|
|
};
|
|
};
|
|
};
|
|
};
|