feat(drivers/rcar3): ddr: add function to judge a DDR rank

This commit adds the function to change the settings used for DDR
initialization depending on the board ID and DDR rank.

Signed-off-by: Toshiyuki Ogasahara <toshiyuki.ogasahara.bo@hitachi.com>
Signed-off-by: Yoshifumi Hosoya <yoshifumi.hosoya.wj@renesas.com>
Change-Id: I94d550cea620748f5b15499fed1b791a69d61592
This commit is contained in:
Toshiyuki Ogasahara 2020-12-08 16:14:56 +09:00 committed by Marek Vasut
parent ec767c1b99
commit 726050b8e2
1 changed files with 43 additions and 2 deletions

View File

@ -12,6 +12,9 @@
#if (RZG_SOC == 1)
#define BOARDNUM 4
#else
#include <board.h>
#define BOARDNUM 22
#endif /* RZG_SOC == 1 */
#define BOARD_JUDGE_AUTO
@ -1967,6 +1970,44 @@ static uint32_t rzg2_board_judge(void)
}
#endif /* RZG_SOC == 1 */
#if (RZG_SOC == 0) && (RCAR_DRAM_LPDDR4_MEMCONF != 0)
static uint32_t ddr_rank_judge(void)
{
uint32_t brd;
#if (RCAR_DRAM_MEMRANK == 0)
int32_t ret;
uint32_t type = 0U;
uint32_t rev = 0U;
brd = 99U;
ret = rcar_get_board_type(&type, &rev);
if ((ret == 0) && (rev != 0xFFU)) {
if (type == (uint32_t)BOARD_SALVATOR_XS) {
if (rev == 0x11U) {
brd = 14U;
} else {
brd = 8U;
}
} else if (type == (uint32_t)BOARD_STARTER_KIT_PRE) {
if (rev == 0x21U) {
brd = 14U;
} else {
brd = 8U;
}
}
}
#elif (RCAR_DRAM_MEMRANK == 1)
brd = 14U;
#elif (RCAR_DRAM_MEMRANK == 2)
brd = 8U;
#else
#error Invalid value was set to RCAR_DRAM_MEMRANK
#endif /* (RCAR_DRAM_MEMRANK == 0) */
return brd;
}
#endif /* (RCAR_DRAM_LPDDR4_MEMCONF != 0) */
static uint32_t _board_judge(void)
{
uint32_t brd;
@ -1985,7 +2026,7 @@ static uint32_t _board_judge(void)
#if (RCAR_DRAM_LPDDR4_MEMCONF == 0)
brd = 7;
#else
brd = 8;
brd = ddr_rank_judge();
#endif
}
} else if (prr_product == PRR_PRODUCT_M3) {
@ -2039,7 +2080,7 @@ static uint32_t _board_judge(void)
#if (RCAR_DRAM_LPDDR4_MEMCONF == 0)
brd = 7;
#else
brd = 8;
brd = ddr_rank_judge();
#endif
}
} else if (prr_product == PRR_PRODUCT_M3N) {