【ZYNQ_LINUX】设备树分析1

之前内核有 digilent-zed.dts

/*
 * digilent-zed.dts - Default Device Tree for ZedBoard
 * 
 * (C) Copyright 2012 Digilent, Inc.
 * 
 * Code based on Device Tree Generator version: 1.1
 *
 * (C) Copyright 2007-2012 Xilinx, Inc.
 * (C) Copyright 2007-2012 Michal Simek
 * (C) Copyright 2007-2012 PetaLogix Qld Pty Ltd
 *
 * Michal SIMEK <monstr@monstr.eu>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 * MA 02111-1307 USA
 *
 * CAUTION: This file is automatically generated by libgen.
 * Version: Xilinx EDK 14.4 EDK_P.49d
 * Today is: Wednesday, the 26 of December, 2012; 15:18:18
 *
 * XPS project directory: device-tree_bsp_0
 */


/dts-v1/;
/ {
#address-cells = <1>;
#size-cells = <1>;
compatible = "xlnx,zynq-zed";
model = "Xilinx Zynq ZED";


aliases {
ethernet0 = &ps7_ethernet_0;
serial0 = &ps7_uart_1;
};


chosen {
bootargs = "console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=1";
/* bootargs = "console=ttyPS0,115200 root=/dev/ram rw initrd=0x800000,8M init=/init earlyprintk rootwait devtmpfs.mount=1"; */
linux,stdout-path = "/axi@0/serial@e0001000";
};


cpus {
#address-cells = <1>;
#cpus = <0x2>;
#size-cells = <0>;
ps7_cortexa9_0: cpu@0 {
clock-frequency = <666666687>;
compatible = "xlnx,ps7-cortexa9-1.00.a";
d-cache-line-size = <0x20>;
d-cache-size = <0x8000>;
device_type = "cpu";
i-cache-line-size = <0x20>;
i-cache-size = <0x8000>;
model = "ps7_cortexa9,1.00.a";
reg = <0>;
timebase-frequency = <333333343>;
xlnx,cpu-1x-clk-freq-hz = <0x69f6bcb>;
xlnx,cpu-clk-freq-hz = <0x27bc86bf>;
};
ps7_cortexa9_1: cpu@1 {
clock-frequency = <666666687>;
compatible = "xlnx,ps7-cortexa9-1.00.a";
d-cache-line-size = <0x20>;
d-cache-size = <0x8000>;
device_type = "cpu";
i-cache-line-size = <0x20>;
i-cache-size = <0x8000>;
model = "ps7_cortexa9,1.00.a";
reg = <1>;
timebase-frequency = <333333343>;
xlnx,cpu-1x-clk-freq-hz = <0x69f6bcb>;
xlnx,cpu-clk-freq-hz = <0x27bc86bf>;
};
};


ps7_ddr_0: memory@0 {
device_type = "memory";
reg = < 0x0 0x20000000 >;
};


ps7_axi_interconnect_0: axi@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "xlnx,ps7-axi-interconnect-1.00.a", "simple-bus";
ranges;


/* ADAU 1761 IP Part                                  */
/* Support for ADAU1761 is broken, will be fixed soon */
/* axi_dma_i2s: axi-dma@40420000 {
axistream-connected = <&axi_i2s_adi_0>;
compatible = "xlnx,axi-dma-6.03.a", "xlnx,axi-dma-1.00.a";
interrupt-parent = <&ps7_scugic_0>;
reg = < 0x40420000 0x10000 >;
xlnx,dlytmr-resolution = <0x7d>;
xlnx,enable-multi-channel = <0x0>;
xlnx,family = "zynq";
xlnx,generic = <0x0>;
xlnx,include-mm2s = <0x1>;
xlnx,include-mm2s-dre = <0x0>;
xlnx,include-mm2s-sf = <0x1>;
xlnx,include-s2mm = <0x1>;
xlnx,include-s2mm-dre = <0x0>;
xlnx,include-s2mm-sf = <0x1>;
xlnx,include-sg = <0x1>;
xlnx,instance = "axi_dma_i2s";
xlnx,mm2s-burst-size = <0x10>;
xlnx,num-mm2s-channels = <0x1>;
xlnx,num-s2mm-channels = <0x1>;
xlnx,prmry-is-aclk-async = <0x0>;
xlnx,s2mm-burst-size = <0x10>;
xlnx,sg-include-desc-queue = <0x0>;
xlnx,sg-include-stscntrl-strm = <0x0>;
xlnx,sg-length-width = <0x14>;
xlnx,sg-use-stsapp-length = <0x1>;


dma-channel@40420000 {
compatible = "xlnx,axi-dma-mm2s-channel";
xlnx,datawidth = <0x20>;
interrupts = < 0 54 4 >;
xlnx,include-dre = <0x0>;
};
dma-channel@40420030 {
compatible = "xlnx,axi-dma-s2mm-channel";
xlnx,datawidth = <0x20>;
interrupts = < 0 55 4 >;
xlnx,include-dre = <0x0>;
};
};


axi_gpio_i2s: gpio@41200000 {
#gpio-cells = <2>;
compatible = "xlnx,axi-gpio-1.01.b", "xlnx,xps-gpio-1.00.a";
gpio-controller;
reg = < 0x41200000 0x10000 >;
xlnx,all-inputs = <0x0>;
xlnx,all-inputs-2 = <0x0>;
xlnx,dout-default = <0x0>;
xlnx,dout-default-2 = <0x0>;
xlnx,family = "zynq";
xlnx,gpio-width = <0x2>;
xlnx,gpio2-width = <0x20>;
xlnx,instance = "axi_gpio_i2s";
xlnx,interrupt-present = <0x0>;
xlnx,is-dual = <0x0>;
xlnx,tri-default = <0xffffffff>;
xlnx,tri-default-2 = <0xffffffff>;
};


axi_i2s_adi_0: axi-i2s-adi@77600000 {
compatible = "adi,axi-i2s-1.00.a";
reg = < 0x77600000 0x10000 >;
clock-frequency = <12288000>;
};


axi_iic_i2s: i2c@41640000 {
compatible = "xlnx,axi-iic-1.02.a", "xlnx,xps-iic-2.00.a";
interrupt-parent = <&ps7_scugic_0>;
interrupts = < 0 53 4 >;
reg = < 0x41640000 0x10000 >;
xlnx,family = "zynq";
xlnx,gpo-width = <0x1>;
xlnx,iic-freq = <0x186a0>;
xlnx,instance = "axi_iic_i2s";
xlnx,scl-inertial-delay = <0x0>;
xlnx,sda-inertial-delay = <0x0>;
xlnx,sda-level = <0x1>;
xlnx,ten-bit-adr = <0x0>;


#size-cells = <0>;
#address-cells = <1>;


adau1761: adau1761@3b {
compatible = "adi,adau1761";
reg = <0x3b>;
};
};


xilinx_pcm_audio_i2s: xilinx_pcm_audio_i2s {
compatible = "xilinx-pcm-audio";
#size-cells = <0>;
#address-cells = <1>;


stream@0{
reg = <0>;
dma-request = <&axi_dma_i2s 0>;
};
stream@1{
reg = <1>;
dma-request = <&axi_dma_i2s 1>;
};
};


zed_adau1761_snd: zed_adau1761_snd {
compatible = "zed-adau1761-snd";
audio-codec = <&adau1761>;
cpu-dai = <&axi_i2s_adi_0>;
pcm = <&xilinx_pcm_audio_i2s>;
};
*/
/* ADV7511 Part (HDMI SPDIF Sound Supported) */
axi_vdma_0: axivdma@43000000 {
#address-cells = <1>;
#size-cells = <1>;
#dma-cells = <1>;
compatible = "xlnx,axi-vdma";
ranges = < 0x43000000 0x43000000 0x10000 >;
reg = < 0x43000000 0x10000 >;
xlnx,flush-fsync = <0x1>;
xlnx,include-sg = <0x0>;
xlnx,num-fstores = <0x3>;
dma-channel@43000000 {
compatible = "xlnx,axi-vdma-mm2s-channel";
interrupt-parent = <&ps7_scugic_0>;
interrupts = < 0 59 4 >;
xlnx,datawidth = <0x40>;
xlnx,device-id = <0x0>;
xlnx,genlock-mode = <0x0>;
xlnx,include-dre = <0x0>;
};
};


axi_iic_hdmi: i2c@41600000 {
compatible = "xlnx,axi-iic-1.02.a", "xlnx,xps-iic-2.00.a";
interrupt-parent = <&ps7_scugic_0>;
interrupts = < 0 56 4 >;
reg = < 0x41600000 0x10000 >;
xlnx,family = "zynq";
xlnx,gpo-width = <0x1>;
xlnx,iic-freq = <0x186a0>;
xlnx,instance = "axi_iic_hdmi";
xlnx,scl-inertial-delay = <0x0>;
xlnx,sda-inertial-delay = <0x0>;
xlnx,sda-level = <0x1>;
xlnx,ten-bit-adr = <0x0>;
};


axi_hdmi_tx_16b_0: axi-hdmi-tx-16b@70e00000 {
compatible = "adi,cf-adv7x11-core-1.00.a";
reg = < 0x70e00000 0x10000 0x79000000 0x10000 >;
slave_adapter = <&axi_iic_hdmi>;
dma-request = <&axi_vdma_0 0x0>;
};


axi_dma_spdif: axi-dma@40400000 {
#address-cells = <1>;
#size-cells = <1>;
#dma-cells = <1>;
axistream-connected = <&axi_spdif_tx_0>;
compatible = "xlnx,axi-dma-6.03.a", "xlnx,axi-dma-1.00.a", "xlnx,axi-dma";
interrupt-parent = <&ps7_scugic_0>;
reg = < 0x40400000 0x10000 >;
xlnx,sg-include-stscntrl-strm = <0x0>;
xlnx,dlytmr-resolution = <0x7d>;
xlnx,enable-multi-channel = <0x0>;
xlnx,family = "zynq";
xlnx,generic = <0x0>;
xlnx,include-mm2s = <0x1>;
xlnx,include-mm2s-dre = <0x0>;
xlnx,include-mm2s-sf = <0x1>;
xlnx,include-s2mm = <0x0>;
xlnx,include-s2mm-dre = <0x0>;
xlnx,include-s2mm-sf = <0x1>;
xlnx,include-sg = <0x1>;
xlnx,instance = "axi_dma_spdif";
xlnx,mm2s-burst-size = <0x10>;
xlnx,num-mm2s-channels = <0x1>;
xlnx,num-s2mm-channels = <0x1>;
xlnx,prmry-is-aclk-async = <0x0>;
xlnx,s2mm-burst-size = <0x10>;
xlnx,sg-include-desc-queue = <0x0>;
xlnx,sg-length-width = <0x14>;
xlnx,sg-use-stsapp-length = <0x1>;


dma-channel@40400000 {
compatible = "xlnx,axi-dma-mm2s-channel";
interrupts = < 0 58 4 >;
xlnx,datawidth = <0x20>;
xlnx,include-dre = <0x0>;
};
};


axi_spdif_tx_0: axi-spdif-tx@75c00000 {
compatible = "adi,axi-spdif-tx-1.00.a";
reg = < 0x75c00000 0x10000 >;
clock-frequency = <12288000>;
};


xlnx_pcm_spdif: xilinx_pcm_spdif_audio {
compatible = "xilinx-pcm-audio";
dma-request = <&axi_dma_spdif 0x0>;
};


adv7511_hdmi_snd {
compatible = "adv7511-hdmi-snd";
audio-codec-adapter = <&axi_iic_hdmi>;
cpu-dai = <&axi_spdif_tx_0>;
pcm = <&xlnx_pcm_spdif>;
};


/* PS system internal devices */
ps7_afi_0: ps7-afi@f8008000 {
compatible = "xlnx,ps7-afi-1.00.a";
reg = < 0xf8008000 0x1000 >;
};
ps7_afi_1: ps7-afi@f8009000 {
compatible = "xlnx,ps7-afi-1.00.a";
reg = < 0xf8009000 0x1000 >;
};
ps7_afi_2: ps7-afi@f800a000 {
compatible = "xlnx,ps7-afi-1.00.a";
reg = < 0xf800a000 0x1000 >;
};
ps7_afi_3: ps7-afi@f800b000 {
compatible = "xlnx,ps7-afi-1.00.a";
reg = < 0xf800b000 0x1000 >;
};


ps7_ddrc_0: ps7-ddrc@f8006000 {
compatible = "xlnx,ps7-ddrc-1.00.a";
reg = < 0xf8006000 0x1000 >;
xlnx,has-ecc = <0x0>;
};


ps7_dev_cfg_0: ps7-dev-cfg@f8007000 {
compatible = "xlnx,ps7-dev-cfg-1.00.a";
interrupt-parent = <&ps7_scugic_0>;
interrupts = < 0 8 4 >;
reg = < 0xf8007000 0x1000 >;
};


ps7_dma_ns: ps7-dma@f8004000 {
compatible = "xlnx,ps7-dma-1.00.a", "arm,pl330";
interrupt-parent = <&ps7_scugic_0>;
interrupts = < 0 13 4 0 14 4 0 15 4 0 16 4 0 17 4 0 40 4 0 41 4 0 42 4 0 43 4 >;
reg = < 0xf8004000 0x1000 >;
};


ps7_dma_s: ps7-dma@f8003000 {
compatible = "xlnx,ps7-dma-1.00.a", "arm,pl330";
interrupt-parent = <&ps7_scugic_0>;
interrupts = < 0 13 4 0 14 4 0 15 4 0 16 4 0 17 4 0 40 4 0 41 4 0 42 4 0 43 4 >;
reg = < 0xf8003000 0x1000 >;
};


ps7_ethernet_0: ps7-ethernet@e000b000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "xlnx,ps7-ethernet-1.00.a";
interrupt-parent = <&ps7_scugic_0>;
interrupts = < 0 22 4 >;
local-mac-address = [ 00 0a 35 00 00 00 ];
phy-handle = <&phy0>;
reg = < 0xe000b000 0x1000 >;
xlnx,enet-clk-freq-hz = <0x7735940>;
xlnx,enet-reset = <0xffffffff>;
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 = <111111115>;


mdio {
#address-cells = <1>;
#size-cells = <0>;
phy0: phy@0 {
compatible = "marvell,88e1510";
device_type = "ethernet-phy";
reg = <0>;
marvell,reg-init = <0x3 0x10 0xff00 0x1e 0x3 0x11 0xfff0 0xa>;
};
};
};


ps7_gpio_0: ps7-gpio@e000a000 {
#gpio-cells = <2>;
compatible = "xlnx,ps7-gpio-1.00.a";
emio-gpio-width = <60>;
gpio-controller;
gpio-mask-high = <0xc0000>;
gpio-mask-low = <0xfe81>;
interrupt-parent = <&ps7_scugic_0>;
interrupts = < 0 20 4 >;
reg = < 0xe000a000 0x1000 >;
};


ps7_iop_bus_config_0: ps7-iop-bus-config@e0200000 {
compatible = "xlnx,ps7-iop-bus-config-1.00.a";
reg = < 0xe0200000 0x1000 >;
};


ps7_pl310_0: ps7-pl310@f8f02000 {
arm,data-latency = < 3 2 2 >;
arm,tag-latency = < 2 2 2 >;
cache-level = < 2 >;
cache-unified;
compatible = "xlnx,ps7-pl310-1.00.a", "arm,pl310-cache";
reg = < 0xf8f02000 0x1000 >;
};


ps7_qspi_0: ps7-qspi@e000d000 {
bus-num = <0>;
compatible = "xlnx,ps7-qspi-1.00.a";
interrupt-parent = <&ps7_scugic_0>;
interrupts = < 0 19 4 >;
is-dual = <0>;
num-chip-select = <1>;
reg = < 0xe000d000 0x1000 >;
speed-hz = <200000000>;
xlnx,fb-clk = <0x1>;
xlnx,qspi-clk-freq-hz = <0xbebc200>;
xlnx,qspi-mode = <0x0>;
};


ps7_qspi_linear_0: ps7-qspi-linear@fc000000 {
compatible = "xlnx,ps7-qspi-linear-1.00.a";
reg = < 0xfc000000 0x1000000 >;
xlnx,qspi-clk-freq-hz = <0xe4e1c0>;
};


ps7_scugic_0: ps7-scugic@f8f01000 {
#address-cells = < 2 >;
#interrupt-cells = < 3 >;
#size-cells = < 1 >;
compatible = "xlnx,ps7-scugic-1.00.a", "arm,cortex-a9-gic", "arm,gic";
interrupt-controller;
linux,phandle = < 0x1 >;
phandle = < 0x1 >;
reg = < 0xf8f01000 0x1000 0xf8f00100 0x100 >;
};


ps7_scutimer_0: ps7-scutimer@f8f00600 {
clock-frequency = <333333343>;
compatible = "xlnx,ps7-scutimer-1.00.a", "arm,cortex-a9-twd-timer";
interrupt-parent = <&ps7_scugic_0>;
interrupts = < 1 13 769 >;
reg = < 0xf8f00600 0x20 >;
};


ps7_scuwdt_0: ps7-scuwdt@f8f00620 {
clock-frequency = <333333343>;
/* clock-frequency = <111111111>; */
compatible = "xlnx,ps7-scuwdt-1.00.a";
device_type = "watchdog";
interrupt-parent = <&ps7_scugic_0>;
interrupts = < 1 14 769 >;
reg = < 0xf8f00620 0xe0 >;
};


ps7_sd_0: ps7-sdio@e0100000 {
clock-frequency = <50000000>;
compatible = "xlnx,ps7-sdio-1.00.a", "generic-sdhci";
interrupt-parent = <&ps7_scugic_0>;
interrupts = < 0 24 4 >;
reg = < 0xe0100000 0x1000 >;
xlnx,has-cd = <0x1>;
xlnx,has-power = <0x0>;
xlnx,has-wp = <0x1>;
xlnx,sdio-clk-freq-hz = <0x2faf080>;
/* clock-frequency = <0x1fc9f08>; */
};


ps7_slcr_0: ps7-slcr@f8000000 {
compatible = "xlnx,ps7-slcr-1.00.a";
reg = < 0xf8000000 0x1000 >;
};


ps7_ttc_0: ps7-ttc@f8001000 {
clock-frequency = <111111115>;
clock-frequency-timer0 = <111111115>;
clock-frequency-timer1 = <111111115>;
clock-frequency-timer2 = <111111115>;
compatible = "xlnx,ps7-ttc-1.00.a";
interrupt-parent = <&ps7_scugic_0>;
interrupts = < 0 10 4 0 11 4 0 12 4 >;
reg = < 0xf8001000 0x1000 >;
xlnx,ttc-clk0-clksrc = <0x0>;
xlnx,ttc-clk0-freq-hz = <0x69f6bcb>;
xlnx,ttc-clk1-clksrc = <0x0>;
xlnx,ttc-clk1-freq-hz = <0x69f6bcb>;
xlnx,ttc-clk2-clksrc = <0x0>;
xlnx,ttc-clk2-freq-hz = <0x69f6bcb>;
};


ps7_uart_1: serial@e0001000 {
clock = <50000000>;
clock-frequency = <50000000>;
compatible = "xlnx,ps7-uart-1.00.a", "xlnx,xuartps";
current-speed = <115200>;
device_type = "serial";
interrupt-parent = <&ps7_scugic_0>;
interrupts = < 0 50 4 >;
port-number = <0>;
reg = < 0xe0001000 0x1000 >;
xlnx,has-modem = <0x0>;
xlnx,uart-clk-freq-hz = <0x2faf080>;
};


ps7_usb_0: ps7-usb@e0002000 {
compatible = "xlnx,ps7-usb-1.00.a";
dr_mode = "host";
interrupt-parent = <&ps7_scugic_0>;
interrupts = < 0 21 4 >;
phy_type = "ulpi";
reg = < 0xe0002000 0x1000 >;
xlnx,usb-reset = <0xffffffff>;
};


ps7_xadc: ps7_xadc@f8007100 {
compatible = "xlnx,ps7-xadc-1.00.a";
interrupts = < 0 7 4 >;
reg = < 0xf8007100 0x20 >;
};


leds {
compatible = "gpio-leds";


mmc_led {
label = "mmc_led";
gpios = <&ps7_gpio_0 7 0>;
linux,default-trigger = "mmc0";
};
};


zed_oled {
compatible = "dglnt,pmodoled-gpio";
/* GPIO Pins */
vbat-gpio = <&ps7_gpio_0 55 0>;
vdd-gpio = <&ps7_gpio_0 56 0>;
res-gpio = <&ps7_gpio_0 57 0>;
dc-gpio = <&ps7_gpio_0 58 0>;
/* SPI-GPIOs */
spi-bus-num = <2>;
spi-speed-hz = <4000000>;
spi-sclk-gpio = <&ps7_gpio_0 59 0>;
spi-sdin-gpio = <&ps7_gpio_0 60 0>;
};
};
};


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值