Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mmc: sdhci-of-esdhc: limit the SDHC clock frequency

The highest clock frequency for eMMC HS200 mode on ls1043a
is 116.7Mhz according to its specification.
So add the limit to gate the frequency.

Signed-off-by: Andy Tang <andy.tang@nxp.com>
Link: https://lore.kernel.org/r/20221202075905.25363-1-andy.tang@nxp.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

authored by

Andy Tang and committed by
Ulf Hansson
c8d2d76d 496182a3

+7
+7
drivers/mmc/host/sdhci-of-esdhc.c
··· 42 42 .max_clk[MMC_TIMING_SD_HS] = 46500000, 43 43 }; 44 44 45 + static const struct esdhc_clk_fixup ls1043a_esdhc_clk = { 46 + .sd_dflt_max_clk = 25000000, 47 + .max_clk[MMC_TIMING_UHS_SDR104] = 116700000, 48 + .max_clk[MMC_TIMING_MMC_HS200] = 116700000, 49 + }; 50 + 45 51 static const struct esdhc_clk_fixup ls1046a_esdhc_clk = { 46 52 .sd_dflt_max_clk = 25000000, 47 53 .max_clk[MMC_TIMING_UHS_SDR104] = 167000000, ··· 69 63 70 64 static const struct of_device_id sdhci_esdhc_of_match[] = { 71 65 { .compatible = "fsl,ls1021a-esdhc", .data = &ls1021a_esdhc_clk}, 66 + { .compatible = "fsl,ls1043a-esdhc", .data = &ls1043a_esdhc_clk}, 72 67 { .compatible = "fsl,ls1046a-esdhc", .data = &ls1046a_esdhc_clk}, 73 68 { .compatible = "fsl,ls1012a-esdhc", .data = &ls1012a_esdhc_clk}, 74 69 { .compatible = "fsl,p1010-esdhc", .data = &p1010_esdhc_clk},