[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