]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: fsd: Add Ethernet support for PERIC Block of FSD SoC
authorSwathi K S <swathi.ks@samsung.com>
Fri, 7 Mar 2025 04:49:04 +0000 (10:19 +0530)
committerKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Tue, 8 Apr 2025 15:59:41 +0000 (17:59 +0200)
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 connected to a switch which is not managed by
Linux.

Adds device tree node for Ethernet in PERIC 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-3-swathi.ks@samsung.com
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
arch/arm64/boot/dts/tesla/fsd-evb.dts
arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi
arch/arm64/boot/dts/tesla/fsd.dtsi

index 321270a07651bb1ecee166cb5fc18eb603a3e061..9ff22e1c8723de844cf929366e56220445b724b2 100644 (file)
        };
 };
 
+&ethernet1 {
+       status = "okay";
+
+       phy-mode = "rgmii-id";
+       fixed-link {
+               speed = <1000>;
+               full-duplex;
+       };
+};
+
 &fin_pll {
        clock-frequency = <24000000>;
 };
index cb437483ff6e42db1d1984801ba0e8fa69ceda6c..6f4658f57453ad1a73d7a3d37c7c3605a9daa851 100644 (file)
                samsung,pin-pud = <FSD_PIN_PULL_DOWN>;
                samsung,pin-drv = <FSD_PIN_DRV_LV4>;
        };
+
+       eth1_tx_clk: eth1-tx-clk-pins {
+               samsung,pins = "gpf2-0";
+               samsung,pin-function = <FSD_PIN_FUNC_2>;
+               samsung,pin-pud = <FSD_PIN_PULL_DOWN>;
+               samsung,pin-drv = <FSD_PIN_DRV_LV6>;
+       };
+
+       eth1_tx_data: eth1-tx-data-pins {
+               samsung,pins = "gpf2-1", "gpf2-2", "gpf2-3", "gpf2-4";
+               samsung,pin-function = <FSD_PIN_FUNC_2>;
+               samsung,pin-pud = <FSD_PIN_PULL_UP>;
+               samsung,pin-drv = <FSD_PIN_DRV_LV6>;
+       };
+
+       eth1_tx_ctrl: eth1-tx-ctrl-pins {
+               samsung,pins = "gpf2-5";
+               samsung,pin-function = <FSD_PIN_FUNC_2>;
+               samsung,pin-pud = <FSD_PIN_PULL_UP>;
+               samsung,pin-drv = <FSD_PIN_DRV_LV6>;
+       };
+
+       eth1_phy_intr: eth1-phy-intr-pins {
+               samsung,pins = "gpf2-6";
+               samsung,pin-function = <FSD_PIN_FUNC_2>;
+               samsung,pin-pud = <FSD_PIN_PULL_UP>;
+               samsung,pin-drv = <FSD_PIN_DRV_LV4>;
+       };
+
+       eth1_rx_clk: eth1-rx-clk-pins {
+               samsung,pins = "gpf3-0";
+               samsung,pin-function = <FSD_PIN_FUNC_2>;
+               samsung,pin-pud = <FSD_PIN_PULL_UP>;
+               samsung,pin-drv = <FSD_PIN_DRV_LV6>;
+       };
+
+       eth1_rx_data: eth1-rx-data-pins {
+               samsung,pins = "gpf3-1", "gpf3-2", "gpf3-3", "gpf3-4";
+               samsung,pin-function = <FSD_PIN_FUNC_2>;
+               samsung,pin-pud = <FSD_PIN_PULL_UP>;
+               samsung,pin-drv = <FSD_PIN_DRV_LV6>;
+       };
+
+       eth1_rx_ctrl: eth1-rx-ctrl-pins {
+               samsung,pins = "gpf3-5";
+               samsung,pin-function = <FSD_PIN_FUNC_2>;
+               samsung,pin-pud = <FSD_PIN_PULL_UP>;
+               samsung,pin-drv = <FSD_PIN_DRV_LV6>;
+       };
+
+       eth1_mdio: eth1-mdio-pins {
+               samsung,pins = "gpf3-6", "gpf3-7";
+               samsung,pin-function = <FSD_PIN_FUNC_2>;
+               samsung,pin-pud = <FSD_PIN_PULL_UP>;
+               samsung,pin-drv = <FSD_PIN_DRV_LV4>;
+       };
 };
 
 &pinctrl_pmu {
index c4cc9b4b847de9a472120951cfc220cb135b3a34..a5ebb3f9b18fa19e074399599c41b9c2f9243141 100644 (file)
                        memory-region = <&mfc_left>;
                };
 
+               ethernet1: ethernet@14300000 {
+                       compatible = "tesla,fsd-ethqos";
+                       reg = <0x0 0x14300000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq";
+                       clocks = <&clock_peric PERIC_EQOS_TOP_IPCLKPORT_CLK_PTP_REF_I>,
+                                <&clock_peric PERIC_EQOS_TOP_IPCLKPORT_ACLK_I>,
+                                <&clock_peric PERIC_EQOS_TOP_IPCLKPORT_HCLK_I>,
+                                <&clock_peric PERIC_EQOS_TOP_IPCLKPORT_RGMII_CLK_I>,
+                                <&clock_peric PERIC_EQOS_TOP_IPCLKPORT_CLK_RX_I>,
+                                <&clock_peric PERIC_BUS_D_PERIC_IPCLKPORT_EQOSCLK>,
+                                <&clock_peric PERIC_BUS_P_PERIC_IPCLKPORT_EQOSCLK>,
+                                <&clock_peric PERIC_EQOS_PHYRXCLK_MUX>,
+                                <&clock_peric PERIC_EQOS_PHYRXCLK>,
+                                <&clock_peric PERIC_DOUT_RGMII_CLK>;
+                       clock-names = "ptp_ref", "master_bus", "slave_bus", "tx", "rx",
+                                     "master2_bus", "slave2_bus", "eqos_rxclk_mux",
+                                     "eqos_phyrxclk", "dout_peric_rgmii_clk";
+                       assigned-clocks = <&clock_peric PERIC_EQOS_PHYRXCLK_MUX>,
+                                         <&clock_peric PERIC_EQOS_PHYRXCLK>;
+                       assigned-clock-parents = <&clock_peric PERIC_EQOS_PHYRXCLK>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&eth1_tx_clk>, <&eth1_tx_data>, <&eth1_tx_ctrl>,
+                                   <&eth1_phy_intr>, <&eth1_rx_clk>, <&eth1_rx_data>,
+                                   <&eth1_rx_ctrl>, <&eth1_mdio>;
+                       local-mac-address = [00 00 00 00 00 00];
+                       iommus = <&smmu_peric 0x0 0x1>;
+                       status = "disabled";
+               };
+
                ufs: ufs@15120000 {
                        compatible = "tesla,fsd-ufs";
                        reg = <0x0 0x15120000 0x0 0x200>,  /* 0: HCI standard */