On Fri, Mar 27, 2009 at 11:52 AM, Scott Coulter <[email protected]> wrote:
> I have an older version of U-boot for the board which is based of the > initial port that Kumar did (no MP support, etc.). With this version of > U-boot in flash, the "inn" "go" sequence works fine. The only thing > that I can think of is that the older U-boot has a different init > sequence. You're right, it does. I wrote the new code. :-) Previously, U-Boot programmed the same values into the FDR and DFSR registers, regardless of the input clock rate or whatever divider the SOC used. CONFIG_SYS_I2C_SPEED was ignored. The new code uses a lookup table to determine the best values for FDR and DFSR for a given input clock rate. It tries to take into account the actual divider that your specific SOC uses. This is done in function get_clocks(). It's possible that the divider is miscalculated. > Does anyone know of way to ensure that the I2C input clock is stable > before attempting I2C operations? What is the value of CONFIG_SYS_I2C_SPEED in your board header file? What values does function set_i2c_bus_speed() in fsl_i2c.c program into the FDR and DFSR registers? -- Timur Tabi Linux kernel developer at Freescale _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

