diff options
Diffstat (limited to 'cpu/ppc4xx/cpu_init.c')
| -rw-r--r-- | cpu/ppc4xx/cpu_init.c | 120 | 
1 files changed, 5 insertions, 115 deletions
| diff --git a/cpu/ppc4xx/cpu_init.c b/cpu/ppc4xx/cpu_init.c index ae2459108..66e863726 100644 --- a/cpu/ppc4xx/cpu_init.c +++ b/cpu/ppc4xx/cpu_init.c @@ -25,6 +25,7 @@  #include <watchdog.h>  #include <ppc4xx_enet.h>  #include <asm/processor.h> +#include <asm/gpio.h>  #include <ppc4xx.h>  #if defined(CONFIG_405GP)  || defined(CONFIG_405EP) @@ -98,118 +99,6 @@ DECLARE_GLOBAL_DATA_PTR;  # endif  #endif /* CFG_INIT_DCACHE_CS */ -#if defined(CFG_440_GPIO_TABLE) -gpio_param_s gpio_tab[GPIO_GROUP_MAX][GPIO_MAX] = CFG_440_GPIO_TABLE; - -void set_chip_gpio_configuration(gpio_param_s (*gpio_tab)[GPIO_GROUP_MAX][GPIO_MAX]) -{ -	unsigned char i=0, j=0, reg_offset = 0, gpio_core; -	unsigned long gpio_reg, gpio_core_add; - -	for (gpio_core=0; gpio_core<GPIO_GROUP_MAX; gpio_core++) { -		j = 0; -		reg_offset = 0; -		/* GPIO config of the GPIOs 0 to 31 */ -		for (i=0; i<GPIO_MAX; i++, j++) { -			if (i == GPIO_MAX/2) { -				reg_offset = 4; -				j = i-16; -			} - -			gpio_core_add = (*gpio_tab)[gpio_core][i].add; - -			if (((*gpio_tab)[gpio_core][i].in_out == GPIO_IN) || -			     ((*gpio_tab)[gpio_core][i].in_out == GPIO_BI)) { - -				switch ((*gpio_tab)[gpio_core][i].alt_nb) { -				case GPIO_SEL: -					break; - -				case GPIO_ALT1: -					gpio_reg = in32(GPIO_IS1(gpio_core_add+reg_offset)) -						& ~(GPIO_MASK >> (j*2)); -					gpio_reg = gpio_reg | (GPIO_IN_SEL >> (j*2)); -					out32(GPIO_IS1(gpio_core_add+reg_offset), gpio_reg); -					break; - -				case GPIO_ALT2: -					gpio_reg = in32(GPIO_IS2(gpio_core_add+reg_offset)) -						& ~(GPIO_MASK >> (j*2)); -					gpio_reg = gpio_reg | (GPIO_IN_SEL >> (j*2)); -					out32(GPIO_IS2(gpio_core_add+reg_offset), gpio_reg); -					break; - -				case GPIO_ALT3: -					gpio_reg = in32(GPIO_IS3(gpio_core_add+reg_offset)) -						& ~(GPIO_MASK >> (j*2)); -					gpio_reg = gpio_reg | (GPIO_IN_SEL >> (j*2)); -					out32(GPIO_IS3(gpio_core_add+reg_offset), gpio_reg); -					break; -				} -			} - -			if (((*gpio_tab)[gpio_core][i].in_out == GPIO_OUT) || -			     ((*gpio_tab)[gpio_core][i].in_out == GPIO_BI)) { - -				switch ((*gpio_tab)[gpio_core][i].alt_nb) { -				case GPIO_SEL: -					if (gpio_core == GPIO0) { -						gpio_reg = in32(GPIO0_TCR) | (0x80000000 >> (j)); -						out32(GPIO0_TCR, gpio_reg); -					} - -					if (gpio_core == GPIO1) { -						gpio_reg = in32(GPIO1_TCR) | (0x80000000 >> (j)); -						out32(GPIO1_TCR, gpio_reg); -					} - -					gpio_reg = in32(GPIO_OS(gpio_core_add+reg_offset)) -						& ~(GPIO_MASK >> (j*2)); -					out32(GPIO_OS(gpio_core_add+reg_offset), gpio_reg); -					gpio_reg = in32(GPIO_TS(gpio_core_add+reg_offset)) -						& ~(GPIO_MASK >> (j*2)); -					out32(GPIO_TS(gpio_core_add+reg_offset), gpio_reg); -					break; - -				case GPIO_ALT1: -					gpio_reg = in32(GPIO_OS(gpio_core_add+reg_offset)) -						& ~(GPIO_MASK >> (j*2)); -					gpio_reg = gpio_reg | (GPIO_ALT1_SEL >> (j*2)); -					out32(GPIO_OS(gpio_core_add+reg_offset), gpio_reg); -					gpio_reg = in32(GPIO_TS(gpio_core_add+reg_offset)) -						& ~(GPIO_MASK >> (j*2)); -					gpio_reg = gpio_reg | (GPIO_ALT1_SEL >> (j*2)); -					out32(GPIO_TS(gpio_core_add+reg_offset), gpio_reg); -					break; - -				case GPIO_ALT2: -					gpio_reg = in32(GPIO_OS(gpio_core_add+reg_offset)) -						& ~(GPIO_MASK >> (j*2)); -					gpio_reg = gpio_reg | (GPIO_ALT2_SEL >> (j*2)); -					out32(GPIO_OS(gpio_core_add+reg_offset), gpio_reg); -					gpio_reg = in32(GPIO_TS(gpio_core_add+reg_offset)) -						& ~(GPIO_MASK >> (j*2)); -					gpio_reg = gpio_reg | (GPIO_ALT2_SEL >> (j*2)); -					out32(GPIO_TS(gpio_core_add+reg_offset), gpio_reg); -					break; - -				case GPIO_ALT3: -					gpio_reg = in32(GPIO_OS(gpio_core_add+reg_offset)) -						& ~(GPIO_MASK >> (j*2)); -					gpio_reg = gpio_reg | (GPIO_ALT3_SEL >> (j*2)); -					out32(GPIO_OS(gpio_core_add+reg_offset), gpio_reg); -					gpio_reg = in32(GPIO_TS(gpio_core_add+reg_offset)) -						& ~(GPIO_MASK >> (j*2)); -					gpio_reg = gpio_reg | (GPIO_ALT3_SEL >> (j*2)); -					out32(GPIO_TS(gpio_core_add+reg_offset), gpio_reg); -					break; -				} -			} -		} -	} -} -#endif /* CFG_440_GPIO_TABLE */ -  /*   * Breath some life into the CPU...   * @@ -248,7 +137,7 @@ cpu_init_f (void)  #endif /* CONFIG_405EP */  #if defined(CFG_440_GPIO_TABLE) -	set_chip_gpio_configuration(&gpio_tab); +	gpio_set_chip_configuration();  #endif /* CFG_440_GPIO_TABLE */  	/* @@ -256,7 +145,8 @@ cpu_init_f (void)  	 */  #if (defined(CFG_EBC_PB0AP) && defined(CFG_EBC_PB0CR))  #if (defined(CONFIG_405GP) || defined(CONFIG_405CR) || \ -     defined(CONFIG_405EP) || defined(CONFIG_405)) +     defined(CONFIG_405EP) || defined(CONFIG_405EZ) || \ +     defined(CONFIG_405))  	/*  	 * Move the next instructions into icache, since these modify the flash  	 * we are running from! @@ -314,7 +204,7 @@ cpu_init_f (void)  #endif  #if defined (CFG_EBC_CFG) -	mtebc(epcr, CFG_EBC_CFG); +	mtebc(EBC0_CFG, CFG_EBC_CFG);  #endif  #if defined(CONFIG_WATCHDOG) |