summaryrefslogtreecommitdiff
path: root/drivers/net
AgeCommit message (Collapse)Author
2026-03-12net: airoha: fill in support for PCS/PHY in Airoha Ethernet driverChristian Marangi
Add required changes to call PCS function to configure the Serdes Port. The Ethernet driver is adapted following Upstream Kernel node structure. Function calling order is the same of Phylink upstream kernel. With the PCS support, also add support for attaching PHY. With "in-band-status" set in DT for the managed property, a rudimental support for SFP module is present. Signed-off-by: Christian Marangi <[email protected]>
2026-03-12net: airoha-pcs: an7581: sync with linux code a bitMikhail Kshevetskiy
based on linux kernel patches from https://github.com/Ansuel/openwrt/commits/openwrt-24.10-airoha-an7581-stable/ created by Christian Marangi <[email protected]> Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2026-03-12net: airoha: pcs: improve/fix building rulesMikhail Kshevetskiy
pcs-airoha-common.o should not build unconditionally, also make building rules looks better. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2026-03-12net: airoha: add support for Airoha PCS driverChristian Marangi
Add support for Airoha PCS driver present on AN7581 SoC. This is needed to configure the Serdes port for the different PHY mode. Signed-off-by: Christian Marangi <[email protected]>
2026-03-12net: airoha: init switch before GDM port initializationMikhail Kshevetskiy
Call airoha_switch_init() before creating GDM instances, so if allocation of GDM port fails, early created GDM instances will work normally. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2026-03-12net: airoha: do not call airoha_fe_init() from GDM port independent codeMikhail Kshevetskiy
We should not call airoha_fe_init() from GDM port independent code, because it do a GDM specific things. Makes airoha_fe_maccr_init() and airoha_fe_init() port dependent and call them from airoha_eth_port_probe() Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2026-03-12net: airoha: declare airoha_eth_port as U_BOOT_DRIVER()Mikhail Kshevetskiy
Declare airoha_eth_port as U_BOOT_DRIVER(), fix airoha_alloc_gdm_port() to lookup a driver instead of direct airoha_eth_port usage. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2026-03-12net: airoha: avoid out of boundary writing/access to gdm_port_str[] arrayMikhail Kshevetskiy
In the case of an7581 possible GDM port id are: 1, 2 and 4. Initialization of port GDM4 will lead to out of boundary writing to gdm_port_str[] array. Let's increase the array size by 1 to avoid it. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2026-03-12net: airoha: add initial support for multiple GDM portChristian Marangi
Rework the driver to support multiple GDM port. The driver is split to main driver as a MISC driver with forced probe (by using the DM_FLAG_PROBE_AFTER_BIND) and each GDM port register a ETH driver. This permit a 1:1 implementation with the linux kernel driver and permit to use the same exact DT nodes. Signed-off-by: Christian Marangi <[email protected]>
2026-03-12net: mdio-mt7531-mmio: use common header priv structChristian Marangi
Instead of having duplicate priv struct for mdio-mt7531-mmio driver in both driver and header, use the one exposed by the header directly. This make sure we have consistent priv struct if the driver will be updated in the future. Signed-off-by: Christian Marangi <[email protected]>
2026-03-10Merge tag 'u-boot-rockchip-20260309' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-rockchip into next CI: https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/pipelines/29452 - New SoC support: RK3506, RK3582; - New Board support: RK3528 FriendlyElec NanoPi Zero2; - Other fixes
2026-03-10net: dwc_eth_qos_rockchip: Add support for RK3506Jonas Karlman
Rockchip RK3506 has two Ethernet controllers based on Synopsys DWC Ethernet QoS IP. Add initial support for the RK3506 GMAC variant. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2026-03-09Merge tag 'v2026.04-rc4' into nextTom Rini
Prepare v2026.04-rc4
2026-03-04treewide: Remove Timesys from ADI ADSP maintenancePhilip Molloy
After years of developing the ADI ADSP platform, Timesys was purchased by another company and is no longer contracted to maintain the platform. Signed-off-by: Philip Molloy <[email protected]> Reviewed-by: Greg Malysa <[email protected]>
2026-02-23Merge patch series "net: mdio-mt7531-mmio: consolidate and improve probe"Tom Rini
Christian Marangi <[email protected]> says: This small series consolidate header usage of mdio-mt7531-mmio driver and improve usage in preparation for support of OF PHY autoprobe. This driver is still not used (as it will be used by AN7581/AN7583) in the OF mode (it's used by MT7988 for the MDIO functions) For OF PHY to be correctly autoprobed, the MDIO driver needs to attached to the MDIO node (the parent of the PHY nodes) With such change the MDIO driver can be binded with the MDIO node instead of the switch node as previously required. Link: https://lore.kernel.org/r/[email protected]
2026-02-23net: mdio-mt7531-mmio: improve parsing of switch register on probeChristian Marangi
The MDIO node is ALWAYS a parent of the MT7531 switch node and the MDIO registers are in the MT7531 register space (in the context of MT7988 it's all memory-mapped) With these assumption, we can simplify and permit better usage of PHY OF automatic probing by binding the mt7531-mdio-mmio driver with the MDIO node instead of the switch node. For OF PHY to be correctly autoprobed, the MDIO driver needs to attached to the MDIO node (the parent of the PHY nodes). The driver will reach the parent node (the switch node) and will parse the register address from there. Signed-off-by: Christian Marangi <[email protected]>
2026-02-23net: mdio-mt7531-mmio: use common header priv structChristian Marangi
Instead of having duplicate priv struct for mdio-mt7531-mmio driver in both driver and header, use the one exposed by the header directly. This make sure we have consistent priv struct if the driver will be updated in the future. Signed-off-by: Christian Marangi <[email protected]>
2026-02-23Merge tag 'v2026.04-rc3' into nextTom Rini
Prepare v2026.04-rc3
2026-02-17Merge patch series "treewide: Clean up usage of DECLARE_GLOBAL_DATA_PTR"Tom Rini
Peng Fan (OSS) <[email protected]> says: This patch set primarily removes unused DECLARE_GLOBAL_DATA_PTR instances. Many files declare DECLARE_GLOBAL_DATA_PTR and include asm/global_data.h even though gd is never used. In these cases, asm/global_data.h is effectively treated as a proxy header, which is not a good practice. Following the Include What You Use principle, files should include only the headers they actually depend on, rather than relying on global_data.h indirectly. This approach is also adopted in Linux kernel [1]. The first few patches are prepartion to avoid building break after remove the including of global_data.h. A script is for filtering the files: list=`find . -name "*.[ch]"` for source in ${list} do result=`sed -n '/DECLARE_GLOBAL_DATA_PTR/p' ${source}` if [ "${result}" == "DECLARE_GLOBAL_DATA_PTR;" ]; then echo "Found in ${source}" result=`sed -n '/\<gd\>/p' ${source}` result2=`sed -n '/\<gd_/p' ${source}` result3=`sed -n '/\<gd->/p' ${source}` if [ "${result}" == "" ] && [ "${result2}" == "" ] && [ "${result3}" == "" ];then echo "Cleanup ${source}" sed -i '/DECLARE_GLOBAL_DATA_PTR/{N;/\n[[:space:]]*$/d;s/.*\n//;}' ${source} sed -i '/DECLARE_GLOBAL_DATA_PTR/d' ${source} sed -i '/global_data.h/d' ${source} git add ${source} fi fi done [1] https://lpc.events/event/17/contributions/1620/attachments/1228/2520/Linux%20Kernel%20Header%20Optimization.pdf CI: https://github.com/u-boot/u-boot/pull/865 Link: https://lore.kernel.org/r/[email protected]
2026-02-17treewide: Clean up DECLARE_GLOBAL_DATA_PTR usagePeng Fan
Remove DECLARE_GLOBAL_DATA_PTR from files where gd is not used, and drop the unnecessary inclusion of asm/global_data.h. Headers should be included directly by the files that need them, rather than indirectly via global_data.h. Reviewed-by: Patrice Chotard <[email protected]> #STMicroelectronics boards and STM32MP1 ram test driver Tested-by: Anshul Dalal <[email protected]> #TI boards Acked-by: Yao Zi <[email protected]> #TH1520 Signed-off-by: Peng Fan <[email protected]>
2026-02-14Replace TARGET namespace and cleanup properlyTien Fong Chee
TARGET namespace is for machines / boards / what-have-you that building U-Boot for. Simply replace from TARGET to ARCH make things more clear and proper for ALL SoCFPGA. Signed-off-by: Brian Sune <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]> # Conflicts: # drivers/ddr/altera/Makefile
2026-02-11net: phy: mscc: Enable RMII clock output for VSC8541 PHYPranav Tilak
Set RMII reference clock output to enabled (1) by default for VSC8541 PHY in RMII mode. The RMII specification requires a 50MHz reference clock, and many board designs expect the PHY to provide this clock to the MAC controller. Previously, the driver defaulted rmii_clk_out to 0 (disabled) for all interface modes, which caused the PHY to not output the required 50MHz clock. This resulted in MAC-PHY communication failures and prevented network operations like DHCP from working on RMII-configured boards. This change alligns with the hardware power-up default behavior and aligns with both the generic PHY driver and Linux MSCC PHY driver implementations. Signed-off-by: Pranav Tilak <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2026-02-09Merge tag 'net-20260209' of https://source.denx.de/u-boot/custodians/u-boot-netTom Rini
Pull request net-20260209. net: - airoha: mdio support for the switch - phy: mscc: allow RGMII with internal delay for the VSC8541 - dwc_eth_qos: Update tail pointer handling net-legacy: - Stop conflating return value with file size in net_loop() net-lwip: - wget: rework the '#' printing - tftp: add support of tsize option to client
2026-02-06net: fec_mxc: Add support for i.MX91Primoz Fiser
The i.MX91 SoC reuses the ENET FEC from i.MX93. Add all required driver checks to make it work also on the i.MX91 based platforms. Signed-off-by: Primoz Fiser <[email protected]>
2026-02-06net: airoha_eth: use proper switch node for en7523 caseMikhail Kshevetskiy
Commit d2145a89bcf6 ("net: airoha: bind MDIO controller on Ethernet load") uses "airoha,en7581-switch" dts node for finding MDIO childs. This is wrong for EN7523 SoC. The correct node name should be used instead. Fixes: d2145a89bcf6 ("net: airoha: bind MDIO controller on Ethernet load") Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2026-02-06net: phy: mscc: allow RGMII with internal delay for the VSC8541Charles Perry
Add the missing RGMII modes with internal delay for the VSC8541. Fixes: a5fd13ad1913 ("net: phy: MSCC Add Support for VSC8530-VSC8531-VSC8540-VSC8541") Signed-off-by: Charles Perry <[email protected]>
2026-02-06net: airoha_eth: fix mdio binding to switch deviceMikhail Kshevetskiy
Commit d2145a89bcf6 ("net: airoha: bind MDIO controller on Ethernet load") refers to non-present CONFIG_MDIO_MT7531 and non-present "mt7531-mdio" driver. It should use CONFIG_MDIO_MT7531_MMIO and "mt7531-mdio-mmio" instead. Fixes: d2145a89bcf6 ("net: airoha: bind MDIO controller on Ethernet load") Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2026-02-06net: dwc_eth_qos: Define more of the unused MAC regsJonas Karlman
Multicast and Broadcast Queue Enable and Promiscuous Mode Enable bits are currently written to "unused" registers using magic values. Define more of the "unused" MAC regs based on information in the DesignWare Cores Ethernet Quality-of-Service databook. Signed-off-by: Jonas Karlman <[email protected]>
2026-02-06net: dwc_eth_qos: Start DMA and MAC after tail pointers are initializedJonas Karlman
The DesignWare Cores Ethernet Quality-of-Service databook state that receive and transmit descriptor list address and also transmit and receive tail pointer registers should be initialized before the receive and transmit DMAs are started. It also state to enable the MAC receiver only after the DMA is active. Otherwise, received frames can fill the Rx FIFO and overflow. Move the activation of receive and transmit DMA and MAC receiver until after tail pointer registers have been initialized. Signed-off-by: Jonas Karlman <[email protected]>
2026-02-06net: dwc_eth_qos: Initialize the transmit tail pointer in eqos_start()Jonas Karlman
The DesignWare Cores Ethernet Quality-of-Service databook state that descriptors up to one location less than the one indicated by the descriptor tail pointer are owned by the DMA. The DMA continues to process the descriptors until the following condition occurs: Current Descriptor Pointer == Descriptor Tail Pointer The DMA goes into suspend mode when this condition occurs, and updating the tail pointer resume the DMA processing. Configure the transmit tail pointer to the first (current) descriptor pointer so that the tail pointer is a valid address instead of being initialized to NULL when transmit DMA is started. Also update the receive tail pointer comment to state that by pointing to the last descriptor we are actually implying that all receive descriptors are owned by and can be processed by the DMA. Signed-off-by: Jonas Karlman <[email protected]>
2026-02-06net: dwc_eth_qos: Use lower_32_bits() for tail pointersJonas Karlman
The DesignWare Cores Ethernet Quality-of-Service databook state that the descriptor address from the start to the end of the ring must not cross the 4GB boundary. Use lower_32_bits() to write the lower 32 bits of descriptor addresses, including the 32-bit tail pointers, consistently. No functional change is intended. Signed-off-by: Jonas Karlman <[email protected]>
2026-02-06net: mdio-mt7531-mmio: fix switch regs initializationMikhail Kshevetskiy
mdio is a child node of the switch, so to get switch base address we need to lookup for a parent node Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2026-02-04net: phy: aquantia: add support for Marvell CUX3410 10Gb PHYWeijie Gao
The CUX3410 is similar to AQR113C. The main difference is CUX3410 does not support MACSEC. Signed-off-by: Bo-Cun Chen <[email protected]>
2026-01-21arm: Remove remainder of ARCH_ORION5XTom Rini
With commit 5663b137e682 ("arm: Remove edminiv2 board") the last ARCH_ORION5X platform was removed. Remove the rest of the architecture code which is now unused. Reviewed-by: Tony Dinh <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2026-01-15net: phy: micrel_ksz90x1: support forced GIGE master for KSZ9031Markus Niebel
The micrel KSZ9031 phy has a optional clock pin (CLK125_NDO) which can be used as reference clock for the MAC unit. The clock signal must meet the RGMII requirements to ensure the correct data transmission between the MAC and the PHY. The KSZ9031 phy does not fulfill the duty cycle requirement if the phy is configured as slave. For a complete describtion look at the errata sheets: DS80000691D or DS80000692D. The errata sheet recommends to force the phy into master mode whenever there is a 1000Base-T link-up as work around. Only set the "micrel,force-master" property if you use the phy reference clock provided by CLK125_NDO pin as MAC reference clock in your application. Attention: this workaround is only usable if the link partner can be configured to slave mode for 1000Base-T. This follows linux implementation in commit e1b505a60366 ("net: phy: micrel: add 125MHz reference clock workaround") Signed-off-by: Markus Niebel <[email protected]> Signed-off-by: Max Merchel <[email protected]>
2026-01-15net: phy: micrel_ksz90x1: disable asymmetric pause for KSZ9031 and KSZ9021Markus Niebel
Disable the support due to chip errata and call genphy_config_aneg instead of genphy_config. For a complete describtion look at the KSZ9031 errata sheets: DS80000691D or DS80000692D. Micrel KSZ9021 has no errata, but has the same issue with Asymmetric Pause. This patch apply the same workaround as the one for KSZ9031. This follows linux implementation in commits 3aed3e2a143c ("net: phy: micrel: add Asym Pause workaround") 407d8098cb1a ("net: phy: micrel: add Asym Pause workaround for KSZ9021") Signed-off-by: Markus Niebel <[email protected]> Signed-off-by: Max Merchel <[email protected]>
2026-01-15net: phy: marvell10g: Fix PHY mode bitmap handlingMarek Vasut
Replace PHY interface mode bitmap handling with comparison test to match U-Boot PHY subsystem behavior. U-Boot currently implements only single PHY interface mode for each PHY. Linux currently uses bitmap of PHY interface modes for each PHY. The reason why in Linux uses bitmap of supported interface modes is so that Linux can select the best serdes mode switching behavior for the PHY. For example if the host only supports 10gbase-r serdes mode, then the PHY must always talk to the host in 10gbase-r mode, even if the RJ-45 copper speed was autonegotiated to lower speed (i.e. 1Gbps). If the host supports both 10gbase-r and sgmii serdes modes, we want the PHY to switch to sgmii if the RJ-45 speed is 1000/100/10, and to switch to 10gbase-r if the RJ-45 speed is 10000. U-Boot does not implement this functionality yet, therefore remove modes which cannot be currently supported and switch mv_test_bit() to plain mode comparison. Fixes: b6fcab0728cb ("net: phy: marvell10g: Adapt Marvell 10G PHY driver from Linux") Signed-off-by: Marek Vasut <[email protected]>
2026-01-15net: add Microsemi/Microchip MDIO driverRobert Marko
Add Microsemi/Microchip MDIO driver for interfaces found in their network switches. Driver is based on the Linux version. Signed-off-by: Robert Marko <[email protected]> Acked-by: Jerome Forissier <[email protected]>
2026-01-09Merge patch series "Enable / require DEVRES for devm_.alloc usage outside xPL"Tom Rini
Tom Rini <[email protected]> says: As seen by a number of patches fixing memory leaks, U-Boot has a problem with developer expectations around devm_kmalloc and friends. Namely, whereas in Linux these memory allocations will be freed automatically in most cases, in U-Boot this is only true if DEVRES is enabled. Now, intentionally, in xPL phases, we do not (and do not offer as an option) enabling DEVRES. However in full U-Boot this is left either to the user, or some drivers have select'd DEVRES on their own. This inconsistency is a problem. This series goes and deals with two small issues that were shown by having all drivers that use devm_.alloc to allocate memory also select DEVRES and then we make DEVRES no longer be a prompted option and instead select'd as needed. We do not make this unconditional as it would result in growing the resulting binary on the many platforms which have no users of the devm_.alloc family of functions. Link: https://lore.kernel.org/r/[email protected]
2026-01-09dm: core: Default to using DEVRES outside of xPLTom Rini
The devm alloc functions that we have may follow the Linux kernel model where allocations are (almost always) automatically free()'d. However, quite often we don't enable, in full U-Boot, the tracking and free()'ing functionality. This in turn leads to memory leaks because the driver author expects that since the functions have the same name as in the Linux Kernel they have the same behavior. In turn we then get functionally correct commits such as commit 00e1fed93c8c ("firmware: ti_sci: Fix memory leaks in devm_ti_sci_get_of_resource") that manually add these calls. Rather than manually tracking allocations and implementing free()s, rework things so that we follow expectations by enabling the DEVRES functionality (outside of xPL phases). This turns DEVRES from a prompted symbol to a symbol that must be select'd, and we now remove our non-managed alloc/free functions from outside of xPL builds. Reviewed-by: Michael Trimarchi <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2026-01-05Merge branch 'next'Tom Rini
2025-12-23net: ravb: Configure CXR31 and CXR35 on rzg2lMathieu Othacehe
As in Linux with d78c0ced60 ("net: ravb: Make write access to CXR35 first before accessing other EMAC register"), configure CXR31 and CXR35 correctly on rzg2. MII mode does not work correctly unless those registers are properly configured. Signed-off-by: Mathieu Othacehe <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2025-12-08Merge tag 'v2026.01-rc4' into nextTom Rini
Prepare v2026.01-rc4
2025-12-01Merge tag 'u-boot-socfpga-next-20251201' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-socfpga This pull request delivers a broad set of improvements across the SoCFPGA family, including Agilex5, Cyclone V, SoC64, and common code. Key updates include refined boot flows, new driver enablement, handoff tooling enhancements, and several stability fixes. Highlights: * Agilex5: - Enable FAT-based environment storage - MMC driver restores legacy clkmgr-based clock lookup - Cleanup of MMC raw mode enablement logic * Cyclone V: - SPL FAT boot support and updated bootcmd sequence - Disable SPL SPI to prevent contention with FAT-based boot - New board handoff script and BSP generator tooling - Optimized Makefile support for SoCFPGA handoff workflows* New drivers: - Cadence xSPI driver with full protocol and command support - SPL enablement for DW APB GPIO controller * Networking: - xgmac MDIO now supports Clause 45 read/write operations * NAND / SoC64: - Enable ONFI detection in Denali NAND controller for SoC64 devices * DTS and board updates: - Sync common SoCFPGA U-Boot DTS with kernel sources - Fixes for FPGA2SDRAM configuration and SoCFPGA boot stall behavior - Vining_FPGA migrated to the modern LED framework - Device tree relocation no longer forced off for Vining FPGA * Tooling: - Introduces a new Python-based Cyclone V BSP generator covering EMIF, IOCSR, HPS, XML parsing, rendering, and documentation to simplify board enablement and handoff regeneration workflows Overall, this series improves boot robustness, enhances xSPI and MDIO capabilities, modernizes board support, and introduces new tooling to streamline SoCFPGA handoff generation. Pipelines test passing https://source.denx.de/u-boot/custodians/u-boot-socfpga/-/pipelines/28569
2025-12-01net: phy: aquantia: use generic firmware loaderBeiyan Yun
Aquantia PHYs are being used w/o SPI flash in some routers recently. Current firmware loader only attempts to load from FS on top of MMC, limiting the use on many devices. Removed the old firmware loader, migrate to generic script based firmware loader to allow a wider range and runtime override of firmware source. (e.g., MMC, USB, UBIFS). Tested on Buffalo WXR18000BE10P with UBIFS. Signed-off-by: Beiyan Yun <[email protected]>
2025-12-01net: phy: aquantia: refactor firmware upload helpersBeiyan Yun
Split `aquantia_upload_firmware` into `aquantia_upload_firmware` and `aquantia_do_upload_firmware` to prepare for fwloader change. Signed-off-by: Beiyan Yun <[email protected]>
2025-12-01net: phy: Disallow PHY_MSCC and PHY_VITESSE under COMPILE_TESTTom Rini
These two PHY drivers have some overlap of supported PHYs. A longer term effort is needed to both remove duplication and enhance support by dealing with some issues that downstream vendor drivers address. For now, make both of these depend on !COMPILE_TEST so that we can enable "allyesconfig". Signed-off-by: Tom Rini <[email protected]>
2025-12-01net: airoha: bind MDIO controller on Ethernet loadChristian Marangi
Bind MDIO controller on Ethernet Controller load. The Airoha AN7581 SoC have an integrated Switch based on MT7531 (or more saying MT7988). Attach it to the mdio node in the switch node to support scanning for MDIO devices on the BUS with DM API. Signed-off-by: Christian Marangi <[email protected]>
2025-12-01net: phy: Add the Airoha EN8811H PHY driverLucien.Jheng
Add the driver for the Airoha EN8811H 2.5 Gigabit PHY. The PHY supports 100/1000/2500 Mbps with auto negotiation only. The driver uses two firmware files, for which updated versions are added to linux-firmware already. Locating the AIROHA FW within the filesystem at the designated partition and path will trigger its automatic loading and writing to the PHY via MDIO. If need board specific loading override, please override the en8811h_read_fw function on board or architecture level. Based on the Linux upstream AIROHA EN8811H driver code(air_en8811h.c), I have modified the relevant process to align with the U-Boot boot sequence. and have validated this on Banana Pi BPI-R3 Mini. Signed-off-by: Lucien.Jheng <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2025-12-01net: phy: broadcom: fix RGMII delays for BCM54210EMichael Walle
bcm54210e_config() configures the RGMII delays and then calls bcm5461_config(). But the latter will do a PHY soft reset and thus resets the delay settings again. Call bcm5461_config() first to fix it. Fixes: cba79a1b2e11 ("net: phy: broadcom: add support for BCM54210E") Signed-off-by: Michael Walle <[email protected]> Reviewed-by: Rafał Miłecki <[email protected]>