aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-exynos/setup-mshci-gpio.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-exynos/setup-mshci-gpio.c')
-rw-r--r--arch/arm/mach-exynos/setup-mshci-gpio.c26
1 files changed, 22 insertions, 4 deletions
diff --git a/arch/arm/mach-exynos/setup-mshci-gpio.c b/arch/arm/mach-exynos/setup-mshci-gpio.c
index db7d86a..7984a5d 100644
--- a/arch/arm/mach-exynos/setup-mshci-gpio.c
+++ b/arch/arm/mach-exynos/setup-mshci-gpio.c
@@ -87,10 +87,18 @@ void exynos4_setup_mshci_cfg_ddr(struct platform_device *dev, int ddr)
#elif defined(CONFIG_EXYNOS4_MSHC_VPLL_46MHZ)
__raw_writel(0x01, DIV_FSYS3);
#else
+#ifdef CONFIG_EXYNOS4_MSHC_SUPPORT_PQPRIME_EPLL
+ if (soc_is_exynos4412() &&
+ (samsung_rev() >= EXYNOS4412_REV_2_0))
+ /* This is code for support PegasusQ Prime dynamically.
+ * PegasusQ Prime use EPLL rather than MPLL */
+ __raw_writel(0x00, DIV_FSYS3);
+ else
+#endif /* ifdef CONFIG_EXYNOS4_MSHC_SUPPORT_PQPRIME_EPLL */
if ((soc_is_exynos4412() || soc_is_exynos4212()) &&
- samsung_rev() >= EXYNOS4412_REV_1_0) {
+ samsung_rev() >= EXYNOS4412_REV_1_0)
__raw_writel(0x1, DIV_FSYS3);
- } else
+ else
__raw_writel(0x05, DIV_FSYS3);
#endif
} else {
@@ -99,8 +107,16 @@ void exynos4_setup_mshci_cfg_ddr(struct platform_device *dev, int ddr)
#elif defined(CONFIG_EXYNOS4_MSHC_VPLL_46MHZ)
__raw_writel(0x03, DIV_FSYS3);
#else
+#ifdef CONFIG_EXYNOS4_MSHC_SUPPORT_PQPRIME_EPLL
+ if (soc_is_exynos4412() &&
+ (samsung_rev() >= EXYNOS4412_REV_2_0))
+ /* This is code for support PegasusQ Prime dynamically.
+ * PegasusQ Prime use EPLL rather than MPLL */
+ __raw_writel(0x01, DIV_FSYS3);
+ else
+#endif /* ifdef CONFIG_EXYNOS4_MSHC_SUPPORT_PQPRIME_EPLL */
if ((soc_is_exynos4412() || soc_is_exynos4212()) &&
- samsung_rev() >= EXYNOS4412_REV_1_0)
+ samsung_rev() >= EXYNOS4412_REV_1_0)
__raw_writel(0x3, DIV_FSYS3);
else
__raw_writel(0xb, DIV_FSYS3);
@@ -140,8 +156,10 @@ void exynos4_setup_mshci_set_power(struct platform_device *dev, int en)
if (pdata->int_power_gpio) {
if (en) {
-#ifdef CONFIG_MACH_Q1_BD
+#if defined(CONFIG_MACH_Q1_BD)
mdelay(20);
+#elif defined(CONFIG_MACH_PX)
+ mdelay(10);
#endif
/*CMD/CLK*/
for (gpio = EXYNOS4_GPK0(0); gpio < EXYNOS4_GPK0(2);