From: Danielle Costantino <danielle.costantino-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
Subject: [PATCH] i2c: mpc: add register documentation to Freescale I2C driver
Date: Sat, 29 Nov 2014 13:58:42 -0800 [thread overview]
Message-ID: <547A4192.30102@gmail.com> (raw)
i2c: mpc: add register documentation to Freescale I2C driver
return -ETIMEDOUT for all time-out error conditions and warn on
arbitration lost.
Signed-off-by: Danielle Costantino <danielle.costantino-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index 4c5d7d9..28d9245 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -36,26 +36,31 @@
#define MPC_I2C_CLOCK_LEGACY 0
#define MPC_I2C_CLOCK_PRESERVE (~0U)
-#define MPC_I2C_FDR 0x04
-#define MPC_I2C_CR 0x08
-#define MPC_I2C_SR 0x0c
-#define MPC_I2C_DR 0x10
-#define MPC_I2C_DFSRR 0x14
+#define MPC_I2C_ADR 0x00 /* I2C address register */
+#define MPC_I2C_FDR 0x04 /* I2C frequency divider register */
+#define MPC_I2C_CR 0x08 /* I2C control register */
+#define MPC_I2C_SR 0x0C /* I2C status register */
+#define MPC_I2C_DR 0x10 /* I2C data register */
+#define MPC_I2C_DFSRR 0x14 /* I2C digital filter sampling rate
register */
-#define CCR_MEN 0x80
-#define CCR_MIEN 0x40
-#define CCR_MSTA 0x20
-#define CCR_MTX 0x10
-#define CCR_TXAK 0x08
-#define CCR_RSTA 0x04
+/* I2C Control Register (MPC_I2C_CR): */
+#define CCR_MEN 0x80 /* Module enable */
+#define CCR_MIEN 0x40 /* Module interrupt enable */
+#define CCR_MSTA 0x20 /* Master/slave mode START */
+#define CCR_MTX 0x10 /* Transmit/receive mode select */
+#define CCR_TXAK 0x08 /* Transfer acknowledge */
+#define CCR_RSTA 0x04 /* Repeated START */
+#define CCR_BCST 0x01 /* Broadcast */
-#define CSR_MCF 0x80
-#define CSR_MAAS 0x40
-#define CSR_MBB 0x20
-#define CSR_MAL 0x10
-#define CSR_SRW 0x04
-#define CSR_MIF 0x02
-#define CSR_RXAK 0x01
+/* I2C Status Register (MPC_I2C_SR): */
+#define CSR_MCF 0x80 /* Data transfer */
+#define CSR_MAAS 0x40 /* Addressed as a slave */
+#define CSR_MBB 0x20 /* Bus busy */
+#define CSR_MAL 0x10 /* Arbitration lost */
+#define CSR_BCSTM 0x08 /* Broadcast match */
+#define CSR_SRW 0x04 /* Slave read/write */
+#define CSR_MIF 0x02 /* Module interrupt */
+#define CSR_RXAK 0x01 /* Received acknowledge */
struct mpc_i2c {
struct device *dev;
@@ -158,12 +163,12 @@
return result;
if (!(cmd_err & CSR_MCF)) {
- dev_dbg(i2c->dev, "unfinished\n");
+ dev_warn(i2c->dev, "unfinished\n");
return -EIO;
}
if (cmd_err & CSR_MAL) {
- dev_dbg(i2c->dev, "MAL\n");
+ dev_err(i2c->dev, "Arbitration lost\n");
return -EAGAIN;
}
@@ -554,7 +559,7 @@
i2c->base + MPC_I2C_SR);
mpc_i2c_fixup(i2c);
}
- return -EIO;
+ return -ETIMEDOUT;
}
schedule();
}
@@ -590,7 +595,7 @@
i2c->base + MPC_I2C_SR);
mpc_i2c_fixup(i2c);
}
- return -EIO;
+ return -ETIMEDOUT;
}
cond_resched();
}
WARNING: multiple messages have this Message-ID (diff)
From: Danielle Costantino <danielle.costantino@gmail.com>
To: Wolfram Sang <wsa@the-dreams.de>
Cc: linuxppc-dev@lists.ozlabs.org, linux-i2c@vger.kernel.org
Subject: [PATCH] i2c: mpc: add register documentation to Freescale I2C driver
Date: Sat, 29 Nov 2014 13:58:42 -0800 [thread overview]
Message-ID: <547A4192.30102@gmail.com> (raw)
i2c: mpc: add register documentation to Freescale I2C driver
return -ETIMEDOUT for all time-out error conditions and warn on
arbitration lost.
Signed-off-by: Danielle Costantino <danielle.costantino@gmail.com>
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index 4c5d7d9..28d9245 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -36,26 +36,31 @@
#define MPC_I2C_CLOCK_LEGACY 0
#define MPC_I2C_CLOCK_PRESERVE (~0U)
-#define MPC_I2C_FDR 0x04
-#define MPC_I2C_CR 0x08
-#define MPC_I2C_SR 0x0c
-#define MPC_I2C_DR 0x10
-#define MPC_I2C_DFSRR 0x14
+#define MPC_I2C_ADR 0x00 /* I2C address register */
+#define MPC_I2C_FDR 0x04 /* I2C frequency divider register */
+#define MPC_I2C_CR 0x08 /* I2C control register */
+#define MPC_I2C_SR 0x0C /* I2C status register */
+#define MPC_I2C_DR 0x10 /* I2C data register */
+#define MPC_I2C_DFSRR 0x14 /* I2C digital filter sampling rate
register */
-#define CCR_MEN 0x80
-#define CCR_MIEN 0x40
-#define CCR_MSTA 0x20
-#define CCR_MTX 0x10
-#define CCR_TXAK 0x08
-#define CCR_RSTA 0x04
+/* I2C Control Register (MPC_I2C_CR): */
+#define CCR_MEN 0x80 /* Module enable */
+#define CCR_MIEN 0x40 /* Module interrupt enable */
+#define CCR_MSTA 0x20 /* Master/slave mode START */
+#define CCR_MTX 0x10 /* Transmit/receive mode select */
+#define CCR_TXAK 0x08 /* Transfer acknowledge */
+#define CCR_RSTA 0x04 /* Repeated START */
+#define CCR_BCST 0x01 /* Broadcast */
-#define CSR_MCF 0x80
-#define CSR_MAAS 0x40
-#define CSR_MBB 0x20
-#define CSR_MAL 0x10
-#define CSR_SRW 0x04
-#define CSR_MIF 0x02
-#define CSR_RXAK 0x01
+/* I2C Status Register (MPC_I2C_SR): */
+#define CSR_MCF 0x80 /* Data transfer */
+#define CSR_MAAS 0x40 /* Addressed as a slave */
+#define CSR_MBB 0x20 /* Bus busy */
+#define CSR_MAL 0x10 /* Arbitration lost */
+#define CSR_BCSTM 0x08 /* Broadcast match */
+#define CSR_SRW 0x04 /* Slave read/write */
+#define CSR_MIF 0x02 /* Module interrupt */
+#define CSR_RXAK 0x01 /* Received acknowledge */
struct mpc_i2c {
struct device *dev;
@@ -158,12 +163,12 @@
return result;
if (!(cmd_err & CSR_MCF)) {
- dev_dbg(i2c->dev, "unfinished\n");
+ dev_warn(i2c->dev, "unfinished\n");
return -EIO;
}
if (cmd_err & CSR_MAL) {
- dev_dbg(i2c->dev, "MAL\n");
+ dev_err(i2c->dev, "Arbitration lost\n");
return -EAGAIN;
}
@@ -554,7 +559,7 @@
i2c->base + MPC_I2C_SR);
mpc_i2c_fixup(i2c);
}
- return -EIO;
+ return -ETIMEDOUT;
}
schedule();
}
@@ -590,7 +595,7 @@
i2c->base + MPC_I2C_SR);
mpc_i2c_fixup(i2c);
}
- return -EIO;
+ return -ETIMEDOUT;
}
cond_resched();
}
next reply other threads:[~2014-11-29 21:58 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-29 21:58 Danielle Costantino [this message]
2014-11-29 21:58 ` [PATCH] i2c: mpc: add register documentation to Freescale I2C driver Danielle Costantino
[not found] ` <547A4192.30102-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-12-01 17:21 ` Wolfram Sang
2014-12-01 17:21 ` Wolfram Sang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=547A4192.30102@gmail.com \
--to=danielle.costantino-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.