Lines Matching refs:ipd
270 static void rk3x_i2c_handle_start(struct rk3x_i2c *i2c, unsigned int ipd) in rk3x_i2c_handle_start() argument
272 if (!(ipd & REG_INT_START)) { in rk3x_i2c_handle_start()
274 dev_warn(i2c->dev, "unexpected irq in START: 0x%x\n", ipd); in rk3x_i2c_handle_start()
298 static void rk3x_i2c_handle_write(struct rk3x_i2c *i2c, unsigned int ipd) in rk3x_i2c_handle_write() argument
300 if (!(ipd & REG_INT_MBTF)) { in rk3x_i2c_handle_write()
302 dev_err(i2c->dev, "unexpected irq in WRITE: 0x%x\n", ipd); in rk3x_i2c_handle_write()
317 static void rk3x_i2c_handle_read(struct rk3x_i2c *i2c, unsigned int ipd) in rk3x_i2c_handle_read() argument
325 if (!(ipd & REG_INT_MBRF)) in rk3x_i2c_handle_read()
351 static void rk3x_i2c_handle_stop(struct rk3x_i2c *i2c, unsigned int ipd) in rk3x_i2c_handle_stop() argument
355 if (!(ipd & REG_INT_STOP)) { in rk3x_i2c_handle_stop()
357 dev_err(i2c->dev, "unexpected irq in STOP: 0x%x\n", ipd); in rk3x_i2c_handle_stop()
380 unsigned int ipd; in rk3x_i2c_irq() local
384 ipd = i2c_readl(i2c, REG_IPD); in rk3x_i2c_irq()
386 dev_warn(i2c->dev, "irq in STATE_IDLE, ipd = 0x%x\n", ipd); in rk3x_i2c_irq()
391 dev_dbg(i2c->dev, "IRQ: state %d, ipd: %x\n", i2c->state, ipd); in rk3x_i2c_irq()
394 ipd &= ~(REG_INT_BRF | REG_INT_BTF); in rk3x_i2c_irq()
396 if (ipd & REG_INT_NAKRCV) { in rk3x_i2c_irq()
404 ipd &= ~REG_INT_NAKRCV; in rk3x_i2c_irq()
411 if ((ipd & REG_INT_ALL) == 0) in rk3x_i2c_irq()
416 rk3x_i2c_handle_start(i2c, ipd); in rk3x_i2c_irq()
419 rk3x_i2c_handle_write(i2c, ipd); in rk3x_i2c_irq()
422 rk3x_i2c_handle_read(i2c, ipd); in rk3x_i2c_irq()
425 rk3x_i2c_handle_stop(i2c, ipd); in rk3x_i2c_irq()