[PATCH 13/16] mmc: stm32_sdmmc2: make reset property optional
Patrice CHOTARD
patrice.chotard at foss.st.com
Fri May 20 09:10:18 CEST 2022
Hi Patrick
On 5/6/22 16: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.gautier at foss.st.com>
> Signed-off-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
> ---
>
> 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);
>
Reviewed-by: Patrice Chotard <patrice.chotard at foss.st.com>
Thanks
Patrice
More information about the U-Boot
mailing list