summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorJes B. Klinke <jbk@chromium.org>2023-02-27 13:57:53 -0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-02-28 17:45:14 +0000
commit1f597aa3c8b4d12d7d3c1e92fda4f9925d405750 (patch)
tree19f4dd90600d85124b9566970dcb0d498fb37fee /board
parentdf166bfdb39a6b448863e0538a94c5ee2a86ecd6 (diff)
downloadchrome-ec-1f597aa3c8b4d12d7d3c1e92fda4f9925d405750.tar.gz
board/hyperdebug: Avoid trampling ALTERNATE mode
The HyperDebug board will routinely be asked to reconfigure GPIO pins as input/open drain/push pull or tweak other aspects of the signals. It supports a "reinit" command to re-initialize all GPIO pins according to their default setting (input or UART/SPI/I2C alternate mode) as declared in gpio.inc. However, the reinit logic was flawed. GPIO_INT_BOTH is declared on almost every pin, for the case that the user later instructs HyperDebug to closely monitor a set of pins. The problem is that GPIO_INT_BOTH implicitly adds GPIO_INPUT, and this breaks the pins that are declared as GPIO_ALTERNATE in gpio.inc, because the code in gpio-f0-l.c will ignore GPIO_ALTERNATE if conflicting GPIO_INPUT is also given. With this change, SPI, I2C, and UART pins revert to the default non-GPIO mode, when the "reinit" command is issued. BUG=266832220 TEST=Observed opentitantool being able to flash via SPI Change-Id: Ic496ebbda561eb12dbbb506f382f8715c67b8d18 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4295367 Commit-Queue: Jes Klinke <jbk@chromium.org> Tested-by: Jes Klinke <jbk@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org>
Diffstat (limited to 'board')
-rw-r--r--board/hyperdebug/gpio.inc184
1 files changed, 96 insertions, 88 deletions
diff --git a/board/hyperdebug/gpio.inc b/board/hyperdebug/gpio.inc
index 16e54891e0..f29deab512 100644
--- a/board/hyperdebug/gpio.inc
+++ b/board/hyperdebug/gpio.inc
@@ -13,123 +13,131 @@
* symbolic name further below.
*/
-GPIO_INT(CN7_1, PIN(C, 6), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN7_2, PIN(B, 8), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* I2C1 SCL */
-GPIO_INT(CN7_3, PIN(D, 11), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN7_4, PIN(B, 9), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* I2C1 SDA */
-GPIO_INT(CN7_5, PIN(B, 13), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
+/*
+ * The common define GPIO_INT_BOTH includes GPIO_INPUT, which interferes with
+ * GPIO_ALTERNATE. Instead we want to declare the intent to detect either
+ * rising or falling edges, making it conditional on the pins possibly later
+ * being re-configured as GPIO inputs.
+ */
+#define ANY_EDGE (GPIO_INT_F_RISING | GPIO_INT_F_FALLING)
+
+GPIO_INT(CN7_1, PIN(C, 6), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN7_2, PIN(B, 8), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* I2C1 SCL */
+GPIO_INT(CN7_3, PIN(D, 11), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN7_4, PIN(B, 9), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* I2C1 SDA */
+GPIO_INT(CN7_5, PIN(B, 13), GPIO_INPUT | ANY_EDGE, gpio_edge)
/* CN7_6 is VREFP */
-GPIO_INT(CN7_7, PIN(D, 12), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
+GPIO_INT(CN7_7, PIN(D, 12), GPIO_INPUT | ANY_EDGE, gpio_edge)
/* CN7_8 is GND */
-GPIO_INT(CN7_9, PIN(A, 4), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) /* DAC0, ADC12_IN9 */
-GPIO_INT(CN7_10, PIN(A, 5), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) /* DAC1, ADC12_IN10 */
-GPIO_INT(CN7_11, PIN(B, 4), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN7_12, PIN(A, 6), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) /* ADC12_IN11 */
-/*GPIO_INT(CN7_13, PIN(B, 5), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) Nucleo USB-C */
-GPIO_INT(CN7_14, PIN(A, 7), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) /* ADC12_IN12 */
-GPIO_INT(CN7_15, PIN(B, 3), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN7_16, PIN(D, 14), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-/*GPIO_INT(CN7_17, PIN(A, 4), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)*/
-GPIO_INT(CN7_18, PIN(D, 15), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-/*GPIO_INT(CN7_19, PIN(B, 4), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)*/
-GPIO_INT(CN7_20, PIN(F, 12), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
+GPIO_INT(CN7_9, PIN(A, 4), GPIO_INPUT | ANY_EDGE, gpio_edge) /* DAC0, ADC12_IN9 */
+GPIO_INT(CN7_10, PIN(A, 5), GPIO_INPUT | ANY_EDGE, gpio_edge) /* DAC1, ADC12_IN10 */
+GPIO_INT(CN7_11, PIN(B, 4), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN7_12, PIN(A, 6), GPIO_INPUT | ANY_EDGE, gpio_edge) /* ADC12_IN11 */
+/*GPIO_INT(CN7_13, PIN(B, 5), GPIO_INPUT | ANY_EDGE, gpio_edge) Nucleo USB-C */
+GPIO_INT(CN7_14, PIN(A, 7), GPIO_INPUT | ANY_EDGE, gpio_edge) /* ADC12_IN12 */
+GPIO_INT(CN7_15, PIN(B, 3), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN7_16, PIN(D, 14), GPIO_INPUT | ANY_EDGE, gpio_edge)
+/*GPIO_INT(CN7_17, PIN(A, 4), GPIO_INPUT | ANY_EDGE, gpio_edge)*/
+GPIO_INT(CN7_18, PIN(D, 15), GPIO_INPUT | ANY_EDGE, gpio_edge)
+/*GPIO_INT(CN7_19, PIN(B, 4), GPIO_INPUT | ANY_EDGE, gpio_edge)*/
+GPIO_INT(CN7_20, PIN(F, 12), GPIO_INPUT | ANY_EDGE, gpio_edge)
/* CN8_1 is NC */
-GPIO_INT(CN8_2, PIN(C, 8), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
+GPIO_INT(CN8_2, PIN(C, 8), GPIO_INPUT | ANY_EDGE, gpio_edge)
/* CN8_3 is IOREF */
-GPIO_INT(CN8_4, PIN(C, 9), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
+GPIO_INT(CN8_4, PIN(C, 9), GPIO_INPUT | ANY_EDGE, gpio_edge)
/* CN8_5 is NRST */
-GPIO_INT(CN8_6, PIN(C, 10), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* UART4 TX */
+GPIO_INT(CN8_6, PIN(C, 10), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* UART4 TX */
/* CN8_7 is 3V3 */
-GPIO_INT(CN8_8, PIN(C, 11), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* UART4 RX */
+GPIO_INT(CN8_8, PIN(C, 11), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* UART4 RX */
/* CN8_9 is 5V */
-GPIO_INT(CN8_10, PIN(C, 12), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* UART5 TX */
+GPIO_INT(CN8_10, PIN(C, 12), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* UART5 TX */
/* CN8_11 is GND */
-GPIO_INT(CN8_12, PIN(D, 2), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* UART5 RX */
+GPIO_INT(CN8_12, PIN(D, 2), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* UART5 RX */
/* CN8_13 is GND */
-GPIO_INT(CN8_14, PIN(F, 3), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
+GPIO_INT(CN8_14, PIN(F, 3), GPIO_INPUT | ANY_EDGE, gpio_edge)
/* CN8_15 is VIN */
-GPIO_INT(CN8_16, PIN(F, 5), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
+GPIO_INT(CN8_16, PIN(F, 5), GPIO_INPUT | ANY_EDGE, gpio_edge)
-GPIO_INT(CN9_1, PIN(A, 3), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) /* ADC12_IN8 */
-GPIO_INT(CN9_2, PIN(D, 7), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN9_3, PIN(A, 2), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) /* ADC12_IN7 */
-GPIO_INT(CN9_4, PIN(D, 6), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* UART2 RX */
-GPIO_INT(CN9_5, PIN(C, 3), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) /* ADC12_IN4 */
-GPIO_INT(CN9_6, PIN(D, 5), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* UART2 TX */
-GPIO_INT(CN9_7, PIN(B, 0), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) /* ADC12_IN15 */
-GPIO_INT(CN9_8, PIN(D, 4), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* SPI2 CODI */
-GPIO_INT(CN9_9, PIN(C, 1), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* I2C3 SDA, ADC12_IN2 */
-GPIO_INT(CN9_10, PIN(D, 3), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* SPI2 CIDO */
-GPIO_INT(CN9_11, PIN(C, 0), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* I2C3 SCL, ADC12_IN1 */
+GPIO_INT(CN9_1, PIN(A, 3), GPIO_INPUT | ANY_EDGE, gpio_edge) /* ADC12_IN8 */
+GPIO_INT(CN9_2, PIN(D, 7), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN9_3, PIN(A, 2), GPIO_INPUT | ANY_EDGE, gpio_edge) /* ADC12_IN7 */
+GPIO_INT(CN9_4, PIN(D, 6), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* UART2 RX */
+GPIO_INT(CN9_5, PIN(C, 3), GPIO_INPUT | ANY_EDGE, gpio_edge) /* ADC12_IN4 */
+GPIO_INT(CN9_6, PIN(D, 5), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* UART2 TX */
+GPIO_INT(CN9_7, PIN(B, 0), GPIO_INPUT | ANY_EDGE, gpio_edge) /* ADC12_IN15 */
+GPIO_INT(CN9_8, PIN(D, 4), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* SPI2 CODI */
+GPIO_INT(CN9_9, PIN(C, 1), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* I2C3 SDA, ADC12_IN2 */
+GPIO_INT(CN9_10, PIN(D, 3), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* SPI2 CIDO */
+GPIO_INT(CN9_11, PIN(C, 0), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* I2C3 SCL, ADC12_IN1 */
/* CN9_12 is GND */
-GPIO_INT(CN9_13, PIN(B, 2), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN9_14, PIN(E, 2), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN9_15, PIN(B, 6), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN9_16, PIN(E, 4), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN9_17, PIN(F, 2), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN9_18, PIN(E, 5), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN9_19, PIN(F, 1), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* I2C2 SCL */
-GPIO_INT(CN9_20, PIN(E, 6), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN9_21, PIN(F, 0), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* I2C2 SDA */
-GPIO_INT(CN9_22, PIN(E, 3), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
+GPIO_INT(CN9_13, PIN(B, 2), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN9_14, PIN(E, 2), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN9_15, PIN(B, 6), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN9_16, PIN(E, 4), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN9_17, PIN(F, 2), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN9_18, PIN(E, 5), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN9_19, PIN(F, 1), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* I2C2 SCL */
+GPIO_INT(CN9_20, PIN(E, 6), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN9_21, PIN(F, 0), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* I2C2 SDA */
+GPIO_INT(CN9_22, PIN(E, 3), GPIO_INPUT | ANY_EDGE, gpio_edge)
/* CN9_23 is GND */
-GPIO_INT(CN9_24, PIN(F, 8), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN9_25, PIN(D, 0), GPIO_OUT_HIGH | GPIO_INT_BOTH, gpio_edge) /* SPI2 CS */
-GPIO_INT(CN9_26, PIN(F, 7), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN9_27, PIN(D, 1), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* SPI2 CLK */
-GPIO_INT(CN9_28, PIN(F, 9), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN9_29, PIN(G, 0), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN9_30, PIN(G, 1), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
+GPIO_INT(CN9_24, PIN(F, 8), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN9_25, PIN(D, 0), GPIO_OUT_HIGH | ANY_EDGE, gpio_edge) /* SPI2 CS */
+GPIO_INT(CN9_26, PIN(F, 7), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN9_27, PIN(D, 1), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* SPI2 CLK */
+GPIO_INT(CN9_28, PIN(F, 9), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN9_29, PIN(G, 0), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN9_30, PIN(G, 1), GPIO_INPUT | ANY_EDGE, gpio_edge)
/* CN10_1 is AVDD */
-GPIO_INT(CN10_2, PIN(F, 13), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
+GPIO_INT(CN10_2, PIN(F, 13), GPIO_INPUT | ANY_EDGE, gpio_edge)
/* CN10_3 is AGND */
-GPIO_INT(CN10_4, PIN(E, 9), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
+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 | GPIO_INT_BOTH, gpio_edge) /* QSPI CS */
-GPIO_INT(CN10_7, PIN(B, 1), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) /* ADC12_IN16 */
-GPIO_INT(CN10_8, PIN(F, 14), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-/*GPIO_INT(CN10_9, PIN(C, 2), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) Nucleo USB VBUS sense, ADC12_IN3 */
-GPIO_INT(CN10_10, PIN(E, 13), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* QSPI D1 */
-GPIO_INT(CN10_11, PIN(A, 1), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) /* ADC12_IN6 */
-GPIO_INT(CN10_12, PIN(F, 15), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-/*GPIO_INT(CN10_13, PIN(A, 2), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)*/
-GPIO_INT(CN10_14, PIN(D, 8), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* UART3 TX */
-GPIO_INT(CN10_15, PIN(B, 10), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN10_16, PIN(D, 9), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* UART3 RX */
+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_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_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)
+GPIO_INT(CN10_16, PIN(D, 9), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* UART3 RX */
/* CN10_17 is GND */
-GPIO_INT(CN10_18, PIN(E, 8), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN10_19, PIN(E, 15), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* QSPI D3 */
-GPIO_INT(CN10_20, PIN(E, 7), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-/*GPIO_INT(CN10_21, PIN(B, 0), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)*/
+GPIO_INT(CN10_18, PIN(E, 8), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN10_19, PIN(E, 15), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* QSPI D3 */
+GPIO_INT(CN10_20, PIN(E, 7), GPIO_INPUT | ANY_EDGE, gpio_edge)
+/*GPIO_INT(CN10_21, PIN(B, 0), GPIO_INPUT | ANY_EDGE, gpio_edge)*/
/* CN10_22 is GND */
-GPIO_INT(CN10_23, PIN(E, 12), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* QSPI D0 */
-GPIO_INT(CN10_24, PIN(E, 10), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* QSPI CLK */
-GPIO_INT(CN10_25, PIN(E, 14), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge) /* QSPI D2 */
-/*GPIO_INT(CN10_26, PIN(E, 12), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) QSPI */
+GPIO_INT(CN10_23, PIN(E, 12), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* QSPI D0 */
+GPIO_INT(CN10_24, PIN(E, 10), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* QSPI CLK */
+GPIO_INT(CN10_25, PIN(E, 14), GPIO_ALTERNATE | ANY_EDGE, gpio_edge) /* QSPI D2 */
+/*GPIO_INT(CN10_26, PIN(E, 12), GPIO_INPUT | ANY_EDGE, gpio_edge) QSPI */
/* CN10_27 is GND */
-/*GPIO_INT(CN10_28, PIN(E, 14), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) QSPI */
-GPIO_INT(CN10_29, PIN(A, 0), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) /* ADC12_IN5 */
-/*GPIO_INT(CN10_30, PIN(E, 15), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) QSPI */
-GPIO_INT(CN10_31, PIN(A, 8), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-/*GPIO_INT(CN10_32, PIN(B, 10), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)*/
-GPIO_INT(CN10_33, PIN(E, 0), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(CN10_34, PIN(B, 11), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge)
+/*GPIO_INT(CN10_28, PIN(E, 14), GPIO_INPUT | ANY_EDGE, gpio_edge) QSPI */
+GPIO_INT(CN10_29, PIN(A, 0), GPIO_INPUT | ANY_EDGE, gpio_edge) /* ADC12_IN5 */
+/*GPIO_INT(CN10_30, PIN(E, 15), GPIO_INPUT | ANY_EDGE, gpio_edge) QSPI */
+GPIO_INT(CN10_31, PIN(A, 8), GPIO_INPUT | ANY_EDGE, gpio_edge)
+/*GPIO_INT(CN10_32, PIN(B, 10), GPIO_INPUT | ANY_EDGE, gpio_edge)*/
+GPIO_INT(CN10_33, PIN(E, 0), GPIO_INPUT | ANY_EDGE, gpio_edge)
+GPIO_INT(CN10_34, PIN(B, 11), GPIO_INPUT | ANY_EDGE, gpio_edge)
/* These pins are used for USART and are set to alternate mode below */
-GPIO_INT(HYPER_CONSOLE_TX, PIN(G, 7), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge)
-GPIO_INT(HYPER_CONSOLE_RX, PIN(G, 8), GPIO_ALTERNATE | GPIO_INT_BOTH, gpio_edge)
+GPIO_INT(HYPER_CONSOLE_TX, PIN(G, 7), GPIO_ALTERNATE | ANY_EDGE, gpio_edge)
+GPIO_INT(HYPER_CONSOLE_RX, PIN(G, 8), GPIO_ALTERNATE | ANY_EDGE, gpio_edge)
/* USB pins */
GPIO(USB_FS_DM, PIN(A, 11), GPIO_ALTERNATE)
GPIO(USB_FS_DP, PIN(A, 12), GPIO_ALTERNATE)
/* Signals for hardware on the Nucleo board itself */
-GPIO_INT(NUCLEO_LED1, PIN(C, 7), GPIO_OUT_HIGH | GPIO_INT_BOTH, gpio_edge) /* Green */
-GPIO_INT(NUCLEO_LED2, PIN(B, 7), GPIO_OUT_LOW | GPIO_INT_BOTH, gpio_edge) /* Blue */
-GPIO_INT(NUCLEO_LED3, PIN(A, 9), GPIO_OUT_LOW | GPIO_INT_BOTH, gpio_edge) /* Red */
-GPIO_INT(NUCLEO_USER_BTN, PIN(C, 13), GPIO_INPUT | GPIO_INT_BOTH, gpio_edge) /* User button */
+GPIO_INT(NUCLEO_LED1, PIN(C, 7), GPIO_OUT_HIGH | ANY_EDGE, gpio_edge) /* Green */
+GPIO_INT(NUCLEO_LED2, PIN(B, 7), GPIO_OUT_LOW | ANY_EDGE, gpio_edge) /* Blue */
+GPIO_INT(NUCLEO_LED3, PIN(A, 9), GPIO_OUT_LOW | ANY_EDGE, gpio_edge) /* Red */
+GPIO_INT(NUCLEO_USER_BTN, PIN(C, 13), GPIO_INPUT | ANY_EDGE, gpio_edge) /* User button */
/* Unimplemented signals since we are not an EC */
UNIMPLEMENTED(ENTERING_RW)