summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorKever Yang <kever.yang@rock-chips.com>2016-10-07 15:56:16 +0800
committerSimon Glass <sjg@chromium.org>2016-10-30 13:29:06 -0600
commit27b95d25c570e29fe58ae01e308467a1f682411e (patch)
tree02ce228ac53e7a13ee065039b0c5b632df7d18aa /arch/arm
parent5564ed5dd980c1e67780fb6a7fdbe29fd76174ed (diff)
rk3399: disable the clock multiplier support when SoC init
The Clock Multiplier in rk3399 EMMC programmable clock generator is broken, we can remove its support from SoC GRF register. Without this patch, rk3399 emmc driver is not work after below patch applied: 6dffdbc mmc: sdhci: Add the programmable clock mode support Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-rockchip/rk3399/rk3399.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c
index b9d7629407..8bb950ebd1 100644
--- a/arch/arm/mach-rockchip/rk3399/rk3399.c
+++ b/arch/arm/mach-rockchip/rk3399/rk3399.c
@@ -6,6 +6,10 @@
#include <common.h>
#include <asm/armv8/mmu.h>
+#include <asm/io.h>
+#include <asm/arch/hardware.h>
+
+#define GRF_EMMCCORE_CON11 0xff77f02c
static struct mm_region rk3399_mem_map[] = {
{
@@ -28,3 +32,13 @@ static struct mm_region rk3399_mem_map[] = {
};
struct mm_region *mem_map = rk3399_mem_map;
+
+int arch_cpu_init(void)
+{
+ /* We do some SoC one time setting here. */
+
+ /* Emmc clock generator: disable the clock multipilier */
+ rk_clrreg(GRF_EMMCCORE_CON11, 0x0ff);
+
+ return 0;
+}