199767f8919635c4928607450d9e0abb932109ceToomas Soome/*-
199767f8919635c4928607450d9e0abb932109ceToomas Soome * Copyright (c) 2012 The FreeBSD Foundation
199767f8919635c4928607450d9e0abb932109ceToomas Soome * All rights reserved.
199767f8919635c4928607450d9e0abb932109ceToomas Soome *
199767f8919635c4928607450d9e0abb932109ceToomas Soome * Redistribution and use in source and binary forms, with or without
199767f8919635c4928607450d9e0abb932109ceToomas Soome * modification, are permitted provided that the following conditions
199767f8919635c4928607450d9e0abb932109ceToomas Soome * are met:
199767f8919635c4928607450d9e0abb932109ceToomas Soome * 1. Redistributions of source code must retain the above copyright
199767f8919635c4928607450d9e0abb932109ceToomas Soome * notice, this list of conditions and the following disclaimer.
199767f8919635c4928607450d9e0abb932109ceToomas Soome * 2. Redistributions in binary form must reproduce the above copyright
199767f8919635c4928607450d9e0abb932109ceToomas Soome * notice, this list of conditions and the following disclaimer in the
199767f8919635c4928607450d9e0abb932109ceToomas Soome * documentation and/or other materials provided with the distribution.
199767f8919635c4928607450d9e0abb932109ceToomas Soome *
199767f8919635c4928607450d9e0abb932109ceToomas Soome * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
199767f8919635c4928607450d9e0abb932109ceToomas Soome * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
199767f8919635c4928607450d9e0abb932109ceToomas Soome * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
199767f8919635c4928607450d9e0abb932109ceToomas Soome * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
199767f8919635c4928607450d9e0abb932109ceToomas Soome * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
199767f8919635c4928607450d9e0abb932109ceToomas Soome * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
199767f8919635c4928607450d9e0abb932109ceToomas Soome * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
199767f8919635c4928607450d9e0abb932109ceToomas Soome * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
199767f8919635c4928607450d9e0abb932109ceToomas Soome * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
199767f8919635c4928607450d9e0abb932109ceToomas Soome * SUCH DAMAGE.
199767f8919635c4928607450d9e0abb932109ceToomas Soome *
199767f8919635c4928607450d9e0abb932109ceToomas Soome * $FreeBSD$
199767f8919635c4928607450d9e0abb932109ceToomas Soome */
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome/dts-v1/;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome/ {
199767f8919635c4928607450d9e0abb932109ceToomas Soome model = "zedboard";
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "digilent,zedboard";
199767f8919635c4928607450d9e0abb932109ceToomas Soome #address-cells = <1>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome #size-cells = <1>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupt-parent = <&GIC>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome // cpus {
199767f8919635c4928607450d9e0abb932109ceToomas Soome // #address-cells = <1>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome // #size-cells = <0>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome // cpu@0 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome // device-type = "cpu";
199767f8919635c4928607450d9e0abb932109ceToomas Soome // model = "ARM Cortex-A9";
199767f8919635c4928607450d9e0abb932109ceToomas Soome // };
199767f8919635c4928607450d9e0abb932109ceToomas Soome // };
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome memory {
199767f8919635c4928607450d9e0abb932109ceToomas Soome // First megabyte isn't accessible by all interconnect masters.
199767f8919635c4928607450d9e0abb932109ceToomas Soome device_type = "memory";
199767f8919635c4928607450d9e0abb932109ceToomas Soome reg = <0x100000 0x1ff00000>; /* 511MB RAM at 0x100000 */
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome // Zynq PS System registers.
199767f8919635c4928607450d9e0abb932109ceToomas Soome //
199767f8919635c4928607450d9e0abb932109ceToomas Soome ps7sys@f8000000 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome device_type = "soc";
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "simple-bus";
199767f8919635c4928607450d9e0abb932109ceToomas Soome #address-cells = <1>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome #size-cells = <1>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome ranges = <0x0 0xf8000000 0xf10000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome // SLCR block
199767f8919635c4928607450d9e0abb932109ceToomas Soome slcr: slcr@7000 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "xlnx,zy7_slcr";
199767f8919635c4928607450d9e0abb932109ceToomas Soome reg = <0x0 0x1000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome clock-frequency = <33333333>; // 33Mhz PS_CLK
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome // Interrupt controller
199767f8919635c4928607450d9e0abb932109ceToomas Soome GIC: gic {
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "arm,gic";
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupt-controller;
199767f8919635c4928607450d9e0abb932109ceToomas Soome #address-cells = <0>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome #interrupt-cells = <1>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome reg = <0xf01000 0x1000>, // distributer registers
199767f8919635c4928607450d9e0abb932109ceToomas Soome <0xf00100 0x0100>; // CPU if registers
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome // L2 cache controller
199767f8919635c4928607450d9e0abb932109ceToomas Soome pl310@f02000 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "arm,pl310";
199767f8919635c4928607450d9e0abb932109ceToomas Soome reg = <0xf02000 0x1000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupts = <34>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupt-parent = <&GIC>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome // Device Config
199767f8919635c4928607450d9e0abb932109ceToomas Soome devcfg: devcfg@7000 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "xlnx,zy7_devcfg";
199767f8919635c4928607450d9e0abb932109ceToomas Soome reg = <0x7000 0x1000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupts = <40>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupt-parent = <&GIC>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome // triple timer counters0,1
199767f8919635c4928607450d9e0abb932109ceToomas Soome ttc0: ttc@1000 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "xlnx,ttc";
199767f8919635c4928607450d9e0abb932109ceToomas Soome reg = <0x1000 0x1000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome ttc1: ttc@2000 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "xlnx,ttc";
199767f8919635c4928607450d9e0abb932109ceToomas Soome reg = <0x2000 0x1000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome // ARM Cortex A9 TWD Timer
199767f8919635c4928607450d9e0abb932109ceToomas Soome timer@f00600 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "arm,mpcore-timers";
199767f8919635c4928607450d9e0abb932109ceToomas Soome clock-frequency = <333333333>; // 333Mhz
199767f8919635c4928607450d9e0abb932109ceToomas Soome #address-cells = <1>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome #size-cells = <0>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome reg = <0xf00200 0x100>, // Global Timer Regs
199767f8919635c4928607450d9e0abb932109ceToomas Soome <0xf00600 0x20>; // Private Timer Regs
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupts = < 27 29 >;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupt-parent = <&GIC>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome // system watch-dog timer
199767f8919635c4928607450d9e0abb932109ceToomas Soome swdt@5000 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome device_type = "watchdog";
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "xlnx,zy7_wdt";
199767f8919635c4928607450d9e0abb932109ceToomas Soome reg = <0x5000 0x1000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupts = <41>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupt-parent = <&GIC>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome scuwdt@f00620 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome device_type = "watchdog";
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "arm,mpcore_wdt";
199767f8919635c4928607450d9e0abb932109ceToomas Soome reg = <0xf00620 0x20>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupts = <30>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupt-parent = <&GIC>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome reset = <1>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome }; // pssys@f8000000
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome // Zynq PS I/O Peripheral registers.
199767f8919635c4928607450d9e0abb932109ceToomas Soome //
199767f8919635c4928607450d9e0abb932109ceToomas Soome ps7io@e0000000 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome device_type = "soc";
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "simple-bus";
199767f8919635c4928607450d9e0abb932109ceToomas Soome #address-cells = <1>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome #size-cells = <1>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome ranges = <0x0 0xe0000000 0x300000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome // uart0: uart@0000 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome // device_type = "serial";
199767f8919635c4928607450d9e0abb932109ceToomas Soome // compatible = "cadence,uart";
199767f8919635c4928607450d9e0abb932109ceToomas Soome // reg = <0x0000 0x1000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome // interrupts = <59>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome // interrupt-parent = <&GIC>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome // clock-frequency = <50000000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome // };
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome uart1: uart@1000 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome device_type = "serial";
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "cadence,uart";
199767f8919635c4928607450d9e0abb932109ceToomas Soome reg = <0x1000 0x1000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupts = <82>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupt-parent = <&GIC>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome clock-frequency = <50000000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome current-speed = <115200>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome gpio: gpio@a000 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "xlnx,zy7_gpio";
199767f8919635c4928607450d9e0abb932109ceToomas Soome reg = <0xa000 0x1000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupts = <52>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupt-parent = <&GIC>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome // GigE
199767f8919635c4928607450d9e0abb932109ceToomas Soome eth0: eth@b000 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome // device_type = "network";
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "cadence,gem";
199767f8919635c4928607450d9e0abb932109ceToomas Soome reg = <0xb000 0x1000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupts = <54 55>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupt-parent = <&GIC>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome ref-clock-num = <0>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome // SDIO
199767f8919635c4928607450d9e0abb932109ceToomas Soome sdhci0: sdhci@100000 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "xlnx,zy7_sdhci";
199767f8919635c4928607450d9e0abb932109ceToomas Soome reg = <0x100000 0x1000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupts = <56>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupt-parent = <&GIC>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome max-frequency = <50000000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome // QSPI
199767f8919635c4928607450d9e0abb932109ceToomas Soome qspi0: qspi@d000 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "xlnx,zy7_qspi";
199767f8919635c4928607450d9e0abb932109ceToomas Soome reg = <0xd000 0x1000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupts = <51>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupt-parent = <&GIC>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome spi-clock = <50000000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome ref-clock = <190476000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome // USB
199767f8919635c4928607450d9e0abb932109ceToomas Soome ehci0: ehci@2000 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome compatible = "xlnx,zy7_ehci";
199767f8919635c4928607450d9e0abb932109ceToomas Soome reg = <0x2000 0x1000>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupts = <53>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome interrupt-parent = <&GIC>;
199767f8919635c4928607450d9e0abb932109ceToomas Soome phy_vbus_ext;
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome }; // ps7io@e0000000
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome chosen {
199767f8919635c4928607450d9e0abb932109ceToomas Soome stdin = &uart1;
199767f8919635c4928607450d9e0abb932109ceToomas Soome stdout = &uart1;
199767f8919635c4928607450d9e0abb932109ceToomas Soome };
199767f8919635c4928607450d9e0abb932109ceToomas Soome};
199767f8919635c4928607450d9e0abb932109ceToomas Soome