Re: [PATCH] net: ftgmac100: Add reset control

2023-11-06 Thread Tom Rini
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

2023-10-06 Thread Ramon Fried
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

2023-10-02 Thread Ryan Chen


> -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

2023-07-27 Thread Dylan Hung
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