// SPDX-License-Identifier: GPL-2.0+
/*
 * dts file for Xilinx ZynqMP zc1751-xm017-dc3
 *
 * (C) Copyright 2016 - 2021, Xilinx, Inc.
 *
 * Michal Simek <michal.simek@amd.com>
 */

/dts-v1/;

#include "zynqmp.dtsi"
#include "zynqmp-clk-ccf.dtsi"
#include <dt-bindings/phy/phy.h>

/ {
	model = "ZynqMP zc1751-xm017-dc3 RevA";
	compatible = "xlnx,zynqmp-zc1751", "xlnx,zynqmp";

	aliases {
		ethernet0 = &gem0;
		i2c0 = &i2c0;
		i2c1 = &i2c1;
		mmc0 = &sdhci1;
		rtc0 = &rtc;
		serial0 = &uart0;
		serial1 = &uart1;
		usb0 = &usb0;
		usb1 = &usb1;
	};

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

	memory@0 {
		device_type = "memory";
		reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>;
	};

	clock_si5338_2: clk26 {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <26000000>;
	};

	clock_si5338_3: clk125 {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <125000000>;
	};
};

&fpd_dma_chan1 {
	status = "okay";
};

&fpd_dma_chan2 {
	status = "okay";
};

&fpd_dma_chan3 {
	status = "okay";
};

&fpd_dma_chan4 {
	status = "okay";
};

&fpd_dma_chan5 {
	status = "okay";
};

&fpd_dma_chan6 {
	status = "okay";
};

&fpd_dma_chan7 {
	status = "okay";
};

&fpd_dma_chan8 {
	status = "okay";
};

&gem0 {
	status = "okay";
	phy-handle = <&phy0>;
	phy-mode = "rgmii-id";
	mdio: mdio {
		#address-cells = <1>;
		#size-cells = <0>;
		phy0: ethernet-phy@0 { /* VSC8211 */
			reg = <0>;
		};
	};
};

&gpio {
	status = "okay";
};

/* just eeprom here */
&i2c0 {
	status = "okay";
	clock-frequency = <400000>;

	tca6416_u26: gpio@20 {
		compatible = "ti,tca6416";
		reg = <0x20>;
		gpio-controller;
		#gpio-cells = <2>;
		/* IRQ not connected */
	};

	rtc@68 {
		compatible = "dallas,ds1339";
		reg = <0x68>;
	};
};

/* eeprom24c02 and SE98A temp chip pca9306 */
&i2c1 {
	status = "okay";
	clock-frequency = <400000>;
};

/* MT29F64G08AECDBJ4-6 */
&nand0 {
	status = "okay";
	arasan,has-mdma;
	num-cs = <2>;

	nand@0 {
		reg = <0x0>;
		#address-cells = <0x2>;
		#size-cells = <0x1>;
		nand-ecc-mode = "hw";
		nand-rb = <0>;
		label = "main-storage-0";
		nand-ecc-step-size = <1024>;
		nand-ecc-strength = <24>;
		nand-on-flash-bbt;

		partition@0 {	/* for testing purpose */
			label = "nand-fsbl-uboot";
			reg = <0x0 0x0 0x400000>;
		};
		partition@1 {	/* for testing purpose */
			label = "nand-linux";
			reg = <0x0 0x400000 0x1400000>;
		};
		partition@2 {	/* for testing purpose */
			label = "nand-device-tree";
			reg = <0x0 0x1800000 0x400000>;
		};
		partition@3 {	/* for testing purpose */
			label = "nand-rootfs";
			reg = <0x0 0x1C00000 0x1400000>;
		};
		partition@4 {	/* for testing purpose */
			label = "nand-bitstream";
			reg = <0x0 0x3000000 0x400000>;
		};
		partition@5 {	/* for testing purpose */
			label = "nand-misc";
			reg = <0x0 0x3400000 0xFCC00000>;
		};
	};
	nand@1 {
		reg = <0x1>;
		#address-cells = <0x2>;
		#size-cells = <0x1>;
		nand-ecc-mode = "hw";
		nand-rb = <0>;
		label = "main-storage-1";
		nand-ecc-step-size = <1024>;
		nand-ecc-strength = <24>;
		nand-on-flash-bbt;

		partition@0 {	/* for testing purpose */
			label = "nand1-fsbl-uboot";
			reg = <0x0 0x0 0x400000>;
		};
		partition@1 {	/* for testing purpose */
			label = "nand1-linux";
			reg = <0x0 0x400000 0x1400000>;
		};
		partition@2 {	/* for testing purpose */
			label = "nand1-device-tree";
			reg = <0x0 0x1800000 0x400000>;
		};
		partition@3 {	/* for testing purpose */
			label = "nand1-rootfs";
			reg = <0x0 0x1C00000 0x1400000>;
		};
		partition@4 {	/* for testing purpose */
			label = "nand1-bitstream";
			reg = <0x0 0x3000000 0x400000>;
		};
		partition@5 {	/* for testing purpose */
			label = "nand1-misc";
			reg = <0x0 0x3400000 0xFCC00000>;
		};
	};
};

&psgtr {
	status = "okay";
	/* usb3, sata */
	clocks = <&clock_si5338_2>, <&clock_si5338_3>;
	clock-names = "ref2", "ref3";
};

&rtc {
	status = "okay";
};

&sata {
	status = "okay";
	/* SATA phy OOB timing settings */
	ceva,p0-cominit-params = /bits/ 8 <0x1B 0x4D 0x18 0x28>;
	ceva,p0-comwake-params = /bits/ 8 <0x06 0x19 0x08 0x0E>;
	ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
	ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
	ceva,p1-cominit-params = /bits/ 8 <0x1B 0x4D 0x18 0x28>;
	ceva,p1-comwake-params = /bits/ 8 <0x06 0x19 0x08 0x0E>;
	ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
	ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
	phy-names = "sata-phy";
	phys = <&psgtr 2 PHY_TYPE_SATA 0 3>;
};

&sdhci1 { /* emmc with some settings */
	status = "okay";
};

/* main */
&uart0 {
	status = "okay";
};

/* DB9 */
&uart1 {
	status = "okay";
};

&usb0 {
	status = "okay";
	phy-names = "usb3-phy";
	phys = <&psgtr 0 PHY_TYPE_USB3 0 2>;
};

&dwc3_0 {
	status = "okay";
	dr_mode = "host";
	snps,usb3_lpm_capable;
	maximum-speed = "super-speed";
};

/* ULPI SMSC USB3320 */
&usb1 {
	status = "okay";
	phy-names = "usb3-phy";
	phys = <&psgtr 3 PHY_TYPE_USB3 1 2>;
};

&dwc3_1 {
	status = "okay";
	dr_mode = "host";
	snps,usb3_lpm_capable;
	maximum-speed = "super-speed";
};
