board: ti: am64: select NAND overlay if HSE card present

Since we are using overlay for A53 SPL and A53 u-boot the
SPL must select the NAND overlay from the FIT image if
HSE card is present.

For simplicity sake, we only check if a card is present or not in
the HSE (High Speed Expansion) slot to determine if we need to
use NAND overlay.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
This commit is contained in:
Roger Quadros 2022-02-02 13:21:47 +02:00 committed by Praneeth Bajjuri
parent 03b0a5db9a
commit 1c738366e8
1 changed files with 19 additions and 4 deletions

View File

@ -30,6 +30,8 @@ enum {
AM64X_EVM_BRD_DET_COUNT,
};
static struct gpio_desc board_det_gpios[AM64X_EVM_BRD_DET_COUNT];
/* Max number of MAC addresses that are parsed/processed per daughter card */
#define DAUGHTER_CARD_NO_OF_MAC_ADDR 8
@ -60,10 +62,22 @@ int dram_init_banksize(void)
int board_fit_config_name_match(const char *name)
{
bool eeprom_read = board_ti_was_eeprom_read();
int ret;
bool is_nand = false;
/* Simple check if card is installed in HSE slot or not */
ret = dm_gpio_get_value(&board_det_gpios[AM64X_EVM_HSE_BRD_DET]);
if (!ret)
is_nand = true;
if (!eeprom_read || board_is_am64x_gpevm()) {
if (!strcmp(name, "k3-am642-r5-evm") || !strcmp(name, "k3-am642-evm"))
return 0;
if (is_nand) {
if (!strcmp(name, "k3-am642-r5-evm") || !strcmp(name, "k3-am642-evm-nand"))
return 0;
} else {
if (!strcmp(name, "k3-am642-r5-evm") || !strcmp(name, "k3-am642-evm"))
return 0;
}
} else if (board_is_am64x_skevm()) {
if (!strcmp(name, "k3-am642-r5-sk") || !strcmp(name, "k3-am642-sk"))
return 0;
@ -177,7 +191,6 @@ static void setup_serial(void)
#endif
#endif
#ifdef CONFIG_BOARD_LATE_INIT
static const char *k3_dtbo_list[AM64X_MAX_DAUGHTER_CARDS] = {NULL};
static int init_daughtercard_det_gpio(char *gpio_name, struct gpio_desc *desc)
@ -205,7 +218,6 @@ static int init_daughtercard_det_gpio(char *gpio_name, struct gpio_desc *desc)
static int probe_daughtercards(void)
{
struct ti_am6_eeprom ep;
struct gpio_desc board_det_gpios[AM64X_EVM_BRD_DET_COUNT];
char mac_addr[DAUGHTER_CARD_NO_OF_MAC_ADDR][TI_EEPROM_HDR_ETH_ALEN];
u8 mac_addr_cnt;
char name_overlays[1024] = { 0 };
@ -337,6 +349,7 @@ static int probe_daughtercards(void)
return 0;
}
#ifdef CONFIG_BOARD_LATE_INIT
int board_late_init(void)
{
if (IS_ENABLED(CONFIG_TI_I2C_BOARD_DETECT)) {
@ -374,5 +387,7 @@ void spl_board_init(void)
/* Init DRAM size for R5/A53 SPL */
dram_init_banksize();
probe_daughtercards();
}
#endif