[coreboot-gerrit] Change in coreboot[master]: drivers/i2c/designware: Unset IC_ENABLE when setting target address
Chris Ching (Code Review)
gerrit at coreboot.org
Tue Jan 16 21:51:17 CET 2018
Chris Ching has uploaded this change for review. ( https://review.coreboot.org/23293
Change subject: drivers/i2c/designware: Unset IC_ENABLE when setting target address
......................................................................
drivers/i2c/designware: Unset IC_ENABLE when setting target address
To set address on AMD, IC_ENABLE == 0.
BUG=b:69416132
BRANCH=none
TEST=Test communication with i2c TPM on stoneyridge
Change-Id: I7faee8e11439deceab946cc82d30d274b529b90d
Signed-off-by: Chris Ching <chingcodes at chromium.org>
---
M src/drivers/i2c/designware/dw_i2c.c
1 file changed, 6 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/93/23293/1
diff --git a/src/drivers/i2c/designware/dw_i2c.c b/src/drivers/i2c/designware/dw_i2c.c
index 75f8871..ab77305 100644
--- a/src/drivers/i2c/designware/dw_i2c.c
+++ b/src/drivers/i2c/designware/dw_i2c.c
@@ -381,7 +381,12 @@
}
/* Set target slave address */
- write32(®s->target_addr, segments->slave);
+ if (read32(®s->target_addr) != segments->slave) {
+ dw_i2c_disable(regs);
+ write32(®s->target_addr, segments->slave);
+ dw_i2c_enable(regs);
+ }
+
/* Read or write each byte in segment */
for (byte = 0; byte < segments->len; byte++) {
--
To view, visit https://review.coreboot.org/23293
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I7faee8e11439deceab946cc82d30d274b529b90d
Gerrit-Change-Number: 23293
Gerrit-PatchSet: 1
Gerrit-Owner: Chris Ching <chingcodes at chromium.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20180116/0f0e0147/attachment.html>
More information about the coreboot-gerrit
mailing list