[PATCH v2] mmc: zynq_sdhci: Reset the host controller

Michal Simek michal.simek at amd.com
Wed Jul 2 09:30:26 CEST 2025



On 6/26/25 08:24, Venkatesh Yadav Abbarapu wrote:
> Reset the host controller at the early stage of probe so that the
> configuration will be done properly for reboot cases.
> 
> Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu at amd.com>
> ---
> Changes in v2:
> - Reset is optional, so don't return if reset property is not found from
> the device tree.
> ---
>   drivers/mmc/zynq_sdhci.c | 22 ++++++++++++++++++++++
>   1 file changed, 22 insertions(+)
> 
> diff --git a/drivers/mmc/zynq_sdhci.c b/drivers/mmc/zynq_sdhci.c
> index 0e2bdab4e7e..4d1f92931a3 100644
> --- a/drivers/mmc/zynq_sdhci.c
> +++ b/drivers/mmc/zynq_sdhci.c
> @@ -1127,6 +1127,28 @@ static int arasan_sdhci_probe(struct udevice *dev)
>   	if (arasan_sdhci_is_compatible(dev, SDHCI_COMPATIBLE_VERSAL_NET_EMMC))
>   		priv->internal_phy_reg = true;
>   
> +	ret = reset_get_bulk(dev, &priv->resets);
> +	if (ret == -ENOTSUPP || ret == -ENOENT) {
> +		dev_warn(dev, "Reset not found\n");
> +	} else if (ret) {
> +		dev_err(dev, "Reset failed\n");
> +		return ret;
> +	}
> +
> +	if (!ret) {
> +		ret = reset_assert_bulk(&priv->resets);
> +		if (ret) {
> +			dev_err(dev, "Reset assert failed\n");
> +			return ret;
> +		}
> +
> +		ret = reset_deassert_bulk(&priv->resets);
> +		if (ret) {
> +			dev_err(dev, "Reset release failed\n");
> +			return ret;
> +		}
> +	}
> +
>   	ret = clk_get_by_index(dev, 0, &clk);
>   	if (ret < 0) {
>   		dev_err(dev, "failed to get clock\n");

Applied.
M


More information about the U-Boot mailing list