ARM: uniphier: deprecate umc_dram_init_{start, poll}
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Fri, 26 Feb 2016 05:21:52 +0000 (14:21 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Sun, 28 Feb 2016 18:50:16 +0000 (03:50 +0900)
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
arch/arm/mach-uniphier/dram/umc-ph1-ld4.c
arch/arm/mach-uniphier/dram/umc-ph1-pro4.c
arch/arm/mach-uniphier/dram/umc-ph1-sld8.c
arch/arm/mach-uniphier/dram/umc-regs.h

index 0eb47d73d7a39d35bb82af02bc2e72e6650695cd..09b2c1ce27091480dfcaf875844667d56d9ef4a4 100644 (file)
@@ -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);
 
index 9569c1070a16e31d3e0c4266aff6ebee41a6279d..93d2e2c2a1ba5fcab09081651c0b85597a96d784 100644 (file)
@@ -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),
index 43e53fd5625b31b7f97eaa62154698b5c91162ac..d873130f9a60030127462881f7ee07dcd7ee08ed 100644 (file)
@@ -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);
 
index c65dd82a31c02374cfef7d409e89593d40ba3519..cc2dd27abf20dc423db45b55c96ef6eee719af56 100644 (file)
@@ -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
 #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
 #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