X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fppc%2Fsyslib%2Fibm440gp_common.c;h=0d6be2d6dd6794c507789bd8c7e8fc7f9e37dc0c;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=c7a9949ea056abfe812baa0fb76c6ba7d47b81c6;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/arch/ppc/syslib/ibm440gp_common.c b/arch/ppc/syslib/ibm440gp_common.c index c7a9949ea..0d6be2d6d 100644 --- a/arch/ppc/syslib/ibm440gp_common.c +++ b/arch/ppc/syslib/ibm440gp_common.c @@ -24,13 +24,14 @@ /* * Calculate 440GP clocks */ -void __init ibm440gp_get_clocks(struct ibm440gp_clocks* p, +void __init ibm440gp_get_clocks(struct ibm44x_clocks* p, unsigned int sys_clk, unsigned int ser_clk) { u32 cpc0_sys0 = mfdcr(DCRN_CPC0_SYS0); u32 cpc0_cr0 = mfdcr(DCRN_CPC0_CR0); - u32 opdv, epdv; + u32 opdv = ((cpc0_sys0 >> 10) & 0x3) + 1; + u32 epdv = ((cpc0_sys0 >> 8) & 0x3) + 1; if (cpc0_sys0 & 0x2){ /* Bypass system PLL */ @@ -60,19 +61,16 @@ void __init ibm440gp_get_clocks(struct ibm440gp_clocks* p, p->plb = vco / fwdvb; } - opdv = ((cpc0_sys0 >> 10) & 0x3) + 1; - epdv = ((cpc0_sys0 >> 8) & 0x3) + 1; - p->opb = p->plb / opdv; p->ebc = p->opb / epdv; if (cpc0_cr0 & 0x00400000){ /* External UART clock */ - p->uart = ser_clk; + p->uart0 = p->uart1 = ser_clk; } else { /* Internal UART clock */ u32 uart_div = ((cpc0_cr0 >> 16) & 0x1f) + 1; - p->uart = p->plb / uart_div; + p->uart0 = p->uart1 = p->plb / uart_div; } }