> -----Original Message-----
> From: [email protected] <[email protected]>
> Sent: Saturday, April 13, 2024 4:27 AM
> To: [email protected]; Peng Fan <[email protected]>; Jaehoon Chung 
> <[email protected]>
> Cc: cmachida <[email protected]>; Jonas Karlman <[email protected]>; 
> Kever Yang <kever.yang@rock-
> chips.com>; Peter Geis <[email protected]>; Sean Anderson 
> <[email protected]>; Simon Glass
> <[email protected]>; Tom Rini <[email protected]>
> Subject: [PATCH] mmc: sdhci: programmable clock calculation needs multiplier 
> +1
> 
> From: cmachida <[email protected]>
> 
> According to the SD Host Controller Simplified Specification v4.20,
> the multiplier value M is one more than the Clock Multiplier field.
> 
> Copied code from Linux project.  drivers/mmc/host/sdhci.c line 4405
> 
> Signed-off-by: cmachida <[email protected]>

Reviewed-by: Jaehoon Chung <[email protected]>

Best Regards,
Jaehoon Chung

> ---
> 
>  drivers/mmc/sdhci.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
> index 0178ed8a11..a8476ec4e9 100644
> --- a/drivers/mmc/sdhci.c
> +++ b/drivers/mmc/sdhci.c
> @@ -929,6 +929,15 @@ int sdhci_setup_cfg(struct mmc_config *cfg, struct 
> sdhci_host *host,
>               debug("%s, caps_1: 0x%x\n", __func__, caps_1);
>               host->clk_mul = (caps_1 & SDHCI_CLOCK_MUL_MASK) >>
>                               SDHCI_CLOCK_MUL_SHIFT;
> +
> +             /*
> +              * In case the value in Clock Multiplier is 0, then programmable
> +              * clock mode is not supported, otherwise the actual clock
> +              * multiplier is one more than the value of Clock Multiplier
> +              * in the Capabilities Register.
> +              */
> +             if (host->clk_mul)
> +                     host->clk_mul += 1;
>       }
> 
>       if (host->max_clk == 0) {
> --
> 2.43.2


Reply via email to