[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(&regs->target_addr, segments->slave);
+		if (read32(&regs->target_addr) != segments->slave) {
+			dw_i2c_disable(regs);
+			write32(&regs->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