// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
/*
 * QorIQ FMan v3 device tree nodes for ls1046
 *
 * Copyright 2015-2016 Freescale Semiconductor Inc.
 *
 */

&soc {

/* include used FMan blocks */
#include "qoriq-fman3-0.dtsi"
#include "qoriq-fman3-0-1g-0.dtsi"
#include "qoriq-fman3-0-1g-1.dtsi"
#include "qoriq-fman3-0-1g-2.dtsi"
#include "qoriq-fman3-0-1g-3.dtsi"
#include "qoriq-fman3-0-1g-4.dtsi"
#include "qoriq-fman3-0-1g-5.dtsi"
#include "qoriq-fman3-0-10g-0.dtsi"
#include "qoriq-fman3-0-10g-1.dtsi"
};

&fman0 {
	/* these aliases provide the FMan ports mapping */
	enet0: ethernet@e0000 {
		pcsphy-handle = <&qsgmiib_pcs3>;
		pcs-handle-names = "qsgmii";
	};

	enet1: ethernet@e2000 {
	};

	enet2: ethernet@e4000 {
	};

	enet3: ethernet@e6000 {
	};

	enet4: ethernet@e8000 {
		pcsphy-handle = <&pcsphy4>, <&qsgmiib_pcs1>;
		pcs-handle-names = "sgmii", "qsgmii";
	};

	enet5: ethernet@ea000 {
		pcsphy-handle = <&pcsphy5>, <&pcsphy5>;
		pcs-handle-names = "sgmii", "qsgmii";
	};

	enet6: ethernet@f0000 {
	};

	enet7: ethernet@f2000 {
		pcsphy-handle = <&pcsphy7>, <&qsgmiib_pcs2>, <&pcsphy7>;
		pcs-handle-names = "sgmii", "qsgmii", "xfi";
	};

	mdio@eb000 {
		qsgmiib_pcs1: ethernet-pcs@1 {
			compatible = "fsl,lynx-pcs";
			reg = <0x1>;
		};

		qsgmiib_pcs2: ethernet-pcs@2 {
			compatible = "fsl,lynx-pcs";
			reg = <0x2>;
		};

		qsgmiib_pcs3: ethernet-pcs@3 {
			compatible = "fsl,lynx-pcs";
			reg = <0x3>;
		};
	};
};
