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: Pankaj Dubey <pankaj.dubey@samsung.com>
Signed-off-by: Jayati Sahu <jayati.sahu@samsung.com>
Signed-off-by: Swathi K S <swathi.ks@samsung.com>
Link: https://lore.kernel.org/r/20250307044904.59077-2-swathi.ks@samsung.com
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
This commit is contained in:
Swathi K S
2025-03-07 10:19:03 +05:30
committed by Krzysztof Kozlowski
parent 0af2f6be1b
commit 1d62af229b
3 changed files with 86 additions and 0 deletions

View File

@@ -64,6 +64,16 @@ codec {
};
};
&ethernet0 {
status = "okay";
phy-mode = "rgmii-id";
fixed-link {
speed = <1000>;
full-duplex;
};
};
&fin_pll {
clock-frequency = <24000000>;
};

View File

@@ -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 {

View File

@@ -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";
};
};
};