summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJes B. Klinke <jbk@chromium.org>2023-05-16 15:12:49 -0700
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-05-17 16:34:58 +0000
commitfbd5697d6ab7a198a5974ab2c75ee620efe61599 (patch)
treec76a69a3bb4445dd4d30c4408cce570d0517b2d6
parent6ce23606728a59d2ebe0a1f8a24bdce840a21ade (diff)
downloadchrome-ec-fbd5697d6ab7a198a5974ab2c75ee620efe61599.tar.gz
board/hyperdebug: Add declarations of I2C4
HyperDebug supports four I2C busses, three of which are to be connected to the three I2C busses used by Ti50. The fourth we want to use for connecting a power measurement chip on the shield, in order to automatically verify that the power draw in sleep modes does not have regressions. BUG=b:282999020 TEST=Observe HyperDebug manipulate IO expanders via I2C4 Change-Id: Ibc4eeab692e0278eb3cc0c77c1affd035b555bc2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4537012 Reviewed-by: Jett Rink <jettrink@chromium.org> Tested-by: Jes Klinke <jbk@chromium.org> Commit-Queue: Jes Klinke <jbk@chromium.org>
-rw-r--r--board/hyperdebug/gpio.inc5
-rw-r--r--board/hyperdebug/i2c.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/board/hyperdebug/gpio.inc b/board/hyperdebug/gpio.inc
index f29deab512..f02c55b793 100644
--- a/board/hyperdebug/gpio.inc
+++ b/board/hyperdebug/gpio.inc
@@ -97,11 +97,11 @@ GPIO_INT(CN10_4, PIN(E, 9), GPIO_INPUT | ANY_EDGE, gpio_edge)
/* CN10_5 is GND */
GPIO_INT(CN10_6, PIN(E, 11), GPIO_OUT_HIGH | ANY_EDGE, gpio_edge) /* QSPI CS */
GPIO_INT(CN10_7, PIN(B, 1), GPIO_INPUT | ANY_EDGE, gpio_edge) /* ADC12_IN16 */
-GPIO_INT(CN10_8, PIN(F, 14), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN10_8, PIN(F, 14), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* I2C4 SCL */
/*GPIO_INT(CN10_9, PIN(C, 2), GPIO_INPUT | ANY_EDGE, gpio_edge) Nucleo USB VBUS sense, ADC12_IN3 */
GPIO_INT(CN10_10, PIN(E, 13), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* QSPI D1 */
GPIO_INT(CN10_11, PIN(A, 1), GPIO_INPUT | ANY_EDGE, gpio_edge) /* ADC12_IN6 */
-GPIO_INT(CN10_12, PIN(F, 15), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN10_12, PIN(F, 15), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* I2C4 SDA */
/*GPIO_INT(CN10_13, PIN(A, 2), GPIO_INPUT | ANY_EDGE, gpio_edge)*/
GPIO_INT(CN10_14, PIN(D, 8), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* UART3 TX */
GPIO_INT(CN10_15, PIN(B, 10), GPIO_INPUT | ANY_EDGE, gpio_edge)
@@ -156,5 +156,6 @@ ALTERNATE(PIN_MASK(G, 0x0180), 8, MODULE_UART, 0) /* LPUART1: PG7/PG8 - HyperDeb
ALTERNATE(PIN_MASK(F, 0x0003), 4, MODULE_I2C, GPIO_OPEN_DRAIN) /* I2C2: PF0/PF1 */
ALTERNATE(PIN_MASK(B, 0x0300), 4, MODULE_I2C, GPIO_OPEN_DRAIN) /* I2C1: PB8/PB9 */
ALTERNATE(PIN_MASK(C, 0x0003), 4, MODULE_I2C, GPIO_OPEN_DRAIN) /* I2C3: PC0/PC1 */
+ALTERNATE(PIN_MASK(F, 0xC000), 4, MODULE_I2C, GPIO_OPEN_DRAIN) /* I2C4: PF14/PF15 */
ALTERNATE(PIN_MASK(E, 0xF400), 10, MODULE_SPI, 0) /* QSPI: PE10/PE12-15 */
ALTERNATE(PIN_MASK(D, 0x001A), 5, MODULE_SPI, 0) /* SPI2: PD1/PD3/PD4 SCK/CIDO/CODI */
diff --git a/board/hyperdebug/i2c.c b/board/hyperdebug/i2c.c
index 46b46f9278..bbb86d0d6b 100644
--- a/board/hyperdebug/i2c.c
+++ b/board/hyperdebug/i2c.c
@@ -30,6 +30,12 @@ const struct i2c_port_t i2c_ports[] = {
.scl = GPIO_CN9_11,
.sda = GPIO_CN9_9,
.flags = I2C_PORT_FLAG_DYNAMIC_SPEED },
+ { .name = "I2C4",
+ .port = 3,
+ .kbps = 100,
+ .scl = GPIO_CN10_8,
+ .sda = GPIO_CN10_12,
+ .flags = I2C_PORT_FLAG_DYNAMIC_SPEED },
};
const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);