[PATCH v2 5/6] net: dwc_eth_qos: use generic ethernet phy for stm32 variant
Patrick Delaunay
patrick.delaunay at foss.st.com
Mon Apr 26 17:46:51 CEST 2021
Use the generic ethernet phy which already manages the correct binding
for gpio reset, including the assert an deassert delays.
Signed-off-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
---
Changes in v2:
- use generic ethernet phy for stm32 variant, this patch is a REWORK of
previous serie: the device parsing is done in eth-phy driver and the gpio
support is removed in stm32 variant: eqos_start/stop_resets_stm32 and
eqos_probe_resources_stm32.
drivers/net/Kconfig | 1 +
drivers/net/dwc_eth_qos.c | 50 ---------------------------------------
2 files changed, 1 insertion(+), 50 deletions(-)
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 382639044b..adf43fb42a 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -206,6 +206,7 @@ config DWC_ETH_QOS_IMX
config DWC_ETH_QOS_STM32
bool "Synopsys DWC Ethernet QOS device support for STM32"
depends on DWC_ETH_QOS
+ select DM_ETH_PHY
default y if ARCH_STM32MP
help
The Synopsys Designware Ethernet QOS IP block with the specific
diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c
index e625aea8d1..3fb8bfaf3a 100644
--- a/drivers/net/dwc_eth_qos.c
+++ b/drivers/net/dwc_eth_qos.c
@@ -700,29 +700,6 @@ static int eqos_start_resets_tegra186(struct udevice *dev)
static int eqos_start_resets_stm32(struct udevice *dev)
{
- struct eqos_priv *eqos = dev_get_priv(dev);
- int ret;
-
- debug("%s(dev=%p):\n", __func__, dev);
- if (dm_gpio_is_valid(&eqos->phy_reset_gpio)) {
- ret = dm_gpio_set_value(&eqos->phy_reset_gpio, 1);
- if (ret < 0) {
- pr_err("dm_gpio_set_value(phy_reset, assert) failed: %d",
- ret);
- return ret;
- }
-
- udelay(2);
-
- ret = dm_gpio_set_value(&eqos->phy_reset_gpio, 0);
- if (ret < 0) {
- pr_err("dm_gpio_set_value(phy_reset, deassert) failed: %d",
- ret);
- return ret;
- }
- }
- debug("%s: OK\n", __func__);
-
return 0;
}
@@ -743,18 +720,6 @@ static int eqos_stop_resets_tegra186(struct udevice *dev)
static int eqos_stop_resets_stm32(struct udevice *dev)
{
- struct eqos_priv *eqos = dev_get_priv(dev);
- int ret;
-
- if (dm_gpio_is_valid(&eqos->phy_reset_gpio)) {
- ret = dm_gpio_set_value(&eqos->phy_reset_gpio, 1);
- if (ret < 0) {
- pr_err("dm_gpio_set_value(phy_reset, assert) failed: %d",
- ret);
- return ret;
- }
- }
-
return 0;
}
@@ -1785,7 +1750,6 @@ static int eqos_probe_resources_stm32(struct udevice *dev)
struct eqos_priv *eqos = dev_get_priv(dev);
int ret;
phy_interface_t interface;
- struct ofnode_phandle_args phandle_args;
debug("%s(dev=%p):\n", __func__, dev);
@@ -1825,20 +1789,6 @@ static int eqos_probe_resources_stm32(struct udevice *dev)
if (ret)
pr_warn("No phy clock provided %d", ret);
- ret = dev_read_phandle_with_args(dev, "phy-handle", NULL, 0, 0,
- &phandle_args);
- if (!ret) {
- /* search "reset-gpios" in phy node */
- ret = gpio_request_by_name_nodev(phandle_args.node,
- "reset-gpios", 0,
- &eqos->phy_reset_gpio,
- GPIOD_IS_OUT |
- GPIOD_IS_OUT_ACTIVE);
- if (ret)
- pr_warn("gpio_request_by_name(phy reset) not provided %d",
- ret);
- }
-
debug("%s: OK\n", __func__);
return 0;
--
2.17.1
More information about the U-Boot
mailing list