mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-01 08:59:33 +00:00
net: dwc_eth_qos: use generic ethernet phy for stm32 variant
Use the generic ethernet phy which already manages the correct binding for gpio reset, including the assert an deassert delays. Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
This commit is contained in:
parent
ebf9a91f86
commit
9dbdc234a7
2 changed files with 1 additions and 50 deletions
|
@ -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
|
||||
|
|
|
@ -696,29 +696,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;
|
||||
}
|
||||
|
||||
|
@ -739,18 +716,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;
|
||||
}
|
||||
|
||||
|
@ -1772,7 +1737,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);
|
||||
|
||||
|
@ -1812,20 +1776,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;
|
||||
|
||||
|
|
Loading…
Reference in a new issue