diff options
Diffstat (limited to 'board/ti/ks2_evm')
-rw-r--r-- | board/ti/ks2_evm/board.c | 7 | ||||
-rw-r--r-- | board/ti/ks2_evm/board_k2g.c | 38 |
2 files changed, 45 insertions, 0 deletions
diff --git a/board/ti/ks2_evm/board.c b/board/ti/ks2_evm/board.c index 03254e1497..479231106a 100644 --- a/board/ti/ks2_evm/board.c +++ b/board/ti/ks2_evm/board.c @@ -277,3 +277,10 @@ void ft_board_setup_ex(void *blob, bd_t *bd) ddr3_check_ecc_int(KS2_DDR3A_EMIF_CTRL_BASE); } #endif /* CONFIG_OF_BOARD_SETUP */ + +#if defined(CONFIG_DTB_RESELECT) +int __weak embedded_dtb_select(void) +{ + return 0; +} +#endif diff --git a/board/ti/ks2_evm/board_k2g.c b/board/ti/ks2_evm/board_k2g.c index f0bd31d6f7..3c75e22127 100644 --- a/board/ti/ks2_evm/board_k2g.c +++ b/board/ti/ks2_evm/board_k2g.c @@ -11,9 +11,13 @@ #include <asm/ti-common/keystone_net.h> #include <asm/arch/psc_defs.h> #include <asm/arch/mmc_host_def.h> +#include <fdtdec.h> +#include <i2c.h> #include "mux-k2g.h" #include "../common/board_detect.h" +#define K2G_GP_AUDIO_CODEC_ADDRESS 0x1B + const unsigned int sysclk_array[MAX_SYSCLK] = { 19200000, 24000000, @@ -210,6 +214,40 @@ int board_mmc_init(bd_t *bis) } #endif +#if defined(CONFIG_DTB_RESELECT) +static int k2g_alt_board_detect(void) +{ + int rc; + + rc = i2c_set_bus_num(1); + if (rc) + return rc; + + rc = i2c_probe(K2G_GP_AUDIO_CODEC_ADDRESS); + if (rc) + return rc; + + ti_i2c_eeprom_am_set("66AK2GGP", "1.0X"); + + return 0; +} + +int embedded_dtb_select(void) +{ + int rc; + + rc = k2g_alt_board_detect(); + if (rc) { + printf("Unable to do board detection\n"); + return -1; + } + + fdtdec_setup(); + + return 0; +} +#endif + #ifdef CONFIG_BOARD_EARLY_INIT_F static void k2g_reset_mux_config(void) |