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

clk: renesas: r8a7795: Fix SD clocks

According to the datasheet, SDn clocks are from the SDSRC clock. And
the SDSRC has a 1/2 divider. So, we should have ".sdsrc" as an internal
core clock. Otherwise, since the sdhi driver will calculate clock for
a sd card using the wrong parent clock rate, and then performance will
be not good.

Fixes: 90c073e53909da85 ("clk: shmobile: r8a7795: Add SD divider support")
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Acked-by: Dirk Behme <dirk.behme@de.bosch.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: stable@vger.kernel.org
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>

authored by

Yoshihiro Shimoda and committed by
Stephen Boyd
e0cb1b84 ed0ab110

+5 -4
+5 -4
drivers/clk/renesas/r8a7795-cpg-mssr.c
··· 69 69 DEF_FIXED(".s1", CLK_S1, CLK_PLL1_DIV2, 3, 1), 70 70 DEF_FIXED(".s2", CLK_S2, CLK_PLL1_DIV2, 4, 1), 71 71 DEF_FIXED(".s3", CLK_S3, CLK_PLL1_DIV2, 6, 1), 72 + DEF_FIXED(".sdsrc", CLK_SDSRC, CLK_PLL1_DIV2, 2, 1), 72 73 73 74 /* Core Clock Outputs */ 74 75 DEF_FIXED("ztr", R8A7795_CLK_ZTR, CLK_PLL1_DIV2, 6, 1), ··· 88 87 DEF_FIXED("s3d2", R8A7795_CLK_S3D2, CLK_S3, 2, 1), 89 88 DEF_FIXED("s3d4", R8A7795_CLK_S3D4, CLK_S3, 4, 1), 90 89 91 - DEF_GEN3_SD("sd0", R8A7795_CLK_SD0, CLK_PLL1_DIV2, 0x0074), 92 - DEF_GEN3_SD("sd1", R8A7795_CLK_SD1, CLK_PLL1_DIV2, 0x0078), 93 - DEF_GEN3_SD("sd2", R8A7795_CLK_SD2, CLK_PLL1_DIV2, 0x0268), 94 - DEF_GEN3_SD("sd3", R8A7795_CLK_SD3, CLK_PLL1_DIV2, 0x026c), 90 + DEF_GEN3_SD("sd0", R8A7795_CLK_SD0, CLK_SDSRC, 0x0074), 91 + DEF_GEN3_SD("sd1", R8A7795_CLK_SD1, CLK_SDSRC, 0x0078), 92 + DEF_GEN3_SD("sd2", R8A7795_CLK_SD2, CLK_SDSRC, 0x0268), 93 + DEF_GEN3_SD("sd3", R8A7795_CLK_SD3, CLK_SDSRC, 0x026c), 95 94 96 95 DEF_FIXED("cl", R8A7795_CLK_CL, CLK_PLL1_DIV2, 48, 1), 97 96 DEF_FIXED("cp", R8A7795_CLK_CP, CLK_EXTAL, 2, 1),