// SPDX-License-Identifier: GPL-2.0+
/dts-v1/;
#include "../../../external/gpl2/dts/dist/arch/arm/boot/dts/zynq-7000.dtsi"

/ {
	model = "Red Pitaya SDRlab 122-16";
	compatible = "xlnx,zynq-7000";

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

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

	/* The SDRlab 122-16 comes out of the box with a bootloader that
	 * (I think) loads a bitstream to the FPGA.  I reserve the same
	 * memory regions as the device tree that comes with the 122-16
	 * does, just in case the FPGA alters them.  If we can come up
	 * with a new bootloader, then I think NetBSD can use all of
	 * these regions safely.
	 */
	reserved-memory {
		#address-cells = <0x1>;
		#size-cells = <0x1>;
		ranges;

		linux,cma {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x1000000>;
			alignment = <0x2000>;
			linux,cma-default;
		};

		labuf@a000000 {
			reg = <0xa000000 0x2000000>;
			linux,phandle = <0x2f>;
			phandle = <0x2f>;
		};

		buffer@1000000 {
			reg = <0x1000000 0x180000>;
			linux,phandle = <0x30>;
			phandle = <0x30>;
		};
	};

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

	usb_phy0: phy0 {
		#phy-cells = <0>;
		compatible = "usb-nop-xceiv";
		reset-gpios = <&gpio0 46 1>;
	};
};

&clkc {
	ps-clk-frequency = <33333333>;
};

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

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

&sdhci0 {
	status = "okay";
};

&uart0 {
	status = "okay";
};

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