// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Common part of the device tree for the Kontron KSwitch D10 MMT
 */

/dts-v1/;
#include "lan966x.dtsi"
#include "dt-bindings/phy/phy-lan966x-serdes.h"

/ {
	aliases {
		serial0 = &usart0;
	};

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

	gpio-restart {
		compatible = "gpio-restart";
		pinctrl-0 = <&reset_pins>;
		pinctrl-names = "default";
		gpios = <&gpio 56 GPIO_ACTIVE_LOW>;
		priority = <200>;
	};
};

&flx0 {
	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
	status = "okay";

	usart0: serial@200 {
		pinctrl-0 = <&usart0_pins>;
		pinctrl-names = "default";
		status = "okay";
	};
};

&flx3 {
	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
	status = "okay";

	spi3: spi@400 {
		pinctrl-0 = <&fc3_b_pins>, <&spi3_cs_pins>;
		pinctrl-names = "default";
		status = "okay";
		cs-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
	};
};

&gpio {
	pinctrl-0 = <&phy_int_pins>;
	pinctrl-names = "default";

	fc3_b_pins: fc3-b-pins {
		/* SCK, MISO, MOSI */
		pins = "GPIO_51", "GPIO_52", "GPIO_53";
		function = "fc3_b";
	};

	miim_c_pins: miim-c-pins {
		/* MDC, MDIO */
		pins = "GPIO_59", "GPIO_60";
		function = "miim_c";
	};

	phy_int_pins: phy-int-pins {
		/* PHY_INT# */
		pins = "GPIO_24";
		function = "gpio";
	};

	reset_pins: reset-pins {
		/* SYS_RST# */
		pins = "GPIO_56";
		function = "gpio";
	};

	sgpio_a_pins: sgpio-a-pins {
		/* SCK, D0, D1 */
		pins = "GPIO_32", "GPIO_33", "GPIO_34";
		function = "sgpio_a";
	};

	sgpio_b_pins: sgpio-b-pins {
		/* LD */
		pins = "GPIO_64";
		function = "sgpio_b";
	};

	spi3_cs_pins: spi3-cs-pins {
		/* CS# */
		pins = "GPIO_46";
		function = "gpio";
	};

	usart0_pins: usart0-pins {
		/* RXD, TXD */
		pins = "GPIO_25", "GPIO_26";
		function = "fc0_b";
	};

	usbs_a_pins: usbs-a-pins {
		/* VBUS_DET */
		pins = "GPIO_66";
		function = "gpio";
	};
};

&mdio0 {
	pinctrl-0 = <&miim_c_pins>;
	pinctrl-names = "default";
	reset-gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
	clock-frequency = <2500000>;
	status = "okay";

	phy4: ethernet-phy@5 {
		reg = <5>;
		interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>;
		coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>;
	};

	phy5: ethernet-phy@6 {
		reg = <6>;
		interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>;
		coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>;
	};

	phy6: ethernet-phy@7 {
		reg = <7>;
		interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>;
		coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>;
	};

	phy7: ethernet-phy@8 {
		reg = <8>;
		interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>;
		coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>;
	};
};

&mdio1 {
	status = "okay";
};

&phy0 {
	status = "okay";
};

&phy1 {
	status = "okay";
};

&port0 {
	phys = <&serdes 0 CU(0)>;
	phy-handle = <&phy0>;
	phy-mode = "gmii";
	status = "okay";
};

&port1 {
	phys = <&serdes 1 CU(1)>;
	phy-handle = <&phy1>;
	phy-mode = "gmii";
	status = "okay";
};

&port4 {
	phys = <&serdes 4 SERDES6G(2)>;
	phy-handle = <&phy4>;
	phy-mode = "qsgmii";
	status = "okay";
};

&port5 {
	phys = <&serdes 5 SERDES6G(2)>;
	phy-handle = <&phy5>;
	phy-mode = "qsgmii";
	status = "okay";
};

&port6 {
	phys = <&serdes 6 SERDES6G(2)>;
	phy-handle = <&phy6>;
	phy-mode = "qsgmii";
	status = "okay";
};

&port7 {
	phys = <&serdes 7 SERDES6G(2)>;
	phy-handle = <&phy7>;
	phy-mode = "qsgmii";
	status = "okay";
};

&serdes {
	status = "okay";
};

&sgpio {
	pinctrl-0 = <&sgpio_a_pins>, <&sgpio_b_pins>;
	pinctrl-names = "default";
	bus-frequency = <8000000>;
	/* arbitrary range because all GPIOs are in software mode */
	microchip,sgpio-port-ranges = <0 11>;
	status = "okay";

	sgpio_in: gpio@0 {
		ngpios = <128>;
	};

	sgpio_out: gpio@1 {
		ngpios = <128>;
	};
};

&switch {
	status = "okay";
};

&udc {
	pinctrl-0 = <&usbs_a_pins>;
	pinctrl-names = "default";
	atmel,vbus-gpio = <&gpio 66 GPIO_ACTIVE_HIGH>;
	status = "okay";
};

&watchdog {
	status = "okay";
};
