ppc: Move clock fields to arch_global_data

Move vco_out, cpm_clk, scc_clk, brg_clk into arch_global_data and tidy
up. Leave pci_clk on its own since this should really depend only on
CONFIG_PCI and not any particular chip type.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2012-12-13 20:48:46 +00:00 committed by Tom Rini
parent 9fb23624a6
commit 748cd0591a
4 changed files with 19 additions and 15 deletions

View file

@ -135,17 +135,17 @@ int get_clocks (void)
(get_pvr () == PVR_8260_HIP7R1) || (get_pvr () == PVR_8260_HIP7R1) ||
(get_pvr () == PVR_8260_HIP7RA)) { (get_pvr () == PVR_8260_HIP7RA)) {
pllmf = (scmr & SCMR_PLLMF_MSKH7) >> SCMR_PLLMF_SHIFT; pllmf = (scmr & SCMR_PLLMF_MSKH7) >> SCMR_PLLMF_SHIFT;
gd->vco_out = clkin * (pllmf + 1); gd->arch.vco_out = clkin * (pllmf + 1);
} else { /* HiP3, HiP4 */ } else { /* HiP3, HiP4 */
pllmf = (scmr & SCMR_PLLMF_MSK) >> SCMR_PLLMF_SHIFT; pllmf = (scmr & SCMR_PLLMF_MSK) >> SCMR_PLLMF_SHIFT;
plldf = (scmr & SCMR_PLLDF) ? 1 : 0; plldf = (scmr & SCMR_PLLDF) ? 1 : 0;
gd->vco_out = (clkin * 2 * (pllmf + 1)) / (plldf + 1); gd->arch.vco_out = (clkin * 2 * (pllmf + 1)) / (plldf + 1);
} }
gd->cpm_clk = gd->vco_out / 2; gd->arch.cpm_clk = gd->arch.vco_out / 2;
gd->bus_clk = clkin; gd->bus_clk = clkin;
gd->scc_clk = gd->vco_out / 4; gd->arch.scc_clk = gd->arch.vco_out / 4;
gd->arch.brg_clk = gd->vco_out / (1 << (2 * (dfbrg + 1))); gd->arch.brg_clk = gd->arch.vco_out / (1 << (2 * (dfbrg + 1)));
if (cp->b2c_mult > 0) { if (cp->b2c_mult > 0) {
gd->cpu_clk = (clkin * cp->b2c_mult) / 2; gd->cpu_clk = (clkin * cp->b2c_mult) / 2;
@ -173,7 +173,7 @@ int get_clocks (void)
pci_div = pcidf + 1; pci_div = pcidf + 1;
} }
gd->pci_clk = (gd->cpm_clk * 2) / pci_div; gd->pci_clk = (gd->arch.cpm_clk * 2) / pci_div;
} }
#endif #endif
@ -231,10 +231,10 @@ int prt_8260_clks (void)
plldf, pllmf, pcidf); plldf, pllmf, pcidf);
printf (" - vco_out %10ld, scc_clk %10ld, brg_clk %10ld\n", printf (" - vco_out %10ld, scc_clk %10ld, brg_clk %10ld\n",
gd->vco_out, gd->scc_clk, gd->arch.brg_clk); gd->arch.vco_out, gd->arch.scc_clk, gd->arch.brg_clk);
printf (" - cpu_clk %10ld, cpm_clk %10ld, bus_clk %10ld\n", printf (" - cpu_clk %10ld, cpm_clk %10ld, bus_clk %10ld\n",
gd->cpu_clk, gd->cpm_clk, gd->bus_clk); gd->cpu_clk, gd->arch.cpm_clk, gd->bus_clk);
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
printf (" - pci_clk %10ld\n", gd->pci_clk); printf (" - pci_clk %10ld\n", gd->pci_clk);
#endif #endif

View file

@ -435,10 +435,10 @@ int get_clocks (void)
#endif /* defined(CONFIG_FSL_ESDHC) */ #endif /* defined(CONFIG_FSL_ESDHC) */
#if defined(CONFIG_CPM2) #if defined(CONFIG_CPM2)
gd->vco_out = 2*sys_info.freqSystemBus; gd->arch.vco_out = 2*sys_info.freqSystemBus;
gd->cpm_clk = gd->vco_out / 2; gd->arch.cpm_clk = gd->arch.vco_out / 2;
gd->scc_clk = gd->vco_out / 4; gd->arch.scc_clk = gd->arch.vco_out / 4;
gd->arch.brg_clk = gd->vco_out / (1 << (2 * (dfbrg + 1))); gd->arch.brg_clk = gd->arch.vco_out / (1 << (2 * (dfbrg + 1)));
#endif #endif
if(gd->cpu_clk != 0) return (0); if(gd->cpu_clk != 0) return (0);

View file

@ -33,6 +33,10 @@ struct arch_global_data {
unsigned long brg_clk; unsigned long brg_clk;
#endif #endif
#if defined(CONFIG_CPM2) #if defined(CONFIG_CPM2)
/* There are many clocks on the MPC8260 - see page 9-5 */
unsigned long vco_out;
unsigned long cpm_clk;
unsigned long scc_clk;
unsigned long brg_clk; unsigned long brg_clk;
#endif #endif
#if defined(CONFIG_QE) #if defined(CONFIG_QE)

View file

@ -580,10 +580,10 @@ void board_init_f(ulong bootflag)
bd->bi_intfreq = gd->cpu_clk; /* Internal Freq, in Hz */ bd->bi_intfreq = gd->cpu_clk; /* Internal Freq, in Hz */
bd->bi_busfreq = gd->bus_clk; /* Bus Freq, in Hz */ bd->bi_busfreq = gd->bus_clk; /* Bus Freq, in Hz */
#if defined(CONFIG_CPM2) #if defined(CONFIG_CPM2)
bd->bi_cpmfreq = gd->cpm_clk; bd->bi_cpmfreq = gd->arch.cpm_clk;
bd->bi_brgfreq = gd->arch.brg_clk; bd->bi_brgfreq = gd->arch.brg_clk;
bd->bi_sccfreq = gd->scc_clk; bd->bi_sccfreq = gd->arch.scc_clk;
bd->bi_vco = gd->vco_out; bd->bi_vco = gd->arch.vco_out;
#endif /* CONFIG_CPM2 */ #endif /* CONFIG_CPM2 */
#if defined(CONFIG_MPC512X) #if defined(CONFIG_MPC512X)
bd->bi_ipsfreq = gd->ips_clk; bd->bi_ipsfreq = gd->ips_clk;