diff options
Diffstat (limited to 'cpu/mpc8260/speed.c')
| -rw-r--r-- | cpu/mpc8260/speed.c | 47 | 
1 files changed, 27 insertions, 20 deletions
| diff --git a/cpu/mpc8260/speed.c b/cpu/mpc8260/speed.c index 38cd0d9a7..8d280fbb7 100644 --- a/cpu/mpc8260/speed.c +++ b/cpu/mpc8260/speed.c @@ -162,6 +162,30 @@ int get_clocks (void)  		gd->cpu_clk = clkin;  	} +#ifdef CONFIG_PCI +	gd->pci_clk = clkin; + +	if (sccr & SCCR_PCI_MODE) { +		uint pci_div; +		uint pcidf = (sccr & SCCR_PCIDF_MSK) >> SCCR_PCIDF_SHIFT; + +		if (sccr & SCCR_PCI_MODCK) { +			pci_div = 2; +			if (pcidf == 9) { +				pci_div *= 5; +			} else if (pcidf == 0xB) { +				pci_div *= 6; +			} else { +				pci_div *= (pcidf + 1); +			} +		} else { +			pci_div = pcidf + 1; +		} + +		gd->pci_clk = (gd->cpm_clk * 2) / pci_div; +	} +#endif +  	return (0);  } @@ -220,26 +244,9 @@ int prt_8260_clks (void)  	printf (" - cpu_clk %10ld, cpm_clk %10ld, bus_clk %10ld\n",  			gd->cpu_clk, gd->cpm_clk, gd->bus_clk); - -	if (sccr & SCCR_PCI_MODE) { -		uint pci_div; -		uint pcidf = (sccr & SCCR_PCIDF_MSK) >> SCCR_PCIDF_SHIFT; - -		if (sccr & SCCR_PCI_MODCK) { -			pci_div = 2; -			if (pcidf == 9) { -				pci_div *= 5; -			} else if (pcidf == 0xB) { -				pci_div *= 6; -			} else { -				pci_div *= (pcidf + 1); -			} -		} else { -			pci_div = pcidf + 1; -		} - -		printf (" - pci_clk %10ld\n", (gd->cpm_clk * 2) / pci_div); -	} +#ifdef CONFIG_PCI +	printf (" - pci_clk %10ld\n", gd->pci_clk); +#endif  	putc ('\n');  	return (0); |