[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