[PATCH] mmc: zynq_sdhci: Dll reset only for ZynqMP platform

Jaehoon Chung jh80.chung at samsung.com
Tue Jul 11 07:00:08 CEST 2023


Hi,

> -----Original Message-----
> From: Michal Simek <michal.simek at amd.com>
> Sent: Monday, July 10, 2023 9:12 PM
> To: u-boot at lists.denx.de; git at xilinx.com
> Cc: Ashok Reddy Soma <ashok.reddy.soma at amd.com>; Jaehoon Chung <jh80.chung at samsung.com>; Peng Fan
> <peng.fan at nxp.com>
> Subject: [PATCH] mmc: zynq_sdhci: Dll reset only for ZynqMP platform
> 
> From: Ashok Reddy Soma <ashok.reddy.soma at amd.com>
> 
> Dll reset is needed only for ZynqMP platforms, add condition in tuning
> to call arasan_zynqmp_dll_reset() just for ZynqMP platforms.
> 
> On other platforms like Versal NET, If this condition is not added, we
> see PLM error messages when dll reset smc is called.
> 
> Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma at amd.com>
> Signed-off-by: Michal Simek <michal.simek at amd.com>
> ---
> 
>  drivers/mmc/zynq_sdhci.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/mmc/zynq_sdhci.c b/drivers/mmc/zynq_sdhci.c
> index e779251ce34f..935540d17194 100644
> --- a/drivers/mmc/zynq_sdhci.c
> +++ b/drivers/mmc/zynq_sdhci.c
> @@ -422,7 +422,8 @@ static int arasan_sdhci_execute_tuning(struct mmc *mmc, u8 opcode)
> 
>  	mdelay(1);
> 
> -	arasan_zynqmp_dll_reset(host, priv->node_id);
> +	if (device_is_compatible(mmc->dev, "xlnx,zynqmp-8.9a"))
> +		arasan_zynqmp_dll_reset(host, priv->node_id);

How about using local variable to check whether it needs to reset or not?
It's not efficient to call device_is_compatible() everytime.
(I'm not sure that it will be added more in future.)

e.g)
bool reset = device_is_compatible(mmc->dev, "xlx,zynmp-8.8a");

if (reset)
	arasan_zynqmp_dll_reset(host, priv->node_id);

..

If (reset)
	arasan_zynqmp_dll_reset(host, priv->node_id);

Best Regards,
Jaehoon Chung


> 
>  	sdhci_writel(host, SDHCI_INT_DATA_AVAIL, SDHCI_INT_ENABLE);
>  	sdhci_writel(host, SDHCI_INT_DATA_AVAIL, SDHCI_SIGNAL_ENABLE);
> @@ -468,7 +469,9 @@ static int arasan_sdhci_execute_tuning(struct mmc *mmc, u8 opcode)
>  	}
> 
>  	udelay(1);
> -	arasan_zynqmp_dll_reset(host, priv->node_id);
> +
> +	if (device_is_compatible(mmc->dev, "xlnx,zynqmp-8.9a"))
> +		arasan_zynqmp_dll_reset(host, priv->node_id);
> 
>  	/* Enable only interrupts served by the SD controller */
>  	sdhci_writel(host, SDHCI_INT_DATA_MASK | SDHCI_INT_CMD_MASK,
> --
> 2.36.1




More information about the U-Boot mailing list