On 5/6/22 23:06, Patrick Delaunay wrote: > Although not recommended, the reset property could be made optional. > This way the driver will probe even if no reset property is provided > in an sdmmc node in DT. This reset is already optional in Linux. > > Signed-off-by: Yann Gautier <yann.gaut...@foss.st.com> > Signed-off-by: Patrick Delaunay <patrick.delau...@foss.st.com>
Reviewed-by: Jaehoon Chung <jh80.ch...@samsung.com> Best Regards, Jaehoon Chung > --- > > drivers/mmc/stm32_sdmmc2.c | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/drivers/mmc/stm32_sdmmc2.c b/drivers/mmc/stm32_sdmmc2.c > index 44bfc911af..81b07609a9 100644 > --- a/drivers/mmc/stm32_sdmmc2.c > +++ b/drivers/mmc/stm32_sdmmc2.c > @@ -514,10 +514,12 @@ retry_cmd: > */ > static void stm32_sdmmc2_reset(struct stm32_sdmmc2_priv *priv) > { > - /* Reset */ > - reset_assert(&priv->reset_ctl); > - udelay(2); > - reset_deassert(&priv->reset_ctl); > + if (reset_valid(&priv->reset_ctl)) { > + /* Reset */ > + reset_assert(&priv->reset_ctl); > + udelay(2); > + reset_deassert(&priv->reset_ctl); > + } > > /* init the needed SDMMC register after reset */ > writel(priv->pwr_reg_msk, priv->base + SDMMC_POWER); > @@ -735,7 +737,7 @@ static int stm32_sdmmc2_probe(struct udevice *dev) > > ret = reset_get_by_index(dev, 0, &priv->reset_ctl); > if (ret) > - goto clk_disable; > + dev_dbg(dev, "No reset provided\n"); > > gpio_request_by_name(dev, "cd-gpios", 0, &priv->cd_gpio, > GPIOD_IS_IN); > @@ -755,8 +757,6 @@ static int stm32_sdmmc2_probe(struct udevice *dev) > stm32_sdmmc2_reset(priv); > return 0; > > -clk_disable: > - clk_disable(&priv->clk); > clk_free: > clk_free(&priv->clk); >