// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Device Tree file for the Kontron KSwitch D10 MMT 6G-2GS
 */

/dts-v1/;
#include "lan966x-kontron-kswitch-d10-mmt.dtsi"

/ {
	model = "Kontron KSwitch D10 MMT 6G-2GS";
	compatible = "kontron,kswitch-d10-mmt-6g-2gs", "kontron,s1921",
		     "microchip,lan9668", "microchip,lan966";

	aliases {
		i2c0 = &i2c4;
		i2c1 = &i2c1;
	};

	sfp0: sfp0 {
		compatible = "sff,sfp";
		i2c-bus = <&i2c4>;
		los-gpios = <&sgpio_in 1 0 GPIO_ACTIVE_HIGH>;
		mod-def0-gpios = <&sgpio_in 1 1 GPIO_ACTIVE_LOW>;
		maximum-power-milliwatt = <2500>;
		tx-disable-gpios = <&sgpio_out 3 0 GPIO_ACTIVE_LOW>;
		tx-fault-gpios = <&sgpio_in 0 2 GPIO_ACTIVE_HIGH>;
		rate-select0-gpios = <&sgpio_out 2 0 GPIO_ACTIVE_HIGH>;
		rate-select1-gpios = <&sgpio_out 2 1 GPIO_ACTIVE_HIGH>;
	};

	sfp1: sfp1 {
		compatible = "sff,sfp";
		i2c-bus = <&i2c1>;
		los-gpios = <&sgpio_in 1 2 GPIO_ACTIVE_HIGH>;
		mod-def0-gpios = <&sgpio_in 1 3 GPIO_ACTIVE_LOW>;
		maximum-power-milliwatt = <2500>;
		tx-disable-gpios = <&sgpio_out 3 1 GPIO_ACTIVE_LOW>;
		tx-fault-gpios = <&sgpio_in 0 3 GPIO_ACTIVE_HIGH>;
		rate-select0-gpios = <&sgpio_out 2 2 GPIO_ACTIVE_HIGH>;
		rate-select1-gpios = <&sgpio_out 2 3 GPIO_ACTIVE_HIGH>;
	};
};

&flx1 {
	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
	status = "okay";

	i2c1: i2c@600 {
		pinctrl-0 = <&fc1_c_pins>;
		pinctrl-names = "default";
		status = "okay";
	};
};

&flx4 {
	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
	status = "okay";

	i2c4: i2c@600 {
		pinctrl-0 = <&fc4_b_pins>;
		pinctrl-names = "default";
		status = "okay";
	};
};

&gpio {
	fc1_c_pins: fc1-c-i2c-pins {
		/* SCL, SDA */
		pins = "GPIO_47", "GPIO_48";
		function = "fc1_c";
	};

	fc4_b_pins: fc4-b-i2c-pins {
		/* SCL, SDA */
		pins = "GPIO_57", "GPIO_58";
		function = "fc4_b";
	};
};

&port2 {
	phys = <&serdes 2 SERDES6G(0)>;
	sfp = <&sfp0>;
	managed = "in-band-status";
	phy-mode = "sgmii";
	status = "okay";
};

&port3 {
	phys = <&serdes 3 SERDES6G(1)>;
	sfp = <&sfp1>;
	managed = "in-band-status";
	phy-mode = "sgmii";
	status = "okay";
};