diff options
Diffstat (limited to 'cpu/mpc85xx/speed.c')
| -rw-r--r-- | cpu/mpc85xx/speed.c | 15 | 
1 files changed, 14 insertions, 1 deletions
| diff --git a/cpu/mpc85xx/speed.c b/cpu/mpc85xx/speed.c index b0f47e042..286b6b28e 100644 --- a/cpu/mpc85xx/speed.c +++ b/cpu/mpc85xx/speed.c @@ -1,5 +1,5 @@  /* - * Copyright 2004 Freescale Semiconductor. + * Copyright 2004, 2007-2009 Freescale Semiconductor Inc.   * (C) Copyright 2003 Motorola Inc.   * Xianghua Xiao, (X.Xiao@motorola.com)   * @@ -40,6 +40,9 @@ void get_sys_info (sys_info_t * sysInfo)  	uint plat_ratio,e500_ratio,half_freqSystemBus;  	uint lcrr_div;  	int i; +#ifdef CONFIG_QE +	u32 qe_ratio; +#endif  	plat_ratio = (gur->porpllsr) & 0x0000003e;  	plat_ratio >>= 1; @@ -65,6 +68,12 @@ void get_sys_info (sys_info_t * sysInfo)  	}  #endif +#ifdef CONFIG_QE +	qe_ratio = ((gur->porpllsr) & MPC85xx_PORPLLSR_QE_RATIO) +			>> MPC85xx_PORPLLSR_QE_RATIO_SHIFT; +	sysInfo->freqQE = qe_ratio * CONFIG_SYS_CLK_FREQ; +#endif +  #if defined(CONFIG_SYS_LBC_LCRR)  	/* We will program LCRR to this value later */  	lcrr_div = CONFIG_SYS_LBC_LCRR & LCRR_CLKDIV; @@ -112,6 +121,10 @@ int get_clocks (void)  	gd->mem_clk = sys_info.freqDDRBus;  	gd->lbc_clk = sys_info.freqLocalBus; +#ifdef CONFIG_QE +	gd->qe_clk = sys_info.freqQE; +	gd->brg_clk = gd->qe_clk / 2; +#endif  	/*  	 * The base clock for I2C depends on the actual SOC.  Unfortunately,  	 * there is no pattern that can be used to determine the frequency, so |