From: Jeffrey Mann Date: Thu, 12 Apr 2007 12:15:59 +0000 (+0200) Subject: ppc4xx: Fix i2c divisor calcularion for PPC4xx X-Git-Tag: v1.3.0-rc1~113^2~7 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=2ad3aba01d37b72e7c957b07e102fccd64fe6d13;p=u-boot ppc4xx: Fix i2c divisor calcularion for PPC4xx This patch fixes changes the i2c_init(...) function to use the function get_OPB_freq() rather than calculating the OPB speed by sysInfo.freqPLB/sysInfo.pllOpbDiv. The get_OPB_freq() function is specific per processor. The prior method was not and so was calculating the wrong speed for some PPC4xx processors. Signed-off-by: Jeffrey Mann Signed-off-by: Stefan Roese --- diff --git a/cpu/ppc4xx/i2c.c b/cpu/ppc4xx/i2c.c index 8f4da8621d..47c264e222 100644 --- a/cpu/ppc4xx/i2c.c +++ b/cpu/ppc4xx/i2c.c @@ -91,7 +91,6 @@ static void _i2c_bus_reset(void) void i2c_init(int speed, int slaveadd) { - sys_info_t sysInfo; unsigned long freqOPB; int val, divisor; int bus; @@ -124,8 +123,7 @@ void i2c_init(int speed, int slaveadd) /* Clock divide Register */ /* get OPB frequency */ - get_sys_info(&sysInfo); - freqOPB = sysInfo.freqPLB / sysInfo.pllOpbDiv; + freqOPB = get_OPB_freq(); /* set divisor according to freqOPB */ divisor = (freqOPB - 1) / 10000000; if (divisor == 0)