Re: [PATCH] net: ftgmac100: Add reset control
On Thu, Jul 27, 2023 at 09:58:14AM +0800, Dylan Hung wrote: > Add optional reset control, especially for the Aspeed SOC. For the > hardware without a reset line, the reset assertion/deassertion will be > skipped. > > Signed-off-by: Dylan Hung > Reviewed-by: Ryan Chen > Reviewed-by: Ramon Fried Applied to u-boot/master, thanks! -- Tom signature.asc Description: PGP signature
Re: [PATCH] net: ftgmac100: Add reset control
On Thu, Jul 27, 2023 at 4:58 AM Dylan Hung wrote: > > Add optional reset control, especially for the Aspeed SOC. For the > hardware without a reset line, the reset assertion/deassertion will be > skipped. > > Signed-off-by: Dylan Hung > --- > drivers/net/ftgmac100.c | 12 > 1 file changed, 12 insertions(+) > > diff --git a/drivers/net/ftgmac100.c b/drivers/net/ftgmac100.c > index a50cde338a..886b97119d 100644 > --- a/drivers/net/ftgmac100.c > +++ b/drivers/net/ftgmac100.c > @@ -13,6 +13,7 @@ > > #include > #include > +#include > #include > #include > #include > @@ -90,6 +91,7 @@ struct ftgmac100_data { > u32 max_speed; > > struct clk_bulk clks; > + struct reset_ctl *reset_ctl; > > /* End of RX/TX ring buffer bits. Depend on model */ > u32 rxdes0_edorr_mask; > @@ -568,6 +570,8 @@ static int ftgmac100_of_to_plat(struct udevice *dev) > priv->txdes0_edotr_mask = BIT(15); > } > > + priv->reset_ctl = devm_reset_control_get_optional(dev, NULL); > + > return clk_get_bulk(dev, >clks); > } > > @@ -593,6 +597,12 @@ static int ftgmac100_probe(struct udevice *dev) > if (ret) > goto out; > > + if (priv->reset_ctl) { > + ret = reset_deassert(priv->reset_ctl); > + if (ret) > + goto out; > + } > + > /* > * If DM MDIO is enabled, the MDIO bus will be initialized later in > * dm_eth_phy_connect > @@ -628,6 +638,8 @@ static int ftgmac100_remove(struct udevice *dev) > free(priv->phydev); > mdio_unregister(priv->bus); > mdio_free(priv->bus); > + if (priv->reset_ctl) > + reset_assert(priv->reset_ctl); > clk_release_bulk(>clks); > > return 0; > -- > 2.25.1 > Reviewed-by: Ramon Fried
RE: [PATCH] net: ftgmac100: Add reset control
> -Original Message- > From: Dylan Hung > Sent: Thursday, July 27, 2023 9:58 AM > To: Ryan Chen ; ChiaWei Wang > ; BMC-SW ; > j...@jms.id.au; joe.hershber...@ni.com; rfried@gmail.com; > u-boot@lists.denx.de > Cc: kobedy...@gmail.com; Dylan Hung > Subject: [PATCH] net: ftgmac100: Add reset control > > Add optional reset control, especially for the Aspeed SOC. For the hardware > without a reset line, the reset assertion/deassertion will be skipped. > > Signed-off-by: Dylan Hung Reviewed-by: Ryan Chen > --- > drivers/net/ftgmac100.c | 12 > 1 file changed, 12 insertions(+) > > diff --git a/drivers/net/ftgmac100.c b/drivers/net/ftgmac100.c index > a50cde338a..886b97119d 100644 > --- a/drivers/net/ftgmac100.c > +++ b/drivers/net/ftgmac100.c > @@ -13,6 +13,7 @@ > > #include > #include > +#include > #include > #include > #include > @@ -90,6 +91,7 @@ struct ftgmac100_data { > u32 max_speed; > > struct clk_bulk clks; > + struct reset_ctl *reset_ctl; > > /* End of RX/TX ring buffer bits. Depend on model */ > u32 rxdes0_edorr_mask; > @@ -568,6 +570,8 @@ static int ftgmac100_of_to_plat(struct udevice *dev) > priv->txdes0_edotr_mask = BIT(15); > } > > + priv->reset_ctl = devm_reset_control_get_optional(dev, NULL); > + > return clk_get_bulk(dev, >clks); } > > @@ -593,6 +597,12 @@ static int ftgmac100_probe(struct udevice *dev) > if (ret) > goto out; > > + if (priv->reset_ctl) { > + ret = reset_deassert(priv->reset_ctl); > + if (ret) > + goto out; > + } > + > /* >* If DM MDIO is enabled, the MDIO bus will be initialized later in >* dm_eth_phy_connect > @@ -628,6 +638,8 @@ static int ftgmac100_remove(struct udevice *dev) > free(priv->phydev); > mdio_unregister(priv->bus); > mdio_free(priv->bus); > + if (priv->reset_ctl) > + reset_assert(priv->reset_ctl); > clk_release_bulk(>clks); > > return 0; > -- > 2.25.1
[PATCH] net: ftgmac100: Add reset control
Add optional reset control, especially for the Aspeed SOC. For the hardware without a reset line, the reset assertion/deassertion will be skipped. Signed-off-by: Dylan Hung --- drivers/net/ftgmac100.c | 12 1 file changed, 12 insertions(+) diff --git a/drivers/net/ftgmac100.c b/drivers/net/ftgmac100.c index a50cde338a..886b97119d 100644 --- a/drivers/net/ftgmac100.c +++ b/drivers/net/ftgmac100.c @@ -13,6 +13,7 @@ #include #include +#include #include #include #include @@ -90,6 +91,7 @@ struct ftgmac100_data { u32 max_speed; struct clk_bulk clks; + struct reset_ctl *reset_ctl; /* End of RX/TX ring buffer bits. Depend on model */ u32 rxdes0_edorr_mask; @@ -568,6 +570,8 @@ static int ftgmac100_of_to_plat(struct udevice *dev) priv->txdes0_edotr_mask = BIT(15); } + priv->reset_ctl = devm_reset_control_get_optional(dev, NULL); + return clk_get_bulk(dev, >clks); } @@ -593,6 +597,12 @@ static int ftgmac100_probe(struct udevice *dev) if (ret) goto out; + if (priv->reset_ctl) { + ret = reset_deassert(priv->reset_ctl); + if (ret) + goto out; + } + /* * If DM MDIO is enabled, the MDIO bus will be initialized later in * dm_eth_phy_connect @@ -628,6 +638,8 @@ static int ftgmac100_remove(struct udevice *dev) free(priv->phydev); mdio_unregister(priv->bus); mdio_free(priv->bus); + if (priv->reset_ctl) + reset_assert(priv->reset_ctl); clk_release_bulk(>clks); return 0; -- 2.25.1