Messages in this thread | | | Date | Mon, 19 Aug 2013 21:22:46 +0900 | From | Shinya Kuribayashi <> | Subject | Re: [PATCH 1/2] i2c-designware: make *CNT values configurable |
| |
Hi,
On 8/19/13 8:36 PM, Mika Westerberg wrote: > On Fri, Aug 16, 2013 at 11:15:12AM +0900, Shinya Kuribayashi wrote: >>> Actually, the I2C specification clearly defines f_SCL;max (and thus >>> implies t_SCL;min), both in the tables and the timing diagrams. Why can >>> we ignore this constraint while having to meet all the others? >> >> If we meet t_r, t_f, t_HIGH, t_LOW (and t_HIGH in this DW case), >> f_SCL;max will be met by itself. And again, all I2C master and >> slave devices in the bus don't care about f_SCL; what they do care >> are t_f, t_r, t_HIGH, t_LOW, and so on. That's why I'm saying >> f_SCL is pointless and has no value for HCNT/LCNT calculations. > > One thing that comes to mind regarding the bus speed is that even if we > have all the minimal timing requirements met we still prefer resulting bus > speeds closer to 400kHz than 315.41kHz for the reasons that we get more > data transferred that way, no?
That depends I2C slave devices in the bus in your target systems. As long as your slave devices can detect START/STOP conditions and recognize SDA/SCL transitions properly, that should be Ok (you can use HCNT/LCNT settings for 400 kHz without having all the minimal timing requirements met).
My comments above was a reply to Christian's snippet code and how to treat f_SCL;mas constraints, and unrelated to your case in question. I'm for having a way to override HCNT/LCNT values as said before, and that should nicely work for you.
Shinya
| |