On Tue, Apr 09, 2013 at 11:28:57AM +0200, Wolfram Sang wrote: > On Tue, Apr 09, 2013 at 12:28:36PM +0300, Mika Westerberg wrote: > > On Tue, Apr 09, 2013 at 11:09:14AM +0200, Wolfram Sang wrote: > > > > > > > +static void __i2c_dw_enable(struct dw_i2c_dev *dev, bool enable) > > > > +{ > > > > + int timeout = 100; > > > > + > > > > + do { > > > > + dw_writel(dev, enable, DW_IC_ENABLE); > > > > + if ((dw_readl(dev, DW_IC_ENABLE_STATUS) & 1) == enable) > > > > + return; > > > > + > > > > + usleep_range(25, 250); > > > > > > This would wait 25ms max. Is there a timeout value specified in the docs? > > > > The datasheet says something like: > > > > 1. Define a timer interval (t_i2c_poll) equal 10 times the highest > > signaling period. For 400kHz this is 25us. > > > > 2. Define max timeout parameter, MAX_T_POLL_COUNT, such that if any > > repeated operation exeeds this maximum, an error is reported. > > > > In this case I have: > > > > t_i2c_poll = 25 (to 250 us) > > MAX_T_POLL_COUNT = 100 > > Maybe worth a comment? I'll add it in the next revision. > Other than that, the series looks fine to me. Thanks! -- 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