_ICR
__func__, isr, readl(_ICR(i2c)), readl(_IBMR(i2c)));
writel(readl(_ICR(i2c)) | ICR_SCLE, _ICR(i2c));
if (!(readl(_ICR(i2c)) & ICR_IUE))
readl(_ISR(i2c)), readl(_ICR(i2c)), readl(_IBMR(i2c)));
readl(_IBMR(i2c)), readl(_IDBR(i2c)), readl(_ICR(i2c)),
return !(readl(_ICR(i2c)) & ICR_SCLE);
unsigned long icr = readl(_ICR(i2c));
writel(icr, _ICR(i2c));
writel(readl(_ICR(i2c)) & ~(ICR_MA | ICR_START | ICR_STOP),
_ICR(i2c));
__func__, (long)jiffies, readl(_ISR(i2c)), readl(_ICR(i2c)), readl(_IBMR(i2c)));
writel(readl(_ICR(i2c)) | ICR_SCLE, _ICR(i2c));
__func__, (long)jiffies, readl(_ISR(i2c)), readl(_ICR(i2c)), readl(_IBMR(i2c)));
(readl(_ICR(i2c)) & ICR_SCLE) == 0) {
if (readl(_ICR(i2c)) & ICR_STOP) {
writel(readl(_ICR(i2c)) & ~ICR_STOP, _ICR(i2c));
writel(readl(_ICR(i2c)) & ~(ICR_STOP|ICR_ACKNAK|ICR_MA), _ICR(i2c));
writel(readl(_ICR(i2c)) & ~ICR_SCLE, _ICR(i2c));
dev_dbg(&i2c->adap.dev, "ICR now %08x, ISR %08x\n", readl(_ICR(i2c)), readl(_ISR(i2c)));
decode_ICR(readl(_ICR(i2c)));
writel(ICR_UR, _ICR(i2c));
writel(readl(_ICR(i2c)) & ~ICR_UR, _ICR(i2c));
writel(I2C_ICR_INIT | (i2c->fast_mode ? i2c->fm_mask : 0), _ICR(i2c));
writel(readl(_ICR(i2c)) | (i2c->high_mode ? i2c->hs_mask : 0), _ICR(i2c));
writel(readl(_ICR(i2c)) | ICR_SADIE | ICR_ALDIE | ICR_SSDIE, _ICR(i2c));
writel(readl(_ICR(i2c)) | ICR_IUE, _ICR(i2c));
writel(readl(_ICR(i2c)) | ICR_TB, _ICR(i2c)); /* allow next byte */
writel(readl(_ICR(i2c)) | ICR_TB, _ICR(i2c));
writel(readl(_ICR(i2c)) & ~(ICR_START|ICR_STOP), _ICR(i2c));
writel(readl(_ICR(i2c)) | ICR_TB, _ICR(i2c));
writel(readl(_ICR(i2c)) & ~ICR_SCLE, _ICR(i2c));
writel(readl(_ICR(i2c)) | ICR_TB, _ICR(i2c));
writel(readl(_ICR(i2c)) | ICR_TB | ICR_ACKNAK, _ICR(i2c));
writel(readl(_ICR(i2c)) & ~(ICR_START|ICR_STOP), _ICR(i2c));
writel(readl(_ICR(i2c)) | ICR_TB | ICR_ACKNAK, _ICR(i2c));
writel(readl(_ICR(i2c)) & ~ICR_SCLE, _ICR(i2c));
icr = readl(_ICR(i2c)) & ~(ICR_STOP | ICR_ALDIE);
writel(icr | ICR_START | ICR_TB, _ICR(i2c));
icr = readl(_ICR(i2c));
writel(icr, _ICR(i2c));
icr = readl(_ICR(i2c)) & ~(ICR_STOP | ICR_ALDIE);
writel(icr, _ICR(i2c));
u32 icr = readl(_ICR(i2c)) & ~(ICR_START|ICR_STOP|ICR_ACKNAK|ICR_TB);
writel(icr, _ICR(i2c));
u32 icr = readl(_ICR(i2c)) & ~(ICR_START|ICR_STOP|ICR_ACKNAK|ICR_TB);
writel(icr, _ICR(i2c));