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

/dts-v1/;

#include "gemini.dtsi"

/ {
	model = "SSI 1328";
	compatible = "ssi,1328", "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 initrd=0x900000,9M";
		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>;

		/* LAN Marvell 88E1118 */
		phy0: ethernet-phy@1 {
			reg = <1>;
			device_type = "ethernet-phy";
		};
		/* WAN ICPlus IP101A */
		phy1: ethernet-phy@2 {
			reg = <2>;
			device_type = "ethernet-phy";
		};
	};
};

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

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

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

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

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

&ide0 {
	status = "okay";
};

&ide1 {
	status = "okay";
};

&sata {
	cortina,gemini-ata-muxmode = <0>;
	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";
			};
		};
		pflash_disabled_pins: pinctrl-pflash-disabled {
			mux {
				function = "gpio0";
				groups = "gpio0ggrp", "gpio0igrp", "gpio0jgrp",
					 "gpio0kgrp";
			};
		};
		pinctrl-gmii {
			/* This platform use both the ethernet ports */
			mux {
				function = "gmii";
				groups = "gmii_gmac0_grp", "gmii_gmac1_grp";
			};
		};
	};
};

&usb0 {
	status = "okay";
};

&usb1 {
	status = "okay";
};
