From 6df0e3f731ee494f47cf423ddf88d1256a6814c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fin=20Maa=C3=9F?= Date: Fri, 1 Aug 2025 10:39:26 +0200 Subject: [PATCH] ethernet: stm32: remove phy init and config from HAL_ETH_Init MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit the phy is already configured by the phy driver in zephyr and we don't want to overwrite it in the HAL_ETH_Init function in the stm32 HAL. Signed-off-by: Fin Maaß --- drivers/ethernet/eth_stm32_hal.c | 26 ++------------------------ west.yml | 2 +- 2 files changed, 3 insertions(+), 25 deletions(-) diff --git a/drivers/ethernet/eth_stm32_hal.c b/drivers/ethernet/eth_stm32_hal.c index ee8b8ef506f98..d93b5c182c0e9 100644 --- a/drivers/ethernet/eth_stm32_hal.c +++ b/drivers/ethernet/eth_stm32_hal.c @@ -56,9 +56,6 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME); static const struct device *eth_stm32_phy_dev = DEVICE_DT_GET(DT_INST_PHANDLE(0, phy_handle)); -#define ETH_STM32_AUTO_NEGOTIATION_ENABLE \ - UTIL_NOT(DT_NODE_HAS_PROP(DT_INST_PHANDLE(0, phy_handle), fixed_link)) - #if DT_HAS_COMPAT_STATUS_OKAY(st_stm32h7_ethernet) #define IS_ETH_DMATXDESC_OWN(dma_tx_desc) (dma_tx_desc->DESC3 & \ ETH_DMATXNDESCRF_OWN) @@ -893,26 +890,10 @@ static int eth_initialize(const struct device *dev) #if defined(CONFIG_ETH_STM32_HAL_API_V1) HAL_StatusTypeDef hal_ret = HAL_OK; - if (!ETH_STM32_AUTO_NEGOTIATION_ENABLE) { - struct phy_link_state state; - - phy_get_link_state(eth_stm32_phy_dev, &state); - - heth->Init.DuplexMode = PHY_LINK_IS_FULL_DUPLEX(state.speed) ? ETH_MODE_FULLDUPLEX - : ETH_MODE_HALFDUPLEX; - heth->Init.Speed = - PHY_LINK_IS_SPEED_100M(state.speed) ? ETH_SPEED_100M : ETH_SPEED_10M; - } - hal_ret = HAL_ETH_Init(heth); - if (hal_ret == HAL_TIMEOUT) { - /* HAL Init time out. This could be linked to */ - /* a recoverable error. Log the issue and continue */ - /* driver initialisation */ - LOG_WRN("HAL_ETH_Init timed out (cable not connected?)"); - } else if (hal_ret != HAL_OK) { + if (hal_ret != HAL_OK) { LOG_ERR("HAL_ETH_Init failed: %d", hal_ret); - return -EINVAL; + return -EIO; } /* Initialize semaphores */ @@ -1362,9 +1343,6 @@ static struct eth_stm32_hal_dev_data eth0_data = { .Instance = (ETH_TypeDef *)DT_REG_ADDR(DT_INST_PARENT(0)), .Init = { #if defined(CONFIG_ETH_STM32_HAL_API_V1) - .AutoNegotiation = ETH_STM32_AUTO_NEGOTIATION_ENABLE ? - ETH_AUTONEGOTIATION_ENABLE : ETH_AUTONEGOTIATION_DISABLE, - .PhyAddress = DT_REG_ADDR(DT_INST_PHANDLE(0, phy_handle)), .RxMode = ETH_RXINTERRUPT_MODE, .ChecksumMode = IS_ENABLED(CONFIG_ETH_STM32_HW_CHECKSUM) ? ETH_CHECKSUM_BY_HARDWARE : ETH_CHECKSUM_BY_SOFTWARE, diff --git a/west.yml b/west.yml index 111b7e38e0680..95680ed45a3cb 100644 --- a/west.yml +++ b/west.yml @@ -245,7 +245,7 @@ manifest: groups: - hal - name: hal_stm32 - revision: 1e753266ddfb4b07a8a0b1ec566e9637ea45d5ef + revision: pull/300/head path: modules/hal/stm32 groups: - hal