diff options
| author | Poonam Aggrwal <poonam.aggrwal@freescale.com> | 2010-06-22 12:50:46 +0530 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2010-06-29 21:07:26 +0200 | 
| commit | 75997dc54f4ddbc4e9ed5dcebbe79951aa7128d1 (patch) | |
| tree | 46ac617b8cec40093826d0bd85f7fe2c9675c613 | |
| parent | 90b5bf211b85eee10c34cbeb907ce381142b7c99 (diff) | |
| download | olio-uboot-2014.01-75997dc54f4ddbc4e9ed5dcebbe79951aa7128d1.tar.xz olio-uboot-2014.01-75997dc54f4ddbc4e9ed5dcebbe79951aa7128d1.zip | |
85xx/p1_p2_rdb: Added RevD board version support
- Also modified the code to use io accessors.
Signed-off-by: Poonam Aggrwal <poonam.aggrwal@freescale.com>
Signed-off-by: Dipen Dudhat <dipen.dudhat@freescale.com>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
| -rw-r--r-- | board/freescale/p1_p2_rdb/p1_p2_rdb.c | 16 | 
1 files changed, 13 insertions, 3 deletions
| diff --git a/board/freescale/p1_p2_rdb/p1_p2_rdb.c b/board/freescale/p1_p2_rdb/p1_p2_rdb.c index 31cdf9ae4..fae31f28c 100644 --- a/board/freescale/p1_p2_rdb/p1_p2_rdb.c +++ b/board/freescale/p1_p2_rdb/p1_p2_rdb.c @@ -54,6 +54,7 @@ DECLARE_GLOBAL_DATA_PTR;  #define BOARDREV_MASK	0x10100000  #define BOARDREV_B	0x10100000  #define BOARDREV_C	0x00100000 +#define BOARDREV_D	0x00000000  #define SYSCLK_66	66666666  #define SYSCLK_50	50000000 @@ -64,7 +65,7 @@ unsigned long get_board_sys_clk(ulong dummy)  	volatile ccsr_gpio_t *pgpio = (void *)(CONFIG_SYS_MPC85xx_GPIO_ADDR);  	u32 val_gpdat, sysclk_gpio, board_rev_gpio; -	val_gpdat = pgpio->gpdat; +	val_gpdat = in_be32(&pgpio->gpdat);  	sysclk_gpio = val_gpdat & SYSCLK_MASK;  	board_rev_gpio = val_gpdat & BOARDREV_MASK;  	if (board_rev_gpio == BOARDREV_C) { @@ -77,6 +78,11 @@ unsigned long get_board_sys_clk(ulong dummy)  			return SYSCLK_66;  		else  			return SYSCLK_50; +	} else if (board_rev_gpio == BOARDREV_D) { +		if(sysclk_gpio == 0) +			return SYSCLK_66; +		else +			return SYSCLK_100;  	}  	return 0;  } @@ -100,12 +106,14 @@ int checkboard (void)  	char board_rev = 0;  	struct cpu_type *cpu; -	val_gpdat = pgpio->gpdat; +	val_gpdat = in_be32(&pgpio->gpdat);  	board_rev_gpio = val_gpdat & BOARDREV_MASK;  	if (board_rev_gpio == BOARDREV_C)  		board_rev = 'C';  	else if (board_rev_gpio == BOARDREV_B)  		board_rev = 'B'; +	else if (board_rev_gpio == BOARDREV_D) +		board_rev = 'D';  	else  		panic ("Unexpected Board REV %x detected!!\n", board_rev_gpio); @@ -159,6 +167,7 @@ int board_eth_init(bd_t *bis)  	volatile ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);  	int num = 0;  	char *tmp; +	u32 pordevsr;  	unsigned int vscfw_addr;  #ifdef CONFIG_TSEC1 @@ -171,7 +180,8 @@ int board_eth_init(bd_t *bis)  #endif  #ifdef CONFIG_TSEC3  	SET_STD_TSEC_INFO(tsec_info[num], 3); -	if (!(gur->pordevsr & MPC85xx_PORDEVSR_SGMII3_DIS)) +	pordevsr = in_be32(&gur->pordevsr); +	if (!(pordevsr & MPC85xx_PORDEVSR_SGMII3_DIS))  		tsec_info[num].flags |= TSEC_SGMII;  	num++;  #endif |