From 374ebb699b8b2348d70be9db333e78165c92b0cc Mon Sep 17 00:00:00 2001 From: Ozan Durgut Date: Tue, 21 Jul 2026 13:16:23 +0200 Subject: [PATCH 1/5] arm: dts: adi: configure SC594 EZLITE ADIN1300 reset Move the ADIN1300 reset GPIO out of its GPIO hog so the PHY driver controls reset. The ADIN1300 data sheet, Table 3, requires RESET_N to be asserted for at least 10 us. It also specifies a 5 ms delay before MDIO registers are accessible after reset deassertion. Signed-off-by: Ozan Durgut --- arch/arm/boot/dts/adi/sc594-som-ezlite.dts | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/arch/arm/boot/dts/adi/sc594-som-ezlite.dts b/arch/arm/boot/dts/adi/sc594-som-ezlite.dts index edd3bbb321dc5a..98933b24eb46c8 100644 --- a/arch/arm/boot/dts/adi/sc594-som-ezlite.dts +++ b/arch/arm/boot/dts/adi/sc594-som-ezlite.dts @@ -70,13 +70,6 @@ line-name = "usb_qspi_reset"; }; - eth0-reset { - gpio-hog; - gpios = <12 GPIO_ACTIVE_LOW>; - output-low; - line-name = "eth0-reset"; - }; - adau1372-pwrdwn { gpio-hog; gpios = <13 GPIO_ACTIVE_LOW>; @@ -124,12 +117,15 @@ pinctrl-0 = <ð0_default>; status = "okay"; - mdio0 { + mdio { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; adin1300: ethernet-phy@0 { reg = <0>; + reset-gpios = <&crr_gpio_expander 12 GPIO_ACTIVE_LOW>; + reset-assert-us = <10>; + reset-deassert-us = <5000>; }; }; }; @@ -180,4 +176,3 @@ pinctrl-0 = <&sru_dai0>; status = "okay"; }; - From 88f57621fff89ae98a1fdf24ef9939ee35d4e677 Mon Sep 17 00:00:00 2001 From: Ozan Durgut Date: Tue, 21 Jul 2026 13:16:34 +0200 Subject: [PATCH 2/5] arm: dts: adi: describe SC594 EZKIT Ethernet PHYs The SC594 EZKIT connects emac0 to an ADIN1300 and emac1 to an ADIN1200. Replace the stale TI PHY descriptions with the corresponding ADI PHY nodes and remove the unused DP83867 binding. Move the ADIN1300 reset GPIO out of its GPIO hog so the PHY driver controls reset. The ADIN1300 data sheet, Table 3, requires RESET_N to be asserted for at least 10 us and specifies a 5 ms delay before MDIO registers are accessible after reset deassertion. Signed-off-by: Ozan Durgut --- arch/arm/boot/dts/adi/sc594-som-ezkit.dts | 29 ++++++++++------------- arch/arm/boot/dts/adi/sc594-som.dtsi | 1 - 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/arch/arm/boot/dts/adi/sc594-som-ezkit.dts b/arch/arm/boot/dts/adi/sc594-som-ezkit.dts index 99b7390f989a0d..9c7aca63581746 100644 --- a/arch/arm/boot/dts/adi/sc594-som-ezkit.dts +++ b/arch/arm/boot/dts/adi/sc594-som-ezkit.dts @@ -117,13 +117,6 @@ line-name = "eth1-reset"; }; - gige-reset { - gpio-hog; - gpios = <15 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "gige-reset"; - }; - }; adau1979: adau1979@11 { @@ -160,38 +153,40 @@ &emac0 { snps,reset-active-low; snps,reset-delays-us = <0 200 500>; - phy-handle = <&dp83867>; + phy-handle = <&adin1300>; phy-mode = "rgmii-id"; pinctrl-names = "default"; pinctrl-0 = <ð0_default>; status = "okay"; - mdio0 { + mdio { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; - dp83867: ethernet-phy@0 { + + adin1300: ethernet-phy@0 { reg = <0>; - ti,rx-internal-delay = ; - ti,tx-internal-delay = ; - ti,fifo-depth = ; - ti,dp83867-rxctrl-strap-quirk; + reset-gpios = <&crr_gpio_expander 15 GPIO_ACTIVE_LOW>; + reset-assert-us = <10>; + reset-deassert-us = <5000>; }; }; }; &emac1 { - phy-handle = <&dp83848>; + phy-handle = <&adin1200>; phy-mode = "rmii"; pinctrl-names = "default"; pinctrl-0 = <ð1_default>; + status = "disabled"; - mdio1 { + mdio { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; - dp83848: ethernet-phy@1 { + + adin1200: ethernet-phy@1 { reg = <1>; }; }; diff --git a/arch/arm/boot/dts/adi/sc594-som.dtsi b/arch/arm/boot/dts/adi/sc594-som.dtsi index 3d46256af6439b..f39348f95f44b3 100644 --- a/arch/arm/boot/dts/adi/sc594-som.dtsi +++ b/arch/arm/boot/dts/adi/sc594-som.dtsi @@ -12,7 +12,6 @@ #include #include #include -#include #include "sc59x.dtsi" / { From 70d47200a98da614f373e089a1d3a59001e5931f Mon Sep 17 00:00:00 2001 From: Ozan Durgut Date: Tue, 21 Jul 2026 13:16:47 +0200 Subject: [PATCH 3/5] arm64: dts: adi: configure SC598 EZLITE ADIN1300 reset Move the ADIN1300 reset GPIO out of its GPIO hog so the PHY driver controls reset. The ADIN1300 data sheet, Table 3, requires RESET_N to be asserted for at least 10 us. It also specifies a 5 ms delay before MDIO registers are accessible after reset deassertion. Signed-off-by: Ozan Durgut --- arch/arm64/boot/dts/adi/sc598-som-ezlite.dts | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/arch/arm64/boot/dts/adi/sc598-som-ezlite.dts b/arch/arm64/boot/dts/adi/sc598-som-ezlite.dts index 5f9cd793e62733..0ecc1dcdc5d365 100644 --- a/arch/arm64/boot/dts/adi/sc598-som-ezlite.dts +++ b/arch/arm64/boot/dts/adi/sc598-som-ezlite.dts @@ -82,13 +82,6 @@ line-name = "usb_qspi_reset"; }; - eth0-reset { - gpio-hog; - gpios = <12 GPIO_ACTIVE_LOW>; - output-low; - line-name = "eth0-reset"; - }; - adau1372-pwrdwn { gpio-hog; gpios = <13 GPIO_ACTIVE_LOW>; @@ -169,12 +162,15 @@ }; }; - mdio0 { + mdio { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; adin1300: ethernet-phy@0 { reg = <0>; + reset-gpios = <&crr_gpio_expander 12 GPIO_ACTIVE_LOW>; + reset-assert-us = <10>; + reset-deassert-us = <5000>; }; }; From 597a88ac750d36b1900901d909fd876f3e797bbb Mon Sep 17 00:00:00 2001 From: Ozan Durgut Date: Tue, 21 Jul 2026 13:16:58 +0200 Subject: [PATCH 4/5] arm64: dts: adi: describe SC598 EZKIT Ethernet PHYs The SC598 EZKIT connects emac0 to an ADIN1300 and emac1 to an ADIN1200. Replace the stale TI PHY descriptions with the corresponding ADI PHY nodes and remove the unused DP83867 binding. Move the ADIN1300 reset GPIO out of its GPIO hog so the PHY driver controls reset. The ADIN1300 data sheet, Table 3, requires RESET_N to be asserted for at least 10 us and specifies a 5 ms delay before MDIO registers are accessible after reset deassertion. Keep emac1 disabled because its board routing is shared with USB0. Signed-off-by: Ozan Durgut --- arch/arm64/boot/dts/adi/sc598-som-ezkit.dtsi | 56 +++++++++----------- arch/arm64/boot/dts/adi/sc598-som.dtsi | 1 - 2 files changed, 26 insertions(+), 31 deletions(-) diff --git a/arch/arm64/boot/dts/adi/sc598-som-ezkit.dtsi b/arch/arm64/boot/dts/adi/sc598-som-ezkit.dtsi index 5e0422c7457ab8..f352522a62deb8 100644 --- a/arch/arm64/boot/dts/adi/sc598-som-ezkit.dtsi +++ b/arch/arm64/boot/dts/adi/sc598-som-ezkit.dtsi @@ -172,12 +172,6 @@ line-name = "eth1-reset"; }; - gige-reset { - gpio-hog; - gpios = <15 GPIO_ACTIVE_LOW>; - output-low; - line-name = "gige-reset"; - }; }; adau1979: adau1979@11 { @@ -195,7 +189,7 @@ &emac0 { snps,reset-active-low; snps,reset-delays-us = <0 200 500>; - phy-handle = <&dp83867>; + phy-handle = <&adin1300>; phy-mode = "rgmii-id"; pinctrl-names = "default"; pinctrl-0 = <ð0_default>; @@ -235,37 +229,39 @@ }; }; - mdio0 { + mdio { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; - dp83867: ethernet-phy@0 { + + adin1300: ethernet-phy@0 { reg = <0>; - ti,rx-internal-delay = ; - ti,tx-internal-delay = ; - ti,fifo-depth = ; - ti,dp83867-rxctrl-strap-quirk; + reset-gpios = <&crr_gpio_expander 15 GPIO_ACTIVE_LOW>; + reset-assert-us = <10>; + reset-deassert-us = <5000>; }; }; }; -//&emac1 { -// phy-handle = <&dp83848>; -// phy-mode = "rmii"; -// pinctrl-names = "default"; -// pinctrl-0 = <ð1_default>; -// status = "disabled";// - -// mdio1 { -// compatible = "snps,dwmac-mdio"; -// #address-cells = <1>; -// #size-cells = <0>; -// dp83848: ethernet-phy@1 { -// reg = <1>; -// }; -// };// - -//}; +&emac1 { + phy-handle = <&adin1200>; + phy-mode = "rmii"; + pinctrl-names = "default"; + pinctrl-0 = <ð1_default>; + + /* USB0 and ETH1 share board wiring; keep ETH1 disabled by default. */ + status = "disabled"; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <1>; + #size-cells = <0>; + + adin1200: ethernet-phy@1 { + reg = <1>; + }; + }; +}; &i2s4 { pinctrl-names = "default"; diff --git a/arch/arm64/boot/dts/adi/sc598-som.dtsi b/arch/arm64/boot/dts/adi/sc598-som.dtsi index f21b6edca4b7ff..fdf210445d4911 100644 --- a/arch/arm64/boot/dts/adi/sc598-som.dtsi +++ b/arch/arm64/boot/dts/adi/sc598-som.dtsi @@ -6,7 +6,6 @@ /dts-v1/; #include -#include #include #include #include "sc59x-64.dtsi" From 19b72142f36c2f25fe8c86eb69868dc69253ee3b Mon Sep 17 00:00:00 2001 From: Ozan Durgut Date: Tue, 21 Jul 2026 13:17:10 +0200 Subject: [PATCH 5/5] configs: sc5xx: enable ADIN PHY support Enable the ADIN PHY driver for the SC594 and SC598 board defconfigs. The board device trees use ADIN1300 and ADIN1200 PHYs; remove the obsolete TI PHY selections from the SC594 defconfigs. Signed-off-by: Ozan Durgut --- arch/arm/configs/sc594-som-ezkit_defconfig | 3 +-- arch/arm/configs/sc594-som-ezlite_defconfig | 3 +-- arch/arm64/configs/sc598-som-ezkit_defconfig | 1 + arch/arm64/configs/sc598-som-ezlite_defconfig | 1 + 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm/configs/sc594-som-ezkit_defconfig b/arch/arm/configs/sc594-som-ezkit_defconfig index d4bda4a52547c4..a34dc289d6d6bd 100644 --- a/arch/arm/configs/sc594-som-ezkit_defconfig +++ b/arch/arm/configs/sc594-som-ezkit_defconfig @@ -67,8 +67,7 @@ CONFIG_BLK_DEV_SD=y CONFIG_NETDEVICES=y CONFIG_NETCONSOLE=y CONFIG_STMMAC_ETH=y -CONFIG_DP83848_PHY=y -CONFIG_DP83867_PHY=y +CONFIG_ADIN_PHY=y CONFIG_INPUT_EVDEV=y CONFIG_INPUT_MISC=y CONFIG_VT_HW_CONSOLE_BINDING=y diff --git a/arch/arm/configs/sc594-som-ezlite_defconfig b/arch/arm/configs/sc594-som-ezlite_defconfig index 078adedda54ae2..b19cbe51f31ef3 100644 --- a/arch/arm/configs/sc594-som-ezlite_defconfig +++ b/arch/arm/configs/sc594-som-ezlite_defconfig @@ -67,8 +67,7 @@ CONFIG_BLK_DEV_SD=y CONFIG_NETDEVICES=y CONFIG_NETCONSOLE=y CONFIG_STMMAC_ETH=y -CONFIG_DP83848_PHY=y -CONFIG_DP83867_PHY=y +CONFIG_ADIN_PHY=y CONFIG_INPUT_EVDEV=y CONFIG_INPUT_MISC=y CONFIG_VT_HW_CONSOLE_BINDING=y diff --git a/arch/arm64/configs/sc598-som-ezkit_defconfig b/arch/arm64/configs/sc598-som-ezkit_defconfig index f9b57d116bf88d..1326d7cfb3a5f1 100644 --- a/arch/arm64/configs/sc598-som-ezkit_defconfig +++ b/arch/arm64/configs/sc598-som-ezkit_defconfig @@ -155,6 +155,7 @@ CONFIG_VIRTIO_NET=y # CONFIG_NET_VENDOR_SMSC is not set # CONFIG_NET_VENDOR_SOCIONEXT is not set CONFIG_STMMAC_ETH=y +CONFIG_ADIN_PHY=y # CONFIG_NET_VENDOR_VIA is not set # CONFIG_NET_VENDOR_WIZNET is not set # CONFIG_NET_VENDOR_XILINX is not set diff --git a/arch/arm64/configs/sc598-som-ezlite_defconfig b/arch/arm64/configs/sc598-som-ezlite_defconfig index c83901a80e5f2d..909ca2fbfbe6b4 100644 --- a/arch/arm64/configs/sc598-som-ezlite_defconfig +++ b/arch/arm64/configs/sc598-som-ezlite_defconfig @@ -153,6 +153,7 @@ CONFIG_VIRTIO_NET=y # CONFIG_NET_VENDOR_SMSC is not set # CONFIG_NET_VENDOR_SOCIONEXT is not set CONFIG_STMMAC_ETH=y +CONFIG_ADIN_PHY=y # CONFIG_NET_VENDOR_VIA is not set # CONFIG_NET_VENDOR_WIZNET is not set # CONFIG_NET_VENDOR_XILINX is not set