lpss_i2c: Add Kconfig option to enable debug

It is very useful to have the ability to see I2C transactions
performed by the host firmware.  This patch adds a simple
Kconfig option that will enable debug output.

Change-Id: I55f1ff273290e2f4fbfaea56091b2df3fc49fe61
Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://review.coreboot.org/16590
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
Duncan Laurie 2016-09-12 11:21:40 -07:00 committed by Aaron Durbin
parent 772555a214
commit f8a7b2c008
2 changed files with 21 additions and 0 deletions

View File

@ -62,6 +62,14 @@ config SOC_INTEL_COMMON_LPSS_I2C_CLOCK_MHZ
No default is set here as this is an SOC-specific value and must No default is set here as this is an SOC-specific value and must
be provided by the SOC when it selects this driver. be provided by the SOC when it selects this driver.
config SOC_INTEL_COMMON_LPSS_I2C_DEBUG
bool "Enable debug output for LPSS I2C transactions"
default n
depends on SOC_INTEL_COMMON_LPSS_I2C
help
Enable debug output for I2C transactions. This can be useful
when debugging I2C drivers.
config MMA config MMA
bool "enable MMA (Memory Margin Analysis) support" bool "enable MMA (Memory Margin Analysis) support"
default n default n

View File

@ -265,6 +265,11 @@ int platform_i2c_transfer(unsigned bus, struct i2c_seg *segments, int count)
/* Process each segment */ /* Process each segment */
while (count--) { while (count--) {
if (CONFIG_SOC_INTEL_COMMON_LPSS_I2C_DEBUG)
printk(BIOS_DEBUG, "i2c %u:%02x %s %d bytes : ",
bus, segments->chip, segments->read ? "R" : "W",
segments->len);
/* Set target slave address */ /* Set target slave address */
write32(&regs->target_addr, segments->chip); write32(&regs->target_addr, segments->chip);
@ -283,6 +288,14 @@ int platform_i2c_transfer(unsigned bus, struct i2c_seg *segments, int count)
goto out; goto out;
} }
} }
if (CONFIG_SOC_INTEL_COMMON_LPSS_I2C_DEBUG) {
int j;
for (j = 0; j < segments->len; j++)
printk(BIOS_DEBUG, "%02x ", segments->buf[j]);
printk(BIOS_DEBUG, "\n");
}
segments++; segments++;
} }