diff options
Diffstat (limited to 'board/ti')
-rw-r--r-- | board/ti/am335x/board.c | 18 | ||||
-rw-r--r-- | board/ti/am335x/board.h | 7 | ||||
-rw-r--r-- | board/ti/am335x/mux.c | 3 | ||||
-rw-r--r-- | board/ti/am43xx/MAINTAINERS | 1 | ||||
-rw-r--r-- | board/ti/am43xx/board.c | 75 | ||||
-rw-r--r-- | board/ti/ti814x/evm.c | 1 | ||||
-rw-r--r-- | board/ti/ti816x/evm.c | 1 |
7 files changed, 95 insertions, 11 deletions
diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c index f802657299..c33bf58ddc 100644 --- a/board/ti/am335x/board.c +++ b/board/ti/am335x/board.c @@ -264,7 +264,7 @@ const struct dpll_params *get_dpll_ddr_params(void) if (board_is_evm_sk()) return &dpll_ddr3_303MHz[ind]; - else if (board_is_bone_lt() || board_is_icev2()) + else if (board_is_pb() || board_is_bone_lt() || board_is_icev2()) return &dpll_ddr3_400MHz[ind]; else if (board_is_evm_15_or_later()) return &dpll_ddr3_303MHz[ind]; @@ -295,7 +295,7 @@ const struct dpll_params *get_dpll_mpu_params(void) if (bone_not_connected_to_ac_power()) freq = MPUPLL_M_600; - if (board_is_bone_lt()) + if (board_is_pb() || board_is_bone_lt()) freq = MPUPLL_M_1000; switch (freq) { @@ -341,7 +341,7 @@ static void scale_vcores_bone(int freq) * Override what we have detected since we know if we have * a Beaglebone Black it supports 1GHz. */ - if (board_is_bone_lt()) + if (board_is_pb() || board_is_bone_lt()) freq = MPUPLL_M_1000; switch (freq) { @@ -542,7 +542,7 @@ void sdram_init(void) if (board_is_evm_sk()) config_ddr(303, &ioregs_evmsk, &ddr3_data, &ddr3_cmd_ctrl_data, &ddr3_emif_reg_data, 0); - else if (board_is_bone_lt()) + else if (board_is_pb() || board_is_bone_lt()) config_ddr(400, &ioregs_bonelt, &ddr3_beagleblack_data, &ddr3_beagleblack_cmd_ctrl_data, @@ -563,8 +563,8 @@ void sdram_init(void) } #endif -#if !defined(CONFIG_SPL_BUILD) || \ - (defined(CONFIG_SPL_ETH_SUPPORT) && defined(CONFIG_SPL_BUILD)) +#if defined(CONFIG_CLOCK_SYNTHESIZER) && (!defined(CONFIG_SPL_BUILD) || \ + (defined(CONFIG_SPL_ETH_SUPPORT) && defined(CONFIG_SPL_BUILD))) static void request_and_set_gpio(int gpio, char *name, int val) { int ret; @@ -621,8 +621,8 @@ int board_init(void) gpmc_init(); #endif -#if !defined(CONFIG_SPL_BUILD) || \ - (defined(CONFIG_SPL_ETH_SUPPORT) && defined(CONFIG_SPL_BUILD)) +#if defined(CONFIG_CLOCK_SYNTHESIZER) && (!defined(CONFIG_SPL_BUILD) || \ + (defined(CONFIG_SPL_ETH_SUPPORT) && defined(CONFIG_SPL_BUILD))) if (board_is_icev2()) { int rv; u32 reg; @@ -941,6 +941,8 @@ int board_fit_config_name_match(const char *name) return 0; else if (board_is_bone_lt() && !strcmp(name, "am335x-boneblack")) return 0; + else if (board_is_pb() && !strcmp(name, "am335x-pocketbeagle")) + return 0; else if (board_is_evm_sk() && !strcmp(name, "am335x-evmsk")) return 0; else if (board_is_bbg1() && !strcmp(name, "am335x-bonegreen")) diff --git a/board/ti/am335x/board.h b/board/ti/am335x/board.h index e13fcff02a..bab5b77f34 100644 --- a/board/ti/am335x/board.h +++ b/board/ti/am335x/board.h @@ -34,6 +34,11 @@ static inline int board_is_bone_lt(void) return board_ti_is("A335BNLT"); } +static inline int board_is_pb(void) +{ + return board_ti_is("A335PBGL"); +} + static inline int board_is_bbg1(void) { return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "BBG1", 4); @@ -41,7 +46,7 @@ static inline int board_is_bbg1(void) static inline int board_is_beaglebonex(void) { - return board_is_bone() || board_is_bone_lt() || board_is_bbg1(); + return board_is_pb() || board_is_bone() || board_is_bone_lt() || board_is_bbg1(); } static inline int board_is_evm_sk(void) diff --git a/board/ti/am335x/mux.c b/board/ti/am335x/mux.c index ad85b3a19a..aa187605d0 100644 --- a/board/ti/am335x/mux.c +++ b/board/ti/am335x/mux.c @@ -390,6 +390,9 @@ void enable_board_pin_mux(void) #else configure_module_pin_mux(mmc1_pin_mux); #endif + } else if (board_is_pb()) { + configure_module_pin_mux(mii1_pin_mux); + configure_module_pin_mux(mmc0_pin_mux); } else if (board_is_icev2()) { configure_module_pin_mux(mmc0_pin_mux); configure_module_pin_mux(gpio0_18_pin_mux); diff --git a/board/ti/am43xx/MAINTAINERS b/board/ti/am43xx/MAINTAINERS index 83645acff4..bf098064bd 100644 --- a/board/ti/am43xx/MAINTAINERS +++ b/board/ti/am43xx/MAINTAINERS @@ -7,4 +7,5 @@ F: configs/am43xx_evm_defconfig F: configs/am43xx_evm_ethboot_defconfig F: configs/am43xx_evm_qspiboot_defconfig F: configs/am43xx_evm_usbhost_boot_defconfig +F: configs/am43xx_evm_rtconly_defconfig F: configs/am43xx_hs_evm_defconfig diff --git a/board/ti/am43xx/board.c b/board/ti/am43xx/board.c index 715960a596..0431cd4606 100644 --- a/board/ti/am43xx/board.c +++ b/board/ti/am43xx/board.c @@ -9,6 +9,7 @@ */ #include <common.h> +#include <environment.h> #include <i2c.h> #include <linux/errno.h> #include <spl.h> @@ -520,6 +521,62 @@ static void enable_vtt_regulator(void) writel(temp, AM33XX_GPIO5_BASE + OMAP_GPIO_OE); } +enum { + RTC_BOARD_EPOS = 1, + RTC_BOARD_EVM14, + RTC_BOARD_EVM12, + RTC_BOARD_GPEVM, + RTC_BOARD_SK, +}; + +/* + * In the rtc_only+DRR in self-refresh boot path we have the board type info + * in the rtc scratch pad register hence we bypass the costly i2c reads to + * eeprom and directly programthe board name string + */ +void rtc_only_update_board_type(u32 btype) +{ + const char *name = ""; + const char *rev = "1.0"; + + switch (btype) { + case RTC_BOARD_EPOS: + name = "AM43EPOS"; + break; + case RTC_BOARD_EVM14: + name = "AM43__GP"; + rev = "1.4"; + break; + case RTC_BOARD_EVM12: + name = "AM43__GP"; + rev = "1.2"; + break; + case RTC_BOARD_GPEVM: + name = "AM43__GP"; + break; + case RTC_BOARD_SK: + name = "AM43__SK"; + break; + } + ti_i2c_eeprom_am_set(name, rev); +} + +u32 rtc_only_get_board_type(void) +{ + if (board_is_eposevm()) + return RTC_BOARD_EPOS; + else if (board_is_evm_14_or_later()) + return RTC_BOARD_EVM14; + else if (board_is_evm_12_or_later()) + return RTC_BOARD_EVM12; + else if (board_is_gpevm()) + return RTC_BOARD_GPEVM; + else if (board_is_sk()) + return RTC_BOARD_SK; + + return 0; +} + void sdram_init(void) { /* @@ -852,10 +909,14 @@ int ft_board_setup(void *blob, bd_t *bd) } #endif -#ifdef CONFIG_SPL_LOAD_FIT +#if defined(CONFIG_SPL_LOAD_FIT) || defined(CONFIG_DTB_RESELECT) int board_fit_config_name_match(const char *name) { - if (board_is_evm() && !strcmp(name, "am437x-gp-evm")) + bool eeprom_read = board_ti_was_eeprom_read(); + + if (!strcmp(name, "am4372-generic") && !eeprom_read) + return 0; + else if (board_is_evm() && !strcmp(name, "am437x-gp-evm")) return 0; else if (board_is_sk() && !strcmp(name, "am437x-sk-evm")) return 0; @@ -868,6 +929,16 @@ int board_fit_config_name_match(const char *name) } #endif +#ifdef CONFIG_DTB_RESELECT +int embedded_dtb_select(void) +{ + do_board_detect(); + fdtdec_setup(); + + return 0; +} +#endif + #ifdef CONFIG_TI_SECURE_DEVICE void board_fit_image_post_process(void **p_image, size_t *p_size) { diff --git a/board/ti/ti814x/evm.c b/board/ti/ti814x/evm.c index cdde6a8ca3..4a0f82975a 100644 --- a/board/ti/ti814x/evm.c +++ b/board/ti/ti814x/evm.c @@ -10,6 +10,7 @@ #include <common.h> #include <cpsw.h> +#include <environment.h> #include <errno.h> #include <spl.h> #include <asm/arch/cpu.h> diff --git a/board/ti/ti816x/evm.c b/board/ti/ti816x/evm.c index cb40cc5f47..abc961a86e 100644 --- a/board/ti/ti816x/evm.c +++ b/board/ti/ti816x/evm.c @@ -8,6 +8,7 @@ */ #include <common.h> +#include <environment.h> #include <spl.h> #include <netdev.h> #include <asm/cache.h> |