// SPDX-License-Identifier: GPL-2.0+ OR X11
/*
 * NXP LS1028A-QDS device tree fragment for RCW 9999
 *
 * Copyright 2019-2021 NXP
 */

/*
 * This setup is using SCH-24801 cards with VSC8234 quad SGMII PHY.
 * LS1028A QDS boards with lane B rework require two cards for the 4 switch
 * ports, QDS boards without the lane B rework only require one card.
 *
 * Switch ports are routed as follows:
 * Port 0 goes to 1st port of VSC8234 quad card in slot 1,
 * Port 1:
 *   - if the QDS has had lane B rework, it is 1st port in slot 2,
 *   - otherwise it is 2nd port in slot 1.
 * Port 2:
 *   - if DIP SW5[1] = 0 it is 3rd port in slot 1,
 *   - otherwise it is 1st port in slot 3.
 * Port 3:
 *   - if DIP SW5[2-3] = 00b it is 4th port in slot 1,
 *   - if DIP SW5[2-3] = 01b it is 2nd port in slot 3,
 *   - if DIP SW5[2-3] = 11b it is 1st port in slot 4.
 *
 * The following DTS assumes QDS lane B rework and DIP SW5[1-3] = 000b.  Two
 * SCH-24801 cards are required in slots 1 and 2.
 */
&slot1 {
	#include "fsl-sch-24801.dtsi"
};

&slot2 {
	#include "fsl-sch-24801.dtsi"
};

&enetc_port2 {
	status = "okay";
};

&mscc_felix {
	status = "okay";
};

&mscc_felix_port0 {
	status = "okay";
	phy-mode = "sgmii";
	phy-handle = <&{/soc/i2c@2000000/fpga@66/mux-mdio@54/mdio@40/phy@1c}>;
};

&mscc_felix_port1 {
	status = "okay";
	phy-mode = "sgmii";
	phy-handle = <&{/soc/i2c@2000000/fpga@66/mux-mdio@54/mdio@50/phy@1c}>;
};

&mscc_felix_port2 {
	status = "okay";
	phy-mode = "sgmii";
	phy-handle = <&{/soc/i2c@2000000/fpga@66/mux-mdio@54/mdio@40/phy@1e}>;
};

&mscc_felix_port3 {
	status = "okay";
	phy-mode = "sgmii";
	phy-handle = <&{/soc/i2c@2000000/fpga@66/mux-mdio@54/mdio@40/phy@1f}>;
};

&mscc_felix_port4 {
	ethernet = <&enetc_port2>;
	status = "okay";
};
