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>
This commit is contained in:
Poonam Aggrwal 2010-06-22 12:50:46 +05:30 committed by Wolfgang Denk
parent c987f4753b
commit 38c38c344c
1 changed files with 13 additions and 3 deletions

View File

@ -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