// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2021 Corentin Labbe <clabbe@baylibre.com>
 * Device Tree file for Edimax NS 2502
 */

/dts-v1/;

#include "gemini.dtsi"

/ {
	model = "Edimax NS-2502";
	compatible = "edimax,ns-2502", "cortina,gemini";
	#address-cells = <1>;
	#size-cells = <1>;

	memory@0 {
		/* 128 MB */
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	aliases {
		mdio-gpio0 = &mdio0;
	};

	chosen {
		bootargs = "console=ttyS0,19200n8";
		stdout-path = &uart0;
	};

	mdio0: mdio {
		compatible = "virtual,mdio-gpio";
		gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
			<&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
		#address-cells = <1>;
		#size-cells = <0>;

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

&ethernet {
	status = "okay";
	ethernet-port@0 {
		phy-mode = "rgmii-id";
		phy-handle = <&phy0>;
	};
};

&flash {
	status = "okay";
	/* 8MB of flash */
	reg = <0x30000000 0x00800000>;

	pinctrl-names = "enabled", "disabled";
	pinctrl-0 = <&pflash_default_pins>;
	pinctrl-1 = <&pflash_disabled_pins>;

	partitions {
		compatible = "redboot-fis";
		/* Eraseblock at 0x7e0000 */
		fis-index-block = <0x3f>;
	};
};

&gpio0 {
	pinctrl-names = "default";
	pinctrl-0 = <&gpio0_default_pins>;
};

&ide0 {
	status = "okay";
};

&ide1 {
	status = "okay";
};

&sata {
	cortina,gemini-ata-muxmode = <3>;
	cortina,gemini-enable-sata-bridge;
	status = "okay";
};

&syscon {
	pinctrl {
		/*
		 * gpio0agrp cover line 0-4
		 * gpio0bgrp cover line 5
		 */
		gpio0_default_pins: pinctrl-gpio0 {
			    mux {
				    function = "gpio0";
				    groups = "gpio0agrp", "gpio0bgrp", "gpio0hgrp";
			    };
		};
		pflash_disabled_pins: pinctrl-pflash-disabled {
			mux {
				function = "gpio0";
				groups = "gpio0ggrp", "gpio0igrp", "gpio0jgrp",
					 "gpio0kgrp";
			};
		};
		pinctrl-gmii {
			mux {
				function = "gmii";
				groups = "gmii_gmac0_grp";
				};
		};
	};
};

&usb0 {
	status = "okay";
};

&usb1 {
	status = "okay";
};
