Commit 1d62af22 authored by Swathi K S's avatar Swathi K S Committed by Krzysztof Kozlowski
Browse files

arm64: dts: fsd: Add Ethernet support for FSYS0 Block of FSD SoC



The FSD SoC contains two instances of Synopsys DWC QoS Ethernet IP, one
in FSYS0 block and other in PERIC block.
The ethernet interface is managed by a switch which is not managed by
Linux.

Adds device tree node for Ethernet in FSYS0 Block and enables the same for
FSD platform.

Signed-off-by: default avatarPankaj Dubey <pankaj.dubey@samsung.com>
Signed-off-by: default avatarJayati Sahu <jayati.sahu@samsung.com>
Signed-off-by: default avatarSwathi K S <swathi.ks@samsung.com>
Link: https://lore.kernel.org/r/20250307044904.59077-2-swathi.ks@samsung.com


Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
parent 0af2f6be
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -64,6 +64,16 @@ codec {
	};
};

&ethernet0 {
	status = "okay";

	phy-mode = "rgmii-id";
	fixed-link {
		speed = <1000>;
		full-duplex;
	};
};

&fin_pll {
	clock-frequency = <24000000>;
};
+56 −0
Original line number Diff line number Diff line
@@ -64,6 +64,62 @@ ufs_refclk_out: ufs-refclk-out-pins {
		samsung,pin-pud = <FSD_PIN_PULL_UP>;
		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
	};

	eth0_tx_clk: eth0-tx-clk-pins {
		samsung,pins = "gpf0-0";
		samsung,pin-function = <FSD_PIN_FUNC_2>;
		samsung,pin-pud = <FSD_PIN_PULL_DOWN>;
		samsung,pin-drv = <FSD_PIN_DRV_LV6>;
	};

	eth0_tx_data: eth0-tx-data-pins {
		samsung,pins = "gpf0-1", "gpf0-2", "gpf0-3", "gpf0-4";
		samsung,pin-function = <FSD_PIN_FUNC_2>;
		samsung,pin-pud = <FSD_PIN_PULL_UP>;
		samsung,pin-drv = <FSD_PIN_DRV_LV6>;
	};

	eth0_tx_ctrl: eth0-tx-ctrl-pins {
		samsung,pins = "gpf0-5";
		samsung,pin-function = <FSD_PIN_FUNC_2>;
		samsung,pin-pud = <FSD_PIN_PULL_UP>;
		samsung,pin-drv = <FSD_PIN_DRV_LV6>;
	};

	eth0_phy_intr: eth0-phy-intr-pins {
		samsung,pins = "gpf0-6";
		samsung,pin-function = <FSD_PIN_FUNC_2>;
		samsung,pin-pud = <FSD_PIN_PULL_NONE>;
		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
	};

	eth0_rx_clk: eth0-rx-clk-pins {
		samsung,pins = "gpf1-0";
		samsung,pin-function = <FSD_PIN_FUNC_2>;
		samsung,pin-pud = <FSD_PIN_PULL_UP>;
		samsung,pin-drv = <FSD_PIN_DRV_LV6>;
	};

	eth0_rx_data: eth0-rx-data-pins {
		samsung,pins = "gpf1-1", "gpf1-2", "gpf1-3", "gpf1-4";
		samsung,pin-function = <FSD_PIN_FUNC_2>;
		samsung,pin-pud = <FSD_PIN_PULL_UP>;
		samsung,pin-drv = <FSD_PIN_DRV_LV6>;
	};

	eth0_rx_ctrl: eth0-rx-ctrl-pins {
		samsung,pins = "gpf1-5";
		samsung,pin-function = <FSD_PIN_FUNC_2>;
		samsung,pin-pud = <FSD_PIN_PULL_UP>;
		samsung,pin-drv = <FSD_PIN_DRV_LV6>;
	};

	eth0_mdio: eth0-mdio-pins {
		samsung,pins = "gpf1-6", "gpf1-7";
		samsung,pin-function = <FSD_PIN_FUNC_2>;
		samsung,pin-pud = <FSD_PIN_PULL_NONE>;
		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
	};
};

&pinctrl_peric {
+20 −0
Original line number Diff line number Diff line
@@ -1007,6 +1007,26 @@ ufs_phy: ufs-phy@15124000 {
			clocks = <&clock_fsys0 UFS0_MPHY_REFCLK_IXTAL26>;
			clock-names = "ref_clk";
		};

		ethernet0: ethernet@15300000 {
			compatible = "tesla,fsd-ethqos";
			reg = <0x0 0x15300000 0x0 0x10000>;
			interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "macirq";
			clocks = <&clock_fsys0 FSYS0_EQOS_TOP0_IPCLKPORT_CLK_PTP_REF_I>,
				 <&clock_fsys0 FSYS0_EQOS_TOP0_IPCLKPORT_ACLK_I>,
				 <&clock_fsys0 FSYS0_EQOS_TOP0_IPCLKPORT_HCLK_I>,
				 <&clock_fsys0 FSYS0_EQOS_TOP0_IPCLKPORT_RGMII_CLK_I>,
				 <&clock_fsys0 FSYS0_EQOS_TOP0_IPCLKPORT_CLK_RX_I>;
			clock-names = "ptp_ref", "master_bus", "slave_bus", "tx", "rx";
			pinctrl-names = "default";
			pinctrl-0 = <&eth0_tx_clk>, <&eth0_tx_data>, <&eth0_tx_ctrl>,
				    <&eth0_phy_intr>, <&eth0_rx_clk>, <&eth0_rx_data>,
				    <&eth0_rx_ctrl>, <&eth0_mdio>;
			local-mac-address = [00 00 00 00 00 00];
			iommus = <&smmu_fsys0 0x0 0x1>;
			status = "disabled";
		};
	};
};