Loading drivers/i2c/busses/i2c-mpc.c +17 −14 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ #define CSR_RXAK 0x01 struct mpc_i2c { struct device *dev; void __iomem *base; u32 interrupt; wait_queue_head_t queue; Loading Loading @@ -104,7 +105,7 @@ static int i2c_wait(struct mpc_i2c *i2c, unsigned timeout, int writing) while (!(readb(i2c->base + MPC_I2C_SR) & CSR_MIF)) { schedule(); if (time_after(jiffies, orig_jiffies + timeout)) { pr_debug("I2C: timeout\n"); dev_dbg(i2c->dev, "timeout\n"); writeccr(i2c, 0); result = -EIO; break; Loading @@ -118,7 +119,7 @@ static int i2c_wait(struct mpc_i2c *i2c, unsigned timeout, int writing) (i2c->interrupt & CSR_MIF), timeout); if (unlikely(!(i2c->interrupt & CSR_MIF))) { pr_debug("I2C: wait timeout\n"); dev_dbg(i2c->dev, "wait timeout\n"); writeccr(i2c, 0); result = -ETIMEDOUT; } Loading @@ -131,17 +132,17 @@ static int i2c_wait(struct mpc_i2c *i2c, unsigned timeout, int writing) return result; if (!(x & CSR_MCF)) { pr_debug("I2C: unfinished\n"); dev_dbg(i2c->dev, "unfinished\n"); return -EIO; } if (x & CSR_MAL) { pr_debug("I2C: MAL\n"); dev_dbg(i2c->dev, "MAL\n"); return -EIO; } if (writing && (x & CSR_RXAK)) { pr_debug("I2C: No RXAK\n"); dev_dbg(i2c->dev, "No RXAK\n"); /* generate stop */ writeccr(i2c, CCR_MEN); return -EIO; Loading Loading @@ -263,12 +264,12 @@ static int mpc_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num) /* Allow bus up to 1s to become not busy */ while (readb(i2c->base + MPC_I2C_SR) & CSR_MBB) { if (signal_pending(current)) { pr_debug("I2C: Interrupted\n"); dev_dbg(i2c->dev, "Interrupted\n"); writeccr(i2c, 0); return -EINTR; } if (time_after(jiffies, orig_jiffies + HZ)) { pr_debug("I2C: timeout\n"); dev_dbg(i2c->dev, "timeout\n"); if (readb(i2c->base + MPC_I2C_SR) == (CSR_MCF | CSR_MBB | CSR_RXAK)) mpc_i2c_fixup(i2c); Loading @@ -279,7 +280,8 @@ static int mpc_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num) for (i = 0; ret >= 0 && i < num; i++) { pmsg = &msgs[i]; pr_debug("Doing %s %d bytes to 0x%02x - %d of %d messages\n", dev_dbg(i2c->dev, "Doing %s %d bytes to 0x%02x - %d of %d messages\n", pmsg->flags & I2C_M_RD ? "read" : "write", pmsg->len, pmsg->addr, i + 1, num); if (pmsg->flags & I2C_M_RD) Loading Loading @@ -320,6 +322,8 @@ static int __devinit fsl_i2c_probe(struct of_device *op, if (!i2c) return -ENOMEM; i2c->dev = &op->dev; /* for debug and error output */ if (of_get_property(op->node, "dfsrr", NULL)) i2c->flags |= FSL_I2C_DEV_SEPARATE_DFSRR; Loading @@ -331,7 +335,7 @@ static int __devinit fsl_i2c_probe(struct of_device *op, i2c->base = of_iomap(op->node, 0); if (!i2c->base) { printk(KERN_ERR "i2c-mpc - failed to map controller\n"); dev_err(i2c->dev, "failed to map controller\n"); result = -ENOMEM; goto fail_map; } Loading @@ -341,8 +345,7 @@ static int __devinit fsl_i2c_probe(struct of_device *op, result = request_irq(i2c->irq, mpc_i2c_isr, IRQF_SHARED, "i2c-mpc", i2c); if (result < 0) { printk(KERN_ERR "i2c-mpc - failed to attach interrupt\n"); dev_err(i2c->dev, "failed to attach interrupt\n"); goto fail_request; } } Loading @@ -357,7 +360,7 @@ static int __devinit fsl_i2c_probe(struct of_device *op, result = i2c_add_adapter(&i2c->adap); if (result < 0) { printk(KERN_ERR "i2c-mpc - failed to add adapter\n"); dev_err(i2c->dev, "failed to add adapter\n"); goto fail_add; } of_register_i2c_devices(&i2c->adap, op->node); Loading Loading
drivers/i2c/busses/i2c-mpc.c +17 −14 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ #define CSR_RXAK 0x01 struct mpc_i2c { struct device *dev; void __iomem *base; u32 interrupt; wait_queue_head_t queue; Loading Loading @@ -104,7 +105,7 @@ static int i2c_wait(struct mpc_i2c *i2c, unsigned timeout, int writing) while (!(readb(i2c->base + MPC_I2C_SR) & CSR_MIF)) { schedule(); if (time_after(jiffies, orig_jiffies + timeout)) { pr_debug("I2C: timeout\n"); dev_dbg(i2c->dev, "timeout\n"); writeccr(i2c, 0); result = -EIO; break; Loading @@ -118,7 +119,7 @@ static int i2c_wait(struct mpc_i2c *i2c, unsigned timeout, int writing) (i2c->interrupt & CSR_MIF), timeout); if (unlikely(!(i2c->interrupt & CSR_MIF))) { pr_debug("I2C: wait timeout\n"); dev_dbg(i2c->dev, "wait timeout\n"); writeccr(i2c, 0); result = -ETIMEDOUT; } Loading @@ -131,17 +132,17 @@ static int i2c_wait(struct mpc_i2c *i2c, unsigned timeout, int writing) return result; if (!(x & CSR_MCF)) { pr_debug("I2C: unfinished\n"); dev_dbg(i2c->dev, "unfinished\n"); return -EIO; } if (x & CSR_MAL) { pr_debug("I2C: MAL\n"); dev_dbg(i2c->dev, "MAL\n"); return -EIO; } if (writing && (x & CSR_RXAK)) { pr_debug("I2C: No RXAK\n"); dev_dbg(i2c->dev, "No RXAK\n"); /* generate stop */ writeccr(i2c, CCR_MEN); return -EIO; Loading Loading @@ -263,12 +264,12 @@ static int mpc_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num) /* Allow bus up to 1s to become not busy */ while (readb(i2c->base + MPC_I2C_SR) & CSR_MBB) { if (signal_pending(current)) { pr_debug("I2C: Interrupted\n"); dev_dbg(i2c->dev, "Interrupted\n"); writeccr(i2c, 0); return -EINTR; } if (time_after(jiffies, orig_jiffies + HZ)) { pr_debug("I2C: timeout\n"); dev_dbg(i2c->dev, "timeout\n"); if (readb(i2c->base + MPC_I2C_SR) == (CSR_MCF | CSR_MBB | CSR_RXAK)) mpc_i2c_fixup(i2c); Loading @@ -279,7 +280,8 @@ static int mpc_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num) for (i = 0; ret >= 0 && i < num; i++) { pmsg = &msgs[i]; pr_debug("Doing %s %d bytes to 0x%02x - %d of %d messages\n", dev_dbg(i2c->dev, "Doing %s %d bytes to 0x%02x - %d of %d messages\n", pmsg->flags & I2C_M_RD ? "read" : "write", pmsg->len, pmsg->addr, i + 1, num); if (pmsg->flags & I2C_M_RD) Loading Loading @@ -320,6 +322,8 @@ static int __devinit fsl_i2c_probe(struct of_device *op, if (!i2c) return -ENOMEM; i2c->dev = &op->dev; /* for debug and error output */ if (of_get_property(op->node, "dfsrr", NULL)) i2c->flags |= FSL_I2C_DEV_SEPARATE_DFSRR; Loading @@ -331,7 +335,7 @@ static int __devinit fsl_i2c_probe(struct of_device *op, i2c->base = of_iomap(op->node, 0); if (!i2c->base) { printk(KERN_ERR "i2c-mpc - failed to map controller\n"); dev_err(i2c->dev, "failed to map controller\n"); result = -ENOMEM; goto fail_map; } Loading @@ -341,8 +345,7 @@ static int __devinit fsl_i2c_probe(struct of_device *op, result = request_irq(i2c->irq, mpc_i2c_isr, IRQF_SHARED, "i2c-mpc", i2c); if (result < 0) { printk(KERN_ERR "i2c-mpc - failed to attach interrupt\n"); dev_err(i2c->dev, "failed to attach interrupt\n"); goto fail_request; } } Loading @@ -357,7 +360,7 @@ static int __devinit fsl_i2c_probe(struct of_device *op, result = i2c_add_adapter(&i2c->adap); if (result < 0) { printk(KERN_ERR "i2c-mpc - failed to add adapter\n"); dev_err(i2c->dev, "failed to add adapter\n"); goto fail_add; } of_register_i2c_devices(&i2c->adap, op->node); Loading