mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-29 08:01:08 +00:00
ARM: uniphier: introduce flags to adjust DRAM timing for LD20/LD21
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.masahiro@socionext.com>
This commit is contained in:
parent
ef70eb54aa
commit
f6bbec3d5c
2 changed files with 32 additions and 4 deletions
|
@ -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 = 0x40000000,
|
||||
.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
|
||||
};
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue