[U-Boot] [PATCH 20/21] ARM: uniphier: deprecate umc_dram_init_{start, poll}

Masahiro Yamada yamada.masahiro at socionext.com
Fri Feb 26 06:21:52 CET 2016


Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>
---

 arch/arm/mach-uniphier/dram/umc-ph1-ld4.c  |  6 ++++--
 arch/arm/mach-uniphier/dram/umc-ph1-pro4.c |  6 ++++--
 arch/arm/mach-uniphier/dram/umc-ph1-sld8.c |  6 ++++--
 arch/arm/mach-uniphier/dram/umc-regs.h     | 23 ++++++-----------------
 4 files changed, 18 insertions(+), 23 deletions(-)

diff --git a/arch/arm/mach-uniphier/dram/umc-ph1-ld4.c b/arch/arm/mach-uniphier/dram/umc-ph1-ld4.c
index 0eb47d7..09b2c1c 100644
--- a/arch/arm/mach-uniphier/dram/umc-ph1-ld4.c
+++ b/arch/arm/mach-uniphier/dram/umc-ph1-ld4.c
@@ -8,6 +8,7 @@
 #include <linux/err.h>
 #include <linux/io.h>
 #include <linux/sizes.h>
+#include <asm/processor.h>
 
 #include "../init.h"
 #include "ddrphy-regs.h"
@@ -145,8 +146,9 @@ static int umc_ch_init(void __iomem *dc_base, void __iomem *ca_base,
 	void __iomem *phy_base = dc_base + 0x00001000;
 	int ret;
 
-	umc_dram_init_start(dc_base);
-	umc_dram_init_poll(dc_base);
+	writel(UMC_INITSET_INIT1EN, dc_base + UMC_INITSET);
+	while (readl(dc_base + UMC_INITSET) & UMC_INITSTAT_INIT1ST)
+		cpu_relax();
 
 	writel(0x00000101, dc_base + UMC_DIOCTLA);
 
diff --git a/arch/arm/mach-uniphier/dram/umc-ph1-pro4.c b/arch/arm/mach-uniphier/dram/umc-ph1-pro4.c
index 9569c10..93d2e2c 100644
--- a/arch/arm/mach-uniphier/dram/umc-ph1-pro4.c
+++ b/arch/arm/mach-uniphier/dram/umc-ph1-pro4.c
@@ -8,6 +8,7 @@
 #include <linux/err.h>
 #include <linux/io.h>
 #include <linux/sizes.h>
+#include <asm/processor.h>
 
 #include "../init.h"
 #include "ddrphy-regs.h"
@@ -133,8 +134,9 @@ static int umc_ch_init(void __iomem *dc_base, void __iomem *ca_base,
 	int nr_phy = width / 16;
 	int phy, ret;
 
-	umc_dram_init_start(dc_base);
-	umc_dram_init_poll(dc_base);
+	writel(UMC_INITSET_INIT1EN, dc_base + UMC_INITSET);
+	while (readl(dc_base + UMC_INITSET) & UMC_INITSTAT_INIT1ST)
+		cpu_relax();
 
 	for (phy = 0; phy < nr_phy; phy++) {
 		writel(0x00000100 | ((1 << (phy + 1)) - 1),
diff --git a/arch/arm/mach-uniphier/dram/umc-ph1-sld8.c b/arch/arm/mach-uniphier/dram/umc-ph1-sld8.c
index 43e53fd..d873130 100644
--- a/arch/arm/mach-uniphier/dram/umc-ph1-sld8.c
+++ b/arch/arm/mach-uniphier/dram/umc-ph1-sld8.c
@@ -8,6 +8,7 @@
 #include <linux/err.h>
 #include <linux/io.h>
 #include <linux/sizes.h>
+#include <asm/processor.h>
 
 #include "../init.h"
 #include "ddrphy-regs.h"
@@ -148,8 +149,9 @@ static int umc_ch_init(void __iomem *dc_base, void __iomem *ca_base,
 	void __iomem *phy_base = dc_base + 0x00001000;
 	int ret;
 
-	umc_dram_init_start(dc_base);
-	umc_dram_init_poll(dc_base);
+	writel(UMC_INITSET_INIT1EN, dc_base + UMC_INITSET);
+	while (readl(dc_base + UMC_INITSET) & UMC_INITSTAT_INIT1ST)
+		cpu_relax();
 
 	writel(0x00000101, dc_base + UMC_DIOCTLA);
 
diff --git a/arch/arm/mach-uniphier/dram/umc-regs.h b/arch/arm/mach-uniphier/dram/umc-regs.h
index c65dd82..cc2dd27 100644
--- a/arch/arm/mach-uniphier/dram/umc-regs.h
+++ b/arch/arm/mach-uniphier/dram/umc-regs.h
@@ -9,6 +9,8 @@
 #ifndef ARCH_UMC_REGS_H
 #define ARCH_UMC_REGS_H
 
+#include <linux/bitops.h>
+
 #define UMC_CPURST		0x00000700
 #define UMC_IDSRST		0x0000070C
 #define UMC_IXMRST		0x00000714
@@ -46,7 +48,11 @@
 #define UMC_CMDCTLA		0x00000000
 #define UMC_CMDCTLB		0x00000004
 #define UMC_INITSET		0x00000014
+#define   UMC_INITSET_INIT1EN		BIT(1)	/* init without power-on wait */
+#define   UMC_INITSET_INIT0EN		BIT(0)	/* init with power-on wait */
 #define UMC_INITSTAT		0x00000018
+#define   UMC_INITSTAT_INIT1ST		BIT(1)	/* init without power-on wait */
+#define   UMC_INITSTAT_INIT0ST		BIT(0)	/* init with power-on wait */
 #define UMC_SPCCTLA		0x00000030
 #define UMC_SPCCTLB		0x00000034
 #define UMC_SPCSETA		0x00000038
@@ -98,21 +104,4 @@
 #define UMC_BITPERPIXELMODE_D0	0x010
 #define UMC_PAIR1DOFF_D0	0x054
 
-#ifndef __ASSEMBLY__
-
-#include <linux/types.h>
-
-static inline void umc_dram_init_start(void __iomem *dramcont)
-{
-	writel(0x00000002, dramcont + UMC_INITSET);
-}
-
-static inline void umc_dram_init_poll(void __iomem *dramcont)
-{
-	while ((readl(dramcont + UMC_INITSTAT) & 0x00000002))
-		;
-}
-
-#endif
-
 #endif
-- 
1.9.1



More information about the U-Boot mailing list