It was just for testing purposes. I reverted back to the default config. Now what I need is clock stretching : according to the I2C norm, any slave is able to stretch the clock, as long as it wants : so when the master put the clock high, it must check that the clock line has really gone high (otherwise it means that the slave is holding the clock line down) and wait until it goes high.
(Note that the norm explicitely states that there is *no* timeout with clock stretching : a slave can stretch the clock for seconds if it wants/needs to do so) For me it is nothing than adding a line in your driver, but I see many timing comments, so I do not want to perturb your nice work. How can I add this check in your code ? Frédéric. Geert Vancompernolle a écrit : > > --- In [EMAIL PROTECTED] s.com <mailto:foxboard%40yahoogroups.com>, > Frédéric Feyel <[EMAIL PROTECTED] .> wrote: > > > > Hello, > > > > can you confirm that if I want to slow down (yes, slow down) the I2C > > driver, it is enough > > to modify the CLOCK_LOW_TIME and CLOCK_HIGH_TIME in > arch-v10/drivers/ i2c.c ? > > > > Thanks ! > > > > If you mean increasing the times, yes, should be enough. Since the > clock is used as the "sync" between master and slave, the clock is the > "dominating" pulse. > So, the bigger you take the times, the longer it will take before a > next clock pulse will be generated => slower I2C. > > But I2C is already very slow by default in that driver (some 60 kHz, > I've measured, maybe a bit more...), so why would you like to do that? > > Just curious... :-) > > Best rgds, > > --Geert > >
