// 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";
			/* We lack the knowledge of necessary GPIO to achieve
			 * Gigabit
			 */
			max-speed = <100>;
		};
		/* 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";
};
