Dear Shawn Guo, > On Mon, Jun 11, 2012 at 12:53:17PM +0200, Marek Vasut wrote: > > Ok, then can you please try asking them how to exactly compute the values > > in timing0-timing2 registers? So we don't have to hardcode them like > > it's done now? > > It's determined I2C clock waveform you want to get. See i.MX28 RM > "Figure 27-2. I2C Data and Clock Timing" and "Figure 27-3. I2C Data > and Clock Timing Generation". > > For example, if you run 12MHz APBX clock, and set HIGH_COUNT to 60, > the I2C clock will have 60 cycle x (1/12MHz) = 5us time for its high > period. Ok, I think I see the equation. But what still doesn't make sense is how you got to the value of 48 (RCV_COUNT at 95kHz). And how you got 120 for HIGH_COUNT and 128 for LOW_COUNT? Were these values based on some measurements, making them the best possible values? Won't computation of slightly different values affect reliability of this driver? Best regards, Marek Vasut -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html