Unfortunately, this SoC needs per-board adjustment between clock
and address/command lines.  This flag will be passed to the DRAM
init function and used for compensating the difference of DRAM
timing parameters.

Signed-off-by: Masahiro Yamada <yamada.masah...@socionext.com>
---

 arch/arm/mach-uniphier/boards.c | 25 ++++++++++++++++++++++++-
 arch/arm/mach-uniphier/init.h   | 11 ++++++++---
 2 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-uniphier/boards.c b/arch/arm/mach-uniphier/boards.c
index f54f464..1dececb 100644
--- a/arch/arm/mach-uniphier/boards.c
+++ b/arch/arm/mach-uniphier/boards.c
@@ -184,6 +184,27 @@ static const struct uniphier_board_data uniphier_ld11_data 
= {
 #endif
 
 #if defined(CONFIG_ARCH_UNIPHIER_LD20)
+static const struct uniphier_board_data uniphier_ld20_ref_data = {
+       .dram_freq = 1866,
+       .dram_nr_ch = 3,
+       .dram_ch[0] = {
+               .base = 0x80000000,
+               .size = 0x40000000,
+               .width = 32,
+       },
+       .dram_ch[1] = {
+               .base = 0xc0000000,
+               .size = 0x40000000,
+               .width = 32,
+       },
+       .dram_ch[2] = {
+               .base = 0x100000000UL,
+               .size = 0x40000000,
+               .width = 32,
+       },
+       .flags = UNIPHIER_BD_BOARD_LD20_REF,
+};
+
 static const struct uniphier_board_data uniphier_ld20_data = {
        .dram_freq = 1866,
        .dram_nr_ch = 3,
@@ -202,6 +223,7 @@ static const struct uniphier_board_data uniphier_ld20_data 
= {
                .size = 0x40000000,
                .width = 32,
        },
+       .flags = UNIPHIER_BD_BOARD_LD20_GLOBAL,
 };
 
 static const struct uniphier_board_data uniphier_ld21_data = {
@@ -217,7 +239,7 @@ static const struct uniphier_board_data uniphier_ld21_data 
= {
                .size = 0x20000000,
                .width = 32,
        },
-       .flags = UNIPHIER_BD_PACKAGE_LD21,
+       .flags = UNIPHIER_BD_BOARD_LD21_GLOBAL,
 };
 #endif
 
@@ -255,6 +277,7 @@ static const struct uniphier_board_id uniphier_boards[] = {
 #endif
 #if defined(CONFIG_ARCH_UNIPHIER_LD20)
        { "socionext,ph1-ld21", &uniphier_ld21_data, },
+       { "socionext,ph1-ld20-ref", &uniphier_ld20_ref_data, },
        { "socionext,ph1-ld20", &uniphier_ld20_data, },
 #endif
 };
diff --git a/arch/arm/mach-uniphier/init.h b/arch/arm/mach-uniphier/init.h
index a2fedbc..406d5d0 100644
--- a/arch/arm/mach-uniphier/init.h
+++ b/arch/arm/mach-uniphier/init.h
@@ -23,9 +23,14 @@ struct uniphier_board_data {
        unsigned int dram_nr_ch;
        struct uniphier_dram_ch dram_ch[UNIPHIER_MAX_NR_DRAM_CH];
        unsigned int flags;
-#define UNIPHIER_BD_DDR3PLUS           BIT(2)
-#define UNIPHIER_BD_PACKAGE_LD21       1
-#define UNIPHIER_BD_PACKAGE_TYPE(f)    ((f) & 0x3)
+
+#define UNIPHIER_BD_DDR3PLUS                   BIT(2)
+
+#define UNIPHIER_BD_BOARD_GET_TYPE(f)          ((f) & 0x3)
+#define UNIPHIER_BD_BOARD_LD20_REF             0       /* LD20 reference */
+#define UNIPHIER_BD_BOARD_LD20_GLOBAL          1       /* LD20 TV Set */
+#define UNIPHIER_BD_BOARD_LD21_REF             2       /* LD21 reference */
+#define UNIPHIER_BD_BOARD_LD21_GLOBAL          3       /* LD21 TV Set */
 };
 
 const struct uniphier_board_data *uniphier_get_board_param(void);
-- 
1.9.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to