Hi Philipp Thank you for your reply. > > Toggle the SCU reset before hardware initialization. > > > > Signed-off-by: Jacky Chou <jacky_chou@xxxxxxxxxxxxxx> > > --- > > drivers/net/ethernet/faraday/ftgmac100.c | 21 +++++++++++++++++++++ > > 1 file changed, 21 insertions(+) > > > > diff --git a/drivers/net/ethernet/faraday/ftgmac100.c > b/drivers/net/ethernet/faraday/ftgmac100.c > > index 17ec35e75a65..cae23b712a6d 100644 > > --- a/drivers/net/ethernet/faraday/ftgmac100.c > > +++ b/drivers/net/ethernet/faraday/ftgmac100.c > > @@ -9,6 +9,7 @@ > > #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt > > > > #include <linux/clk.h> > > +#include <linux/reset.h> > > #include <linux/dma-mapping.h> > > #include <linux/etherdevice.h> > > #include <linux/ethtool.h> > > @@ -98,6 +99,7 @@ struct ftgmac100 { > > struct work_struct reset_task; > > struct mii_bus *mii_bus; > > struct clk *clk; > > + struct reset_control *rst; > > > > /* AST2500/AST2600 RMII ref clock gate */ > > struct clk *rclk; > > @@ -1969,10 +1971,29 @@ static int ftgmac100_probe(struct > platform_device *pdev) > > } > > > > if (priv->is_aspeed) { > > + struct reset_control *rst; > > + > > err = ftgmac100_setup_clk(priv); > > if (err) > > goto err_phy_connect; > > > > + rst = devm_reset_control_get_optional(priv->dev, NULL); > > Please use devm_reset_control_get_optional_exclusive() directly. Got it. Thanks, Jacky