diff options
Diffstat (limited to 'board/timll/devkit8000/devkit8000.c')
| -rw-r--r-- | board/timll/devkit8000/devkit8000.c | 37 | 
1 files changed, 37 insertions, 0 deletions
| diff --git a/board/timll/devkit8000/devkit8000.c b/board/timll/devkit8000/devkit8000.c index 10f189eed..d75e86b32 100644 --- a/board/timll/devkit8000/devkit8000.c +++ b/board/timll/devkit8000/devkit8000.c @@ -41,6 +41,7 @@  #include <asm/arch/mem.h>  #include <asm/mach-types.h>  #include "devkit8000.h" +#include <asm/gpio.h>  #ifdef CONFIG_DRIVER_DM9000  #include <net.h>  #include <netdev.h> @@ -73,6 +74,13 @@ int board_init(void)  	return 0;  } +/* Configure GPMC registers for DM9000 */ +static void gpmc_dm9000_config(void) +{ +	enable_gpmc_cs_config(gpmc_net_config, &gpmc_cfg->cs[6], +		CONFIG_DM9000_BASE, GPMC_SIZE_16M); +} +  /*   * Routine: misc_init_r   * Description: Configure board specific parts @@ -144,6 +152,35 @@ int board_eth_init(bd_t *bis)  }  #endif +#ifdef CONFIG_SPL_OS_BOOT +/* + * Do board specific preperation before SPL + * Linux boot + */ +void spl_board_prepare_for_linux(void) +{ +	gpmc_dm9000_config(); +} + +/* + * devkit8000 specific implementation of spl_start_uboot() + * + * RETURN + * 0 if the button is not pressed + * 1 if the button is pressed + */ +int spl_start_uboot(void) +{ +	int val = 0; +	if (!gpio_request(CONFIG_SPL_OS_BOOT_KEY, "U-Boot key")) { +		gpio_direction_input(CONFIG_SPL_OS_BOOT_KEY); +		val = gpio_get_value(CONFIG_SPL_OS_BOOT_KEY); +		gpio_free(CONFIG_SPL_OS_BOOT_KEY); +	} +	return !val; +} +#endif +  /*   * Routine: get_board_mem_timings   * Description: If we use SPL then there is no x-loader nor config header |