diff options
Diffstat (limited to 'cpu')
| -rw-r--r-- | cpu/mips/incaip_clock.c | 15 | ||||
| -rw-r--r-- | cpu/mpc5xxx/speed.c | 10 | 
2 files changed, 20 insertions, 5 deletions
diff --git a/cpu/mips/incaip_clock.c b/cpu/mips/incaip_clock.c index 27f060966..4ae06b72c 100644 --- a/cpu/mips/incaip_clock.c +++ b/cpu/mips/incaip_clock.c @@ -102,3 +102,18 @@ uint incaip_get_fpiclk(void)  	 break;     }  } + +int incaip_set_cpuclk(void) +{ +	uchar tmp[64]; +	ulong cpuclk; + +	if (getenv_r("cpuclk", tmp, sizeof(tmp)) > 0) +	{ +		cpuclk = simple_strtoul(tmp, NULL, 10) * 1000000; +		ebu_init(cpuclk); +		cgu_init(cpuclk); +	} + +	return 0; +} diff --git a/cpu/mpc5xxx/speed.c b/cpu/mpc5xxx/speed.c index cb27779a2..4f4e814e9 100644 --- a/cpu/mpc5xxx/speed.c +++ b/cpu/mpc5xxx/speed.c @@ -30,10 +30,10 @@  /* Bus-to-Core Multipliers */  static int bus2core[] = { -	0,  0,  0,  10, 20, 20, 25, 45, -	30, 55, 40, 50, 0,  60, 35, 0, -	30, 25, 65, 10, 70, 20, 75, 45, -	0,  55, 40, 50, 80, 60, 35, 0 +	3, 2, 2, 2, 4, 4, 5, 9, +	6, 11, 8, 10, 3, 12, 7, 0, +	6, 5, 13, 2, 14, 4, 15, 9, +	0, 11, 8, 10, 16, 12, 7, 0  };  /* ------------------------------------------------------------------------- */ @@ -62,7 +62,7 @@ int get_clocks (void)  	} else {  		gd->bus_clk = vco / 4;  	} -	gd->cpu_clk = gd->bus_clk * bus2core[val & 0x1f] / 10; +	gd->cpu_clk = gd->bus_clk * bus2core[val & 0x1f] / 2;  	val = *(vu_long *)MPC5XXX_CDM_CFG;  	if (val & (1 << 8)) {  |