/*
 * Xilinx CC108 board DTS
 *
 * (C) Copyright 2007-2013 Xilinx, Inc.
 * (C) Copyright 2007-2013 Michal Simek
 * (C) Copyright 2007-2012 PetaLogix Qld Pty Ltd
 *
 * Michal SIMEK <monstr@monstr.eu>
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */
/dts-v1/;
/include/ "zynq-7000.dtsi"

/ {
	compatible = "xlnx,zynq-cc108", "xlnx,zynq-7000";
	model = "Xilinx Zynq";

	aliases {
		ethernet0 = &gem0;
		serial0 = &uart0;
		spi0 = &qspi;
	};

	chosen {
		bootargs = "";
		stdout-path = "serial0:115200n8";
	};

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

	usb_phy0: phy0 {
		compatible = "usb-nop-xceiv";
		#phy-cells = <0>;
	};

	usb_phy1: phy1 {
		compatible = "usb-nop-xceiv";
		#phy-cells = <0>;
	};
};

&gem0 {
	status = "okay";
	phy-mode = "rgmii-id";
	phy-handle = <&ethernet_phy>;

	ethernet_phy: ethernet-phy@1 {
		reg = <1>;
		device_type = "ethernet-phy";
	};
};

&qspi {
	status = "okay";
	is-dual = <0>;
	num-cs = <1>;
	flash@0 { /* 16 MB */
		compatible = "n25q128a11";
		reg = <0x0>;
		spi-max-frequency = <50000000>;
		spi-tx-bus-width = <1>;
		spi-rx-bus-width = <4>;
		#address-cells = <1>;
		#size-cells = <1>;
		partition@0 {
			label = "qspi-fsbl-uboot-bs";
			reg = <0x0 0x400000>; /* 4MB */
		};
		partition@0x400000 {
			label = "qspi-linux";
			reg = <0x400000 0x400000>; /* 4MB */
		};
		partition@0x800000 {
			label = "qspi-rootfs";
			reg = <0x800000 0x400000>; /* 4MB */
		};
		partition@0xc00000 {
			label = "qspi-devicetree";
			reg = <0xc00000 0x100000>; /* 1MB */
		};
		partition@0xd00000 {
			label = "qspi-scratch";
			reg = <0xd00000 0x200000>; /* 2MB */
		};
		partition@0xf00000 {
			label = "qspi-uboot-env";
			reg = <0xf00000 0x100000>; /* 1MB */
		};
	};
};

&sdhci1 {
	status = "okay";
	broken-cd ;
	wp-inverted ;
};

&uart0 {
	status = "okay";
};

&usb0 {
	status = "okay";
	dr_mode = "host";
	usb-phy = <&usb_phy0>;
};

&usb1 {
	status = "okay";
	dr_mode = "host";
	usb-phy = <&usb_phy1>;
};
