Re: [PATCH] mmc: sdhci: programmable clock calculation needs multiplier +1

2024-04-15 Thread Sean Anderson
On 4/12/24 15:26, curtis.mach...@intel.com wrote:
> [You don't often get email from curtis.mach...@intel.com. Learn why this is 
> important at 
> https://cas5-0-urlprotect.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2faka.ms%2fLearnAboutSenderIdentification=4f25273f-b33b-4eb3-8643-c1f6eff8842b=d807158c60b7d2502abde8a2fc01f40662980862-c95c2e418b830130ad99c91e42b2732e3f7e44ee
>  ]
> 
> From: cmachida 
> 
> 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 
> ---
> 
>  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
> 

Reviewed-by: Sean Anderson 


RE: [PATCH] mmc: sdhci: programmable clock calculation needs multiplier +1

2024-04-15 Thread Jaehoon Chung



> -Original Message-
> From: curtis.mach...@intel.com 
> Sent: Saturday, April 13, 2024 4:27 AM
> To: u-boot@lists.denx.de; Peng Fan ; Jaehoon Chung 
> 
> Cc: cmachida ; Jonas Karlman ; 
> Kever Yang  chips.com>; Peter Geis ; Sean Anderson 
> ; Simon Glass
> ; Tom Rini 
> Subject: [PATCH] mmc: sdhci: programmable clock calculation needs multiplier 
> +1
> 
> From: cmachida 
> 
> 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 

Reviewed-by: Jaehoon Chung 

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




[PATCH] mmc: sdhci: programmable clock calculation needs multiplier +1

2024-04-12 Thread curtis . machida
From: cmachida 

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 
---

 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