Skip to content

Instantly share code, notes, and snippets.

@aimeemikaelac
Created January 19, 2017 23:37
Show Gist options
  • Save aimeemikaelac/2eaeee6f118901520bc5c21ff7707332 to your computer and use it in GitHub Desktop.
Save aimeemikaelac/2eaeee6f118901520bc5c21ff7707332 to your computer and use it in GitHub Desktop.
basic zedboard device tree with UIO
/dts-v1/;
/ {
compatible = "xlnx,zynq-7000";
#address-cells = <0x1>;
#size-cells = <0x1>;
interrupt-parent = <0x1>;
model = "Xilinx Zynq ZED";
aliases {
ethernet0 = "/amba@0/eth@e000b000";
serial0 = "/amba@0/uart@e0001000";
};
cpus {
#address-cells = <0x1>;
#size-cells = <0x0>;
cpu@0 {
bus-handle = <0x2>;
clock-latency = <0x3e8>;
clocks = <0x3 0x3>;
compatible = "arm,cortex-a9";
device_type = "cpu";
interrupt-handle = <0x1>;
operating-points = <0xa2c2b 0xf4240 0x51616 0xf4240 0x3640f 0xf4240>;
reg = <0x0>;
};
cpu@1 {
bus-handle = <0x2>;
clocks = <0x3 0x3>;
compatible = "arm,cortex-a9";
device_type = "cpu";
interrupt-handle = <0x1>;
reg = <0x1>;
};
};
pmu {
compatible = "arm,cortex-a9-pmu";
interrupts = <0x0 0x5 0x4 0x0 0x6 0x4>;
interrupt-parent = <0x1>;
reg = <0xf8891000 0x1000 0xf8893000 0x1000>;
reg-names = "cpu0", "cpu1";
};
amba@0 {
compatible = "simple-bus";
#address-cells = <0x1>;
#size-cells = <0x1>;
ranges;
linux,phandle = <0x2>;
phandle = <0x2>;
intc@f8f01000 {
interrupt-controller;
compatible = "arm,cortex-a9-gic";
#interrupt-cells = <0x3>;
reg = <0xf8f01000 0x1000 0xf8f00100 0x100>;
linux,phandle = <0x1>;
phandle = <0x1>;
};
pl310@f8f02000 {
compatible = "arm,pl310-cache";
cache-unified;
cache-level = <0x2>;
reg = <0xf8f02000 0x1000>;
arm,data-latency = <0x3 0x2 0x2>;
arm,tag-latency = <0x2 0x2 0x2>;
};
uart@e0000000 {
compatible = "xlnx,xuartps";
status = "disabled";
reg = <0xe0000000 0x1000>;
interrupts = <0x0 0x1b 0x4>;
interrupt-parent = <0x1>;
clock-names = "ref_clk", "aper_clk";
clocks = <0x3 0x17 0x3 0x28>;
port-number = <0x0>;
current-speed = <0x1c200>;
device_type = "serial";
};
uart@e0001000 {
compatible = "xlnx,xuartps";
reg = <0xe0001000 0x1000>;
interrupts = <0x0 0x32 0x4>;
interrupt-parent = <0x1>;
clock-names = "ref_clk", "aper_clk";
clocks = <0x3 0x18 0x3 0x29>;
port-number = <0x0>;
current-speed = <0x1c200>;
device_type = "serial";
};
ps7-dma@f8003000 {
#dma-cells = <0x1>;
#dma-channels = <0x8>;
#dma-requests = <0x4>;
compatible = "arm,primecell", "arm,pl330";
interrupt-parent = <0x1>;
interrupts = <0x0 0xd 0x4 0x0 0xe 0x4 0x0 0xf 0x4 0x0 0x10 0x4 0x0 0x11 0x4 0x0 0x28 0x4 0x0 0x29 0x4 0x0 0x2a 0x4 0x0 0x2b 0x4>;
reg = <0xf8003000 0x1000>;
clocks = <0x3 0x1b>;
clock-names = "apb_pclk";
linux,phandle = <0x9>;
phandle = <0x9>;
};
slcr@f8000000 {
#address-cells = <0x1>;
#size-cells = <0x1>;
compatible = "xlnx,zynq-slcr", "syscon";
reg = <0xf8000000 0x1000>;
ranges;
clkc {
#clock-cells = <0x1>;
clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x", "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x", "dci", "lqspi", "smc", "pcap", "gem0", "gem1", "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1", "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1", "dma", "usb0_aper", "usb1_aper", "gem0_aper", "gem1_aper", "sdio0_aper", "sdio1_aper", "spi0_aper", "spi1_aper", "can0_aper", "can1_aper", "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper", "gpio_aper", "lqspi_aper", "smc_aper", "swdt", "dbg_trc", "dbg_apb";
compatible = "xlnx,ps7-clkc";
ps-clk-frequency = <0x1fca055>;
fclk-enable = <0xf>;
reg = <0x100 0x100>;
linux,phandle = <0x3>;
phandle = <0x3>;
};
};
timer@0xf8001000 {
compatible = "cdns,ttc";
reg = <0xf8001000 0x1000>;
interrupts = <0x0 0xa 0x4 0x0 0xb 0x4 0x0 0xc 0x4>;
interrupt-parent = <0x1>;
clocks = <0x3 0x6>;
};
timer@f8f00600 {
compatible = "arm,cortex-a9-twd-timer";
reg = <0xf8f00600 0x20>;
interrupts = <0x1 0xd 0x301>;
clocks = <0x3 0x4>;
interrupt-parent = <0x1>;
};
swdt@f8005000 {
device_type = "watchdog";
compatible = "xlnx,ps7-wdt-1.00.a", "xlnx,zynq-wdt-1.00.a";
reg = <0xf8005000 0x100>;
interrupts = <0x0 0x9 0x4>;
interrupt-parent = <0x1>;
clocks = <0x3 0x2d>;
reset = <0x0>;
timeout = <0xa>;
};
scuwdt@f8f00620 {
device_type = "watchdog";
compatible = "arm,mpcore_wdt";
reg = <0xf8f00620 0x20>;
clocks = <0x3 0x4>;
reset = <0x1>;
};
eth@e000b000 {
compatible = "xlnx,ps7-ethernet-1.00.a";
reg = <0xe000b000 0x1000>;
interrupts = <0x0 0x16 0x4>;
interrupt-parent = <0x1>;
#address-cells = <0x1>;
#size-cells = <0x0>;
clock-names = "ref_clk", "aper_clk";
clocks = <0x3 0xd 0x3 0x1e>;
xlnx,enet-clk-freq-hz = <0x17d7840>;
xlnx,enet-reset = "MIO 11";
xlnx,enet-slcr-1000mbps-div0 = <0x8>;
xlnx,enet-slcr-1000mbps-div1 = <0x1>;
xlnx,enet-slcr-100mbps-div0 = <0x8>;
xlnx,enet-slcr-100mbps-div1 = <0x5>;
xlnx,enet-slcr-10mbps-div0 = <0x8>;
xlnx,enet-slcr-10mbps-div1 = <0x32>;
xlnx,eth-mode = <0x1>;
xlnx,has-mdio = <0x1>;
xlnx,ptp-enet-clock = <0x69f6bcb>;
phy-handle = <0x4>;
phy-mode = "rgmii-id";
phy@0 {
compatible = "marvell,88e1510";
device_type = "ethernet-phy";
reg = <0x0>;
marvell,reg-init = <0x3 0x10 0xff00 0x1e 0x3 0x11 0xfff0 0xa>;
linux,phandle = <0x4>;
phandle = <0x4>;
};
};
gpio@e000a000 {
compatible = "xlnx,ps7-gpio-1.00.a", "xlnx,zynq-gpio-1.00.a", "xlnx,zynq-gpio-1.0";
reg = <0xe000a000 0x1000>;
interrupts = <0x0 0x14 0x4>;
interrupt-parent = <0x1>;
clocks = <0x3 0x2a>;
gpio-controller;
#gpio-cells = <0x2>;
interrupt-controller;
#interrupt-cells = <0x2>;
linux,phandle = <0x5>;
phandle = <0x5>;
};
sdhci@e0100000 {
compatible = "xlnx,ps7-sdio-1.00.a", "arasan,sdhci-8.9a";
reg = <0xe0100000 0x1000>;
interrupts = <0x0 0x18 0x4>;
interrupt-parent = <0x1>;
clock-names = "clk_xin", "clk_ahb";
clocks = <0x3 0x15 0x3 0x20>;
xlnx,has-cd = <0x1>;
clock-frequency = <0x2faf080>;
};
usb@e0002000 {
compatible = "xlnx,ps7-usb-1.00.a", "xlnx,zynq-usb-1.00.a";
reg = <0xe0002000 0x1000>;
interrupts = <0x0 0x15 0x4>;
interrupt-parent = <0x1>;
clocks = <0x3 0x1c>;
dr_mode = "host";
phy_type = "ulpi";
xlnx,phy-reset-gpio = <0x5 0x55 0x0>;
};
spi@e0006000 {
compatible = "cdns,spi-r1p6", "xlnx,zynq-spi-1.00.a", "xlnx,ps7-spi-1.00.a";
interrupt-parent = <0x1>;
interrupts = <0x0 0x1a 0x4>;
clock-names = "ref_clk", "aper_clk", "pclk";
clocks = <0x3 0x19 0x3 0x22 0x3 0x22>;
num-chip-select = <0x4>;
reg = <0xe0006000 0x1000>;
speed-hz = <0x5f5e100>;
#address-cells = <0x1>;
#size-cells = <0x0>;
status = "disabled";
};
spi@e0007000 {
compatible = "cdns,spi-r1p6", "xlnx,zynq-spi-1.00.a", "xlnx,ps7-spi-1.00.a";
interrupt-parent = <0x1>;
interrupts = <0x0 0x31 0x4>;
clock-names = "ref_clk", "aper_clk", "pclk";
clocks = <0x3 0x1a 0x3 0x23 0x3 0x23>;
num-chip-select = <0x4>;
reg = <0xe0007000 0x1000>;
speed-hz = <0x5f5e100>;
#address-cells = <0x1>;
#size-cells = <0x0>;
status = "disabled";
};
qspi@e000d000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
bus-num = <0x0>;
compatible = "xlnx,zynq-qspi-1.00.a", "xlnx,ps7-qspi-1.00.a";
interrupt-parent = <0x1>;
interrupts = <0x0 0x13 0x4>;
clock-names = "ref_clk", "aper_clk";
clocks = <0x3 0xa 0x3 0x2b>;
is-dual = <0x0>;
num-chip-select = <0x1>;
reg = <0xe000d000 0x1000>;
xlnx,fb-clk = <0x1>;
xlnx,qspi-clk-freq-hz = <0xbebc200>;
xlnx,qspi-mode = <0x0>;
ps7-qspi@0 {
#address-cells = <0x1>;
#size-cells = <0x1>;
compatible = "st,m25p80";
reg = <0x0>;
spi-max-frequency = <0x2faf080>;
partition@0x00000000 {
label = "boot";
reg = <0x0 0x500000>;
};
partition@0x00500000 {
label = "bootenv";
reg = <0x500000 0x20000>;
};
partition@0x00520000 {
label = "config";
reg = <0x520000 0x20000>;
};
partition@0x00540000 {
label = "image";
reg = <0x540000 0xa80000>;
};
partition@0x00fc0000 {
label = "spare";
reg = <0xfc0000 0x0>;
};
};
};
devcfg@f8007000 {
compatible = "xlnx,zynq-devcfg-1.0";
reg = <0xf8007000 0x100>;
interrupts = <0x0 0x8 0x4>;
interrupt-parent = <0x1>;
clocks = <0x3 0xc 0x3 0xf 0x3 0x10 0x3 0x11 0x3 0x12>;
clock-names = "ref_clk", "fclk0", "fclk1", "fclk2", "fclk3";
};
xadc@f8007100 {
compatible = "xlnx,zynq-xadc-1.00.a", "xlnx,ps7-xadc-1.00.a";
reg = <0xf8007100 0x20>;
interrupts = <0x0 0x7 0x4>;
interrupt-parent = <0x1>;
clocks = <0x3 0xc>;
};
ps7-ddrc@f8006000 {
compatible = "xlnx,zynq-ddrc-a05", "xlnx,ps7-ddrc-1.00.a", "xlnx,ps7-ddrc", "xlnx,zynq-ddrc-1.0";
reg = <0xf8006000 0x1000>;
xlnx,has-ecc = <0x0>;
};
ps7-ocm@f800c000 {
compatible = "xlnx,ps7-ocmc-1.00.a", "xlnx,zynq-ocmc-1.0";
interrupt-parent = <0x1>;
interrupts = <0x0 0x3 0x4>;
reg = <0xf800c000 0x1000>;
};
};
memory {
device_type = "memory";
reg = <0x0 0x20000000>;
};
chosen {
bootargs = "console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait mem=500M memmap=8M$500M uio_pdrv_genirq.of_id=\"generic-uio\"";
linux,stdout-path = "/amba@0/uart@E0001000";
};
aes-qam@43c00000 {
compatible = "generic-uio";
reg = <0x43c00000 0x10000>;
};
axi-reset@43c10000 {
compatible = "generic-uio";
reg = <0x43c10000 0x10000>;
};
memory-scanner@43c20000 {
compatible = "generic-uio";
reg = <0x43c20000 0x10000>;
};
triple-aes@43c30000 {
compatible = "generic-uio";
reg = <0x43c30000 0x10000>;
};
fpga-axi@0 {
compatible = "simple-bus";
#address-cells = <0x1>;
#size-cells = <0x1>;
ranges;
i2c@41600000 {
compatible = "xlnx,axi-iic-1.01.b", "xlnx,xps-iic-2.00.a";
interrupt-parent = <0x1>;
interrupts = <0x0 0x3a 0x4>;
reg = <0x41600000 0x10000>;
#size-cells = <0x0>;
#address-cells = <0x1>;
adv7511@39 {
compatible = "adi,adv7511";
reg = <0x39>;
adi,input-style = <0x2>;
adi,input-id = <0x1>;
adi,input-color-depth = <0x3>;
adi,sync-pulse = <0x3>;
adi,bit-justification = <0x1>;
adi,up-conversion = <0x0>;
adi,timing-generation-sequence = <0x0>;
adi,vsync-polarity = <0x2>;
adi,hsync-polarity = <0x2>;
adi,tdms-clock-inversion;
adi,clock-delay = <0x3>;
linux,phandle = <0x6>;
phandle = <0x6>;
};
adau1761@3b {
compatible = "adi,adau1761";
reg = <0x3b>;
linux,phandle = <0xc>;
phandle = <0xc>;
};
};
axivdma@43000000 {
compatible = "xlnx,axi-vdma";
#address-cells = <0x1>;
#size-cells = <0x1>;
#dma-cells = <0x1>;
#dma-channels = <0x1>;
reg = <0x43000000 0x1000>;
xlnx,include-sg = <0x0>;
xlnx,num-fstores = <0x3>;
linux,phandle = <0x7>;
phandle = <0x7>;
dma-channel@43000000 {
compatible = "xlnx,axi-vdma-mm2s-channel";
interrupts = <0x0 0x3b 0x4>;
xlnx,datawidth = <0x40>;
xlnx,genlock-mode = <0x0>;
xlnx,include-dre = <0x0>;
};
};
axi-clkgen@79000000 {
compatible = "adi,axi-clkgen-2.00.a";
reg = <0x79000000 0x10000>;
#clock-cells = <0x0>;
clocks = <0x3 0x10>;
linux,phandle = <0x8>;
phandle = <0x8>;
};
axi_hdmi@70e00000 {
compatible = "adi,axi-hdmi-tx-1.00.a";
reg = <0x70e00000 0x10000>;
encoder-slave = <0x6>;
dmas = <0x7 0x0>;
dma-names = "video";
clocks = <0x8>;
};
audio_clock {
compatible = "fixed-clock";
#clock-cells = <0x0>;
clock-frequency = <0xbb8000>;
linux,phandle = <0xa>;
phandle = <0xa>;
};
axi-spdif-tx@0x75c00000 {
compatible = "adi,axi-spdif-tx-1.00.a";
reg = <0x75c00000 0x1000>;
dmas = <0x9 0x0>;
dma-names = "tx";
clocks = <0x3 0xf 0xa 0xa>;
clock-names = "axi", "ref", "spdif";
linux,phandle = <0xb>;
phandle = <0xb>;
};
adv7511_hdmi_snd {
compatible = "adv7511-hdmi-snd";
audio-codec = <0x6>;
cpu-dai = <0xb>;
};
axi-i2s@0x77600000 {
compatible = "adi,axi-i2s-1.00.a";
reg = <0x77600000 0x1000>;
dmas = <0x9 0x1 0x9 0x2>;
dma-names = "tx", "rx";
clocks = <0x3 0xf 0xa 0xa>;
clock-names = "axi", "ref", "i2s";
linux,phandle = <0xd>;
phandle = <0xd>;
};
zed_sound {
compatible = "digilent,zed-sound";
audio-codec = <0xc>;
cpu-dai = <0xd>;
};
};
leds {
compatible = "gpio-leds";
ld0 {
label = "ld0:red";
gpios = <0x5 0x49 0x0>;
};
ld1 {
label = "ld1:red";
gpios = <0x5 0x4a 0x0>;
};
ld2 {
label = "ld2:red";
gpios = <0x5 0x4b 0x0>;
};
ld3 {
label = "ld3:red";
gpios = <0x5 0x4c 0x0>;
};
ld4 {
label = "ld4:red";
gpios = <0x5 0x4d 0x0>;
};
ld5 {
label = "ld5:red";
gpios = <0x5 0x4e 0x0>;
};
ld6 {
label = "ld6:red";
gpios = <0x5 0x4f 0x0>;
};
ld7 {
label = "ld7:red";
gpios = <0x5 0x50 0x0>;
};
};
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment