summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTing Shen <phoenixshen@google.com>2021-10-14 18:05:30 +0800
committerCommit Bot <commit-bot@chromium.org>2021-11-09 08:23:48 +0000
commita76dd14bfadf564545a7ef7da3d5596e65a0443c (patch)
tree372ee8fed968c2d937feb6373b1b9117b134fa83
parent2a41bfec6c3006603c2ae2b23da9a055e5ea9784 (diff)
downloadchrome-ec-a76dd14bfadf564545a7ef7da3d5596e65a0443c.tar.gz
krabby: rev 0 gpio config
Add gpio config for Krabby cros-ec and zephyr. Also rename/remove affected code to make it compilable. BUG=b:202808130 TEST=1) make BOARD=krabby 2) make BOARD=kingler 3) zmake -j32 configure -b zephyr/projects/corsola/krabby/ BRANCH=main Signed-off-by: Ting Shen <phoenixshen@google.com> Change-Id: Ie1eb7f835e81d6ca3eacf5832ae0e9bbe7376bb6 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3233782 Reviewed-by: Eric Yilun Lin <yllin@google.com> Commit-Queue: Ting Shen <phoenixshen@chromium.org> Tested-by: Ting Shen <phoenixshen@chromium.org>
-rw-r--r--baseboard/corsola/baseboard.c3
-rw-r--r--baseboard/corsola/hibernate.c8
-rw-r--r--baseboard/corsola/usb_pd_policy.c4
-rw-r--r--baseboard/corsola/usbc_config.c23
-rw-r--r--board/kingler/gpio.inc11
-rw-r--r--board/krabby/board.h2
-rw-r--r--board/krabby/gpio.inc128
-rw-r--r--zephyr/dts/bindings/gpio/gpio-enum-name.yaml35
-rw-r--r--zephyr/projects/corsola/krabby/gpio.dts367
-rw-r--r--zephyr/projects/corsola/krabby/include/gpio_map.h53
-rw-r--r--zephyr/projects/corsola/krabby/motionsense.dts2
-rw-r--r--zephyr/projects/corsola/krabby/prj.conf10
12 files changed, 315 insertions, 331 deletions
diff --git a/baseboard/corsola/baseboard.c b/baseboard/corsola/baseboard.c
index 17bef3200f..4d8fea6c7c 100644
--- a/baseboard/corsola/baseboard.c
+++ b/baseboard/corsola/baseboard.c
@@ -15,9 +15,8 @@
#include "chipset.h"
#include "common.h"
#include "console.h"
-#include "driver/accelgyro_bmi_common.h"
#include "driver/accel_lis2dw12.h"
-#include "driver/als_tcs3400.h"
+#include "driver/accelgyro_icm426xx.h"
#include "driver/bc12/mt6360.h"
#include "driver/charger/isl923x.h"
#include "driver/ppc/syv682x.h"
diff --git a/baseboard/corsola/hibernate.c b/baseboard/corsola/hibernate.c
index 4ff149069d..c3752358bf 100644
--- a/baseboard/corsola/hibernate.c
+++ b/baseboard/corsola/hibernate.c
@@ -11,16 +11,10 @@
/* Corsola board specific hibernate implementation */
__override void board_hibernate_late(void)
{
- /*
- * Turn off PP5000_A. Required for devices without Z-state.
- * Don't care for devices with Z-state.
- */
- gpio_set_level(GPIO_EN_PP5000_A, 0);
-
if (IS_ENABLED(CONFIG_CHARGER_ISL9238C))
isl9238c_hibernate(CHARGER_SOLO);
- gpio_set_level(GPIO_EN_SLP_Z, 1);
+ gpio_set_level(GPIO_EN_ULP, 1);
/* should not reach here */
__builtin_unreachable();
diff --git a/baseboard/corsola/usb_pd_policy.c b/baseboard/corsola/usb_pd_policy.c
index 4dca40e52c..d0c576a398 100644
--- a/baseboard/corsola/usb_pd_policy.c
+++ b/baseboard/corsola/usb_pd_policy.c
@@ -23,7 +23,7 @@
int svdm_get_hpd_gpio(int port)
{
/* HPD is low active, inverse the result */
- return !gpio_get_level(GPIO_EC_DPBRDG_HPD_ODL);
+ return !gpio_get_level(GPIO_EC_AP_DP_HPD_ODL);
}
void svdm_set_hpd_gpio(int port, int en)
@@ -32,7 +32,7 @@ void svdm_set_hpd_gpio(int port, int en)
* HPD is low active, inverse the en
* TODO: C0&C1 shares the same HPD, implement FCFS policy.
*/
- gpio_set_level(GPIO_EC_DPBRDG_HPD_ODL, !en);
+ gpio_set_level(GPIO_EC_AP_DP_HPD_ODL, !en);
}
/**
diff --git a/baseboard/corsola/usbc_config.c b/baseboard/corsola/usbc_config.c
index cdf7b2ae6a..30859fdc0d 100644
--- a/baseboard/corsola/usbc_config.c
+++ b/baseboard/corsola/usbc_config.c
@@ -53,7 +53,7 @@ const struct charger_config_t chg_chips[] = {
static void baseboard_init(void)
{
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
+ gpio_enable_interrupt(GPIO_USB_C0_PPC_BC12_INT_ODL);
gpio_enable_interrupt(GPIO_AP_XHCI_INIT_DONE);
}
DECLARE_HOOK(HOOK_INIT, baseboard_init, HOOK_PRIO_DEFAULT-1);
@@ -102,7 +102,6 @@ DECLARE_HOOK(HOOK_INIT, sub_board_init, HOOK_PRIO_INIT_I2C - 1);
/* Detect subboard */
static void board_tcpc_init(void)
{
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
/* C1: GPIO_USB_C1_PPC_INT_ODL & HDMI: GPIO_PS185_EC_DP_HPD */
gpio_enable_interrupt(GPIO_X_EC_GPIO2);
@@ -119,7 +118,7 @@ struct ppc_config_t ppc_chips[CONFIG_USB_PD_PORT_MAX_COUNT] = {
.i2c_port = I2C_PORT_PPC0,
.i2c_addr_flags = SYV682X_ADDR0_FLAGS,
.drv = &syv682x_drv,
- .frs_en = GPIO_USB_C0_FRS_EN,
+ .frs_en = GPIO_USB_C0_PPC_FRSINFO,
},
{
.i2c_port = I2C_PORT_PPC1,
@@ -152,16 +151,13 @@ struct bc12_config bc12_ports[CONFIG_USB_PD_PORT_MAX_COUNT] = {
void bc12_interrupt(enum gpio_signal signal)
{
- if (signal == GPIO_USB_C0_BC12_INT_ODL)
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- else
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
+ task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
}
static void board_sub_bc12_init(void)
{
if (board_get_sub_board() == SUB_BOARD_TYPEC)
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_L);
+ gpio_enable_interrupt(GPIO_USB_C1_BC12_CHARGER_INT_ODL);
else
/* If this is not a Type-C subboard, disable the task. */
task_disable_task(TASK_ID_USB_CHG_P1);
@@ -169,13 +165,6 @@ static void board_sub_bc12_init(void)
/* Must be done after I2C and subboard */
DECLARE_HOOK(HOOK_INIT, board_sub_bc12_init, HOOK_PRIO_INIT_I2C + 1);
-void ppc_interrupt(enum gpio_signal signal)
-{
- if (signal == GPIO_USB_C0_PPC_INT_ODL)
- /* C0: PPC interrupt */
- syv682x_interrupt(0);
-}
-
__override uint8_t board_get_usb_pd_port_count(void)
{
if (board_get_sub_board() == SUB_BOARD_TYPEC)
@@ -382,7 +371,7 @@ static void ps185_hdmi_hpd_deferred(void)
debounced_hpd = new_hpd;
- gpio_set_level(GPIO_EC_DPBRDG_HPD_ODL, !debounced_hpd);
+ gpio_set_level(GPIO_EC_AP_DP_HPD_ODL, !debounced_hpd);
CPRINTS(debounced_hpd ? "HDMI plug" : "HDMI unplug");
}
DECLARE_DEFERRED(ps185_hdmi_hpd_deferred);
@@ -411,7 +400,7 @@ void x_ec_interrupt(enum gpio_signal signal)
int ppc_get_alert_status(int port)
{
if (port == 0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
+ return gpio_get_level(GPIO_USB_C0_PPC_BC12_INT_ODL) == 0;
if (port == 1 && board_get_sub_board() == SUB_BOARD_TYPEC)
return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
diff --git a/board/kingler/gpio.inc b/board/kingler/gpio.inc
index 0486799a82..1d4700c1c1 100644
--- a/board/kingler/gpio.inc
+++ b/board/kingler/gpio.inc
@@ -36,7 +36,8 @@ GPIO_INT(LID_ACCEL_INT_L, PIN(J, 3), GPIO_INT_FALLING | GPIO_SEL_1P8V,
GPIO(ALS_RGB_INT_ODL, PIN(F, 0), GPIO_INPUT)
/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(D, 1), GPIO_INT_BOTH, ppc_interrupt)
+/* TODO: driver not ready */
+GPIO(USB_C0_PPC_INT_ODL, PIN(D, 1), GPIO_INT_BOTH)
GPIO_INT(USB_C0_BC12_INT_ODL,PIN(J, 6), GPIO_INT_FALLING, bc12_interrupt)
GPIO_INT(USB_C1_BC12_INT_L, PIN(J, 4), GPIO_INT_FALLING, bc12_interrupt)
@@ -66,7 +67,7 @@ GPIO(EN_PP5000_A, PIN(C, 6), GPIO_OUT_HIGH)
GPIO(PG_MT6315_PROC_ODL, PIN(E, 1), GPIO_INPUT)
GPIO(PG_MT6360_ODL, PIN(F, 1), GPIO_INPUT)
GPIO(PG_PP5000_A_ODL, PIN(A, 6), GPIO_INPUT)
-GPIO(EN_SLP_Z, PIN(E, 3), GPIO_OUT_LOW)
+GPIO(EN_ULP, PIN(E, 3), GPIO_OUT_LOW)
GPIO(SYS_RST_ODL, PIN(B, 6), GPIO_ODR_LOW)
GPIO(EC_BL_EN_OD, PIN(B, 5), GPIO_ODR_LOW | GPIO_SEL_1P8V)
@@ -75,7 +76,7 @@ GPIO(EC_INT_L, PIN(E, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_AP_
/* USB and USBC Signals */
GPIO(DP_AUX_PATH_SEL, PIN(G, 0), GPIO_OUT_HIGH)
-GPIO(EC_DPBRDG_HPD_ODL, PIN(J, 0), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
+GPIO(EC_AP_DP_HPD_ODL, PIN(J, 0), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
GPIO(EN_PP5000_USB_A0_VBUS, PIN(B, 7), GPIO_OUT_LOW)
GPIO(USB_C0_FRS_EN, PIN(H, 3), GPIO_OUT_LOW)
@@ -153,3 +154,7 @@ GPIO(NC_GPG3, PIN(G, 3), GPIO_OUT_LOW)
GPIO(SPI_MOSI_GPG4, PIN(G, 4), GPIO_OUT_LOW)
GPIO(SPI_MISO_GPG5, PIN(G, 5), GPIO_OUT_LOW)
GPIO(SPI_CS_GPG7, PIN(G, 7), GPIO_OUT_LOW)
+
+UNIMPLEMENTED(USB_C0_PPC_BC12_INT_ODL)
+UNIMPLEMENTED(USB_C0_PPC_FRSINFO)
+UNIMPLEMENTED(USB_C1_BC12_CHARGER_INT_ODL)
diff --git a/board/krabby/board.h b/board/krabby/board.h
index 857e654787..4e3dfc43d6 100644
--- a/board/krabby/board.h
+++ b/board/krabby/board.h
@@ -21,8 +21,6 @@
#define CONFIG_IT83XX_RESET_PD_CONTRACT_IN_BRAM
/* BC12 */
-/* TODO(b/159583342): remove after rev0 deprecated */
-#define CONFIG_MT6360_BC12_GPIO
/* LED */
#define CONFIG_LED_ONOFF_STATES
diff --git a/board/krabby/gpio.inc b/board/krabby/gpio.inc
index 0486799a82..be37d43fb8 100644
--- a/board/krabby/gpio.inc
+++ b/board/krabby/gpio.inc
@@ -9,10 +9,11 @@
* Note: Those with interrupt handlers must be declared first. */
/* Wake Source interrupts */
-GPIO_INT(POWER_BUTTON_L, PIN(E, 4), GPIO_INT_BOTH | GPIO_PULL_UP |
- GPIO_HIB_WAKE_HIGH, power_button_interrupt) /* H1_EC_PWR_BTN_ODL */
+GPIO_INT(POWER_BUTTON_L, PIN(E, 4),
+ GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH,
+ power_button_interrupt) /* GSC_EC_PWR_BTN_ODL */
GPIO_INT(LID_OPEN, PIN(E, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH,
- lid_interrupt)
+ lid_interrupt) /* LID_OPEN_3V3 */
GPIO_INT(TABLET_MODE_L, PIN(J, 7), GPIO_INT_BOTH,
gmr_tablet_switch_isr)
@@ -21,95 +22,93 @@ GPIO_INT(AP_EC_WARM_RST_REQ, PIN(D, 3), GPIO_INT_RISING | GPIO_SEL_1P8V,
chipset_reset_request_interrupt)
/* Power sequencing interrupts */
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(C, 7), GPIO_INT_BOTH | GPIO_SEL_1P8V,
- chipset_watchdog_interrupt)
-GPIO_INT(AP_IN_SLEEP_L, PIN(F, 2),
- GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PMIC_EC_PWRGD, PIN(F, 3),
- GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt)
+GPIO_INT(AP_IN_SLEEP_L, PIN(B, 6),
+ GPIO_INT_BOTH | GPIO_SEL_1P8V, power_signal_interrupt)
/* Sensor Interrupts */
-GPIO_INT(BASE_IMU_INT_L, PIN(J, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V,
+GPIO_INT(BASE_IMU_INT_L, PIN(M, 3), GPIO_INT_FALLING | GPIO_SEL_1P8V,
motion_interrupt)
-GPIO_INT(LID_ACCEL_INT_L, PIN(J, 3), GPIO_INT_FALLING | GPIO_SEL_1P8V,
+GPIO_INT(LID_ACCEL_INT_L, PIN(M, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V,
lis2dw12_interrupt)
-GPIO(ALS_RGB_INT_ODL, PIN(F, 0), GPIO_INPUT)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(D, 1), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL,PIN(J, 6), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_L, PIN(J, 4), GPIO_INT_FALLING, bc12_interrupt)
/* Volume button interrupts */
-GPIO_INT(VOLUME_DOWN_L, PIN(D, 5), GPIO_INT_BOTH | GPIO_PULL_UP,
+GPIO_INT(VOLUME_DOWN_L, PIN(D, 5), GPIO_INT_BOTH,
button_interrupt) /* EC_VOLDN_BTN_ODL */
-GPIO_INT(VOLUME_UP_L, PIN(D, 6), GPIO_INT_BOTH | GPIO_PULL_UP,
+GPIO_INT(VOLUME_UP_L, PIN(D, 6), GPIO_INT_BOTH,
button_interrupt) /* EC_VOLUP_BTN_ODL */
/* Other interrupts */
-GPIO_INT(AP_XHCI_INIT_DONE, PIN(D, 2), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V,
+GPIO_INT(AP_XHCI_INIT_DONE, PIN(J, 5),
+ GPIO_INT_BOTH | GPIO_SEL_1P8V,
usb_a0_interrupt)
GPIO_INT(AC_PRESENT, PIN(E, 5), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH,
- extpower_interrupt) /* AC_OK / AC_PRESENT in rev1+ */
+ extpower_interrupt) /* GSC_ACOK_OD */
GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_FALLING,
uart_deepsleep_interrupt) /* UART_DEBUG_TX_EC_RX */
GPIO_INT(WP, PIN(I, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V,
switch_interrupt) /* EC_FLASH_WP_OD */
-GPIO_INT(SPI0_CS, PIN(M, 5), GPIO_INT_FALLING,
- spi_event) /* SPI slave Chip Select -- AP_SPI_EC_CS_L */
-GPIO_INT(X_EC_GPIO2, PIN(B, 2), GPIO_ODR_HIGH, x_ec_interrupt)
+GPIO_INT(SPI0_CS, PIN(M, 5), GPIO_INT_FALLING | GPIO_SEL_1P8V,
+ spi_event) /* SPI slave Chip Select -- AP_EC_SPI_CS_L */
+GPIO_INT(X_EC_GPIO2, PIN(B, 2), GPIO_INT_BOTH | GPIO_ODR_HIGH,
+ x_ec_interrupt)
+
+/* USB-C interrupts */
+/* TODO: interrupt function not ready */
+GPIO(USB_C0_PPC_BC12_INT_ODL, PIN(D, 1), GPIO_INT_FALLING)
+GPIO(USB_C1_BC12_CHARGER_INT_ODL, PIN(J, 4), GPIO_INT_FALLING)
/* Power Sequencing Signals */
GPIO(EC_PMIC_EN_ODL, PIN(D, 0), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_PMIC_WATCHDOG_L, PIN(H, 0), GPIO_ODR_LOW | GPIO_SEL_1P8V)
-GPIO(EN_PP5000_A, PIN(C, 6), GPIO_OUT_HIGH)
-GPIO(PG_MT6315_PROC_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(PG_MT6360_ODL, PIN(F, 1), GPIO_INPUT)
-GPIO(PG_PP5000_A_ODL, PIN(A, 6), GPIO_INPUT)
-GPIO(EN_SLP_Z, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(B, 6), GPIO_ODR_LOW)
+GPIO(EN_PP5000_Z2, PIN(C, 6), GPIO_OUT_HIGH)
+GPIO(EN_ULP, PIN(E, 3), GPIO_OUT_LOW)
+GPIO(SYS_RST_ODL, PIN(G, 1), GPIO_ODR_LOW)
GPIO(EC_BL_EN_OD, PIN(B, 5), GPIO_ODR_LOW | GPIO_SEL_1P8V)
+GPIO(AP_EC_SYSRST_ODL, PIN(J, 2), GPIO_INPUT | GPIO_SEL_1P8V)
+GPIO(AP_EC_WDTRST_L, PIN(C, 7), GPIO_INPUT | GPIO_SEL_1P8V)
/* MKBP event synchronization */
GPIO(EC_INT_L, PIN(E, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_AP_INT_ODL */
/* USB and USBC Signals */
GPIO(DP_AUX_PATH_SEL, PIN(G, 0), GPIO_OUT_HIGH)
-GPIO(EC_DPBRDG_HPD_ODL, PIN(J, 0), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
+GPIO(EC_AP_DP_HPD_ODL, PIN(J, 0), GPIO_ODR_HIGH)
GPIO(EN_PP5000_USB_A0_VBUS, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(USB_C0_FRS_EN, PIN(H, 3), GPIO_OUT_LOW)
+GPIO(USB_C0_PPC_FRSINFO, PIN(F, 0), GPIO_INPUT)
/* Misc Signals */
GPIO(EC_BATT_PRES_ODL, PIN(C, 0), GPIO_INPUT)
-GPIO(BC12_DET_EN, PIN(J, 5), GPIO_OUT_LOW) /* EN_USB_C0_BC12_DET */
GPIO(EN_EC_ID_ODL, PIN(H, 5), GPIO_ODR_LOW)
GPIO(ENTERING_RW, PIN(C, 5), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(EN_5V_USM, PIN(D, 7), GPIO_OUT_LOW)
+GPIO(EN_5V_USM, PIN(G, 3), GPIO_OUT_LOW)
+GPIO(USB_A0_FAULT_ODL, PIN(J, 6), GPIO_INPUT)
/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C_A_SCL, PIN(B, 3), GPIO_INPUT) /* I2C_CHG_BATT_SCL */
-GPIO(I2C_A_SDA, PIN(B, 4), GPIO_INPUT) /* I2C_CHG_BATT_SDA */
-GPIO(I2C_B_SCL, PIN(C, 1), GPIO_INPUT | GPIO_SEL_1P8V) /* I2C_SENSOR_SCL */
-GPIO(I2C_B_SDA, PIN(C, 2), GPIO_INPUT | GPIO_SEL_1P8V) /* I2C_SENSOR_SDA */
+GPIO(I2C_A_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V) /* I2C_PWR_CBI_SCL */
+GPIO(I2C_A_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V) /* I2C_PWR_CBI_SDA */
+GPIO(I2C_B_SCL, PIN(C, 1), GPIO_INPUT) /* I2C_BATT_SCL_3V3 */
+GPIO(I2C_B_SDA, PIN(C, 2), GPIO_INPUT) /* I2C_BATT_SDA_3V3 */
GPIO(I2C_C_SCL, PIN(F, 6), GPIO_INPUT) /* I2C_USB_C0_SCL */
-GPIO(I2C_C_SDA, PIN(F, 7), GPIO_INPUT) /* I2C_USB_C0_SCL */
+GPIO(I2C_C_SDA, PIN(F, 7), GPIO_INPUT) /* I2C_USB_C0_SDA */
+GPIO(I2C_D_SCL, PIN(F, 2), GPIO_INPUT | GPIO_SEL_1P8V) /* I2C_SENSOR_SCL */
+GPIO(I2C_D_SDA, PIN(F, 3), GPIO_INPUT | GPIO_SEL_1P8V) /* I2C_SENSOR_SDA */
GPIO(I2C_E_SCL, PIN(E, 0), GPIO_INPUT) /* I2C_USB_C1_SCL */
GPIO(I2C_E_SDA, PIN(E, 7), GPIO_INPUT) /* I2C_USB_C1_SDA */
+GPIO(I2C_F_SCL, PIN(A, 4), GPIO_INPUT) /* I2C_PROG_SCL */
+GPIO(I2C_F_SDA, PIN(A, 5), GPIO_INPUT) /* I2C_PROG_SDA */
/* SPI pins - Alternate function below configures SPI module on these pins */
-/* NC / TP */
-
/* Keyboard pins */
/* Subboards HDMI/TYPEC */
GPIO(EC_X_GPIO1, PIN(H, 4), GPIO_OUT_LOW)
GPIO(EC_X_GPIO3, PIN(J, 1), GPIO_INPUT)
+GPIO(HDMI_PRSNT_ODL, PIN(J, 3), GPIO_INPUT) /* low -> hdmi, other -> usb */
/* Alternate functions GPIO definitions */
ALTERNATE(PIN_MASK(B, 0x18), 1, MODULE_I2C, 0) /* I2C A */
ALTERNATE(PIN_MASK(C, 0x06), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C B */
-ALTERNATE(PIN_MASK(F, 0xC0), 1, MODULE_I2C, 0) /* I2C C */
+ALTERNATE(PIN_MASK(F, 0xCC), 1, MODULE_I2C, 0) /* I2C C, D */
ALTERNATE(PIN_MASK(E, 0x81), 1, MODULE_I2C, 0) /* I2C E */
/* UART */
@@ -119,37 +118,40 @@ ALTERNATE(PIN_MASK(B, 0x03), 1, MODULE_UART, 0) /* EC to Servo */
ALTERNATE(PIN_MASK(A, 0x07), 1, MODULE_PWM, 0) /* PWM 0~2 */
/* ADC */
-ALTERNATE(PIN_MASK(I, 0x6F), 0, MODULE_ADC, 0) /* ADC 0,1,2,3,5,6 */
+ALTERNATE(PIN_MASK(I, 0b10010111), 0, MODULE_ADC, 0) /* ADC 0,1,2,4,7 */
/* SPI */
-ALTERNATE(PIN_MASK(M, 0x33), 0, MODULE_SPI, 0) /* SPI */
+ALTERNATE(PIN_MASK(M, 0x33), 0, MODULE_SPI, GPIO_SEL_1P8V) /* SPI */
/* Unimplemented Pins */
-GPIO(SET_VMC_VOLT_AT_1V8, PIN(D, 4), GPIO_INPUT | GPIO_PULL_DOWN | GPIO_SEL_1P8V)
-GPIO(PACKET_MODE_EN, PIN(A, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-/* b/160218054: behavior not defined */
-/* *_ODL pin has external pullup so don't pull it down. */
-GPIO(USB_A0_FAULT_ODL, PIN(A, 7), GPIO_INPUT)
-GPIO(CHARGER_PROCHOT_ODL, PIN(C, 3), GPIO_INPUT)
-GPIO(PG_MT6315_GPU_ODL, PIN(H, 6), GPIO_INPUT)
-GPIO(EN_PP3000_SD_U, PIN(G, 1), GPIO_INPUT | GPIO_PULL_DOWN | GPIO_SEL_1P8V)
+GPIO(PACKET_MODE_EN, PIN(D, 4), GPIO_OUT_LOW)
+GPIO(PG_PP5000_Z2_OD, PIN(D, 2), GPIO_INPUT)
+GPIO(PG_MT6315_PROC_B_ODL, PIN(E, 1), GPIO_INPUT)
+GPIO(EC_PEN_CHG_DIS_ODL, PIN(H, 3), GPIO_ODR_HIGH) /* 5V output */
/* reserved for future use */
GPIO(CCD_MODE_ODL, PIN(C, 4), GPIO_INPUT)
-/*
- * ADC pins don't have internal pull-down capability,
- * so we set them as output low.
- */
-GPIO(NC_GPI7, PIN(I, 7), GPIO_OUT_LOW)
+
/* NC pins, enable internal pull-up/down to avoid floating state. */
-GPIO(NC_GPM2, PIN(M, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPM3, PIN(M, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPM6, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
+GPIO(NC_GPA3, PIN(A, 3), GPIO_INPUT | GPIO_PULL_DOWN)
+GPIO(NC_GPA6, PIN(A, 6), GPIO_INPUT | GPIO_PULL_DOWN)
+GPIO(NC_GPA7, PIN(A, 7), GPIO_INPUT | GPIO_PULL_DOWN)
+GPIO(NC_GPC3, PIN(C, 3), GPIO_INPUT | GPIO_PULL_DOWN)
+GPIO(NC_GPD7, PIN(D, 7), GPIO_INPUT | GPIO_PULL_DOWN)
+GPIO(NC_GPF1, PIN(F, 1), GPIO_INPUT | GPIO_PULL_DOWN)
GPIO(SPI_CLK_GPG6, PIN(G, 6), GPIO_INPUT | GPIO_PULL_UP)
+GPIO(NC_GPH0, PIN(H, 0), GPIO_INPUT | GPIO_PULL_DOWN)
+GPIO(NC_GPH6, PIN(H, 6), GPIO_INPUT | GPIO_PULL_DOWN)
+GPIO(NC_GPI7, PIN(I, 7), GPIO_INPUT | GPIO_PULL_DOWN)
+GPIO(NC_GPM6, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
/*
- * These 4 pins don't have internal pull-down capability,
+ * These pins don't have internal pull-down capability,
* so we set them as output low.
*/
-GPIO(NC_GPG3, PIN(G, 3), GPIO_OUT_LOW)
GPIO(SPI_MOSI_GPG4, PIN(G, 4), GPIO_OUT_LOW)
GPIO(SPI_MISO_GPG5, PIN(G, 5), GPIO_OUT_LOW)
GPIO(SPI_CS_GPG7, PIN(G, 7), GPIO_OUT_LOW)
+
+/* pins used in power/mt8192, will be removed after mt8186 code ready */
+UNIMPLEMENTED(AP_EC_WATCHDOG_L)
+UNIMPLEMENTED(EC_PMIC_WATCHDOG_L)
+UNIMPLEMENTED(PMIC_EC_PWRGD)
diff --git a/zephyr/dts/bindings/gpio/gpio-enum-name.yaml b/zephyr/dts/bindings/gpio/gpio-enum-name.yaml
index 7ce0b1c85d..fc8791fdab 100644
--- a/zephyr/dts/bindings/gpio/gpio-enum-name.yaml
+++ b/zephyr/dts/bindings/gpio/gpio-enum-name.yaml
@@ -8,8 +8,10 @@ properties:
- GPIO_ACCEL_GYRO_INT_L
- GPIO_AC_PRESENT
- GPIO_ALS_RGB_INT_ODL
+ - GPIO_AP_EC_SYSRST_ODL
- GPIO_AP_EC_WARM_RST_REQ
- GPIO_AP_EC_WATCHDOG_L
+ - GPIO_AP_EC_WDTRST_L
- GPIO_AP_IN_SLEEP_L
- GPIO_AP_RST_L
- GPIO_AP_SUSPEND
@@ -31,15 +33,14 @@ properties:
- GPIO_DP_MUX_SEL
- GPIO_EC_ACCEL_INT
- GPIO_EC_ALS_RGB_INT_L
+ - GPIO_EC_AP_DP_HPD_ODL
- GPIO_EC_BL_EN_OD
- - GPIO_EC_CHG_LED_W_C0
- - GPIO_EC_CHG_LED_Y_C0
- GPIO_EC_CHG_LED_B_C1
+ - GPIO_EC_CHG_LED_W_C0
- GPIO_EC_CHG_LED_W_C1
+ - GPIO_EC_CHG_LED_Y_C0
- GPIO_EC_CHG_LED_Y_C1
- GPIO_EC_DPBRDG_HPD_ODL
- - GPIO_EC_I2C_SENSOR_SCL
- - GPIO_EC_I2C_SENSOR_SDA
- GPIO_EC_I2C0_SENSOR_SCL
- GPIO_EC_I2C0_SENSOR_SDA
- GPIO_EC_I2C1_USB_C0_SCL
@@ -52,6 +53,8 @@ properties:
- GPIO_EC_I2C5_BATTERY_SDA
- GPIO_EC_I2C7_EEPROM_PWR_SCL_R
- GPIO_EC_I2C7_EEPROM_PWR_SDA_R
+ - GPIO_EC_I2C_SENSOR_SCL
+ - GPIO_EC_I2C_SENSOR_SDA
- GPIO_EC_IMU_INT_L
- GPIO_EC_INT_L
- GPIO_EC_PCH_SYS_PWROK
@@ -65,6 +68,8 @@ properties:
- GPIO_EC_WP_L
- GPIO_EC_X_GPIO1
- GPIO_EC_X_GPIO3
+ - GPIO_ENABLE_BACKLIGHT
+ - GPIO_ENTERING_RW
- GPIO_EN_5V_USM
- GPIO_EN_A_RAILS
- GPIO_EN_EC_ID_ODL
@@ -74,21 +79,26 @@ properties:
- GPIO_EN_PP5000
- GPIO_EN_PP5000_A
- GPIO_EN_PP5000_FAN
- - GPIO_EN_PP5000_USB_A0_VBUS
- GPIO_EN_PP5000_USBA
+ - GPIO_EN_PP5000_USB_A0_VBUS
+ - GPIO_EN_PP5000_Z2
- GPIO_EN_PPVAR_VCCIN
- GPIO_EN_PWR_A
- GPIO_EN_PWR_PCORE_S0_R
- GPIO_EN_PWR_S0_R
- GPIO_EN_SLP_Z
+ - GPIO_EN_ULP
- GPIO_EN_USB_A_5V
- - GPIO_ENABLE_BACKLIGHT
- - GPIO_ENTERING_RW
+ - GPIO_HDMI_PRSNT_ODL
- GPIO_HIBERNATE_L
+ - GPIO_I2C_A_SCL
+ - GPIO_I2C_A_SDA
- GPIO_I2C_B_SCL
- GPIO_I2C_B_SDA
- GPIO_I2C_C_SCL
- GPIO_I2C_C_SDA
+ - GPIO_I2C_D_SCL
+ - GPIO_I2C_D_SDA
- GPIO_I2C_E_SCL
- GPIO_I2C_E_SDA
- GPIO_I2C_F_SCL
@@ -108,16 +118,16 @@ properties:
- GPIO_PCH_SLP_S5_L
- GPIO_PCH_SLP_SUS_L
- GPIO_PCH_SYS_PWROK
+ - GPIO_PGOOD_FAN
- GPIO_PG_EC_ALL_SYS_PWRGD
- GPIO_PG_EC_DSW_PWROK
- GPIO_PG_EC_RSMRST_ODL
- GPIO_PG_GROUPC_S0_OD
- GPIO_PG_LPDDR4X_S3_OD
- - GPIO_PG_MT6360_ODL
- GPIO_PG_MT6315_GPU_ODL
- GPIO_PG_MT6315_PROC_ODL
+ - GPIO_PG_MT6360_ODL
- GPIO_PG_PP5000_A_ODL
- - GPIO_PGOOD_FAN
- GPIO_PMIC_EC_PWRGD
- GPIO_PMIC_KPD_PWR_ODL
- GPIO_PMIC_RESIN_L
@@ -133,11 +143,11 @@ properties:
- GPIO_SKU_ID1
- GPIO_SKU_ID2
- GPIO_SLP_SUS_L
+ - GPIO_SPI0_CS
- GPIO_SPI_CLK_GPG6
- GPIO_SPI_CS_GPG7
- GPIO_SPI_MISO_GPG5
- GPIO_SPI_MOSI_GPG4
- - GPIO_SPI0_CS
- GPIO_SWITCHCAP_ON
- GPIO_SWITCHCAP_ON_L
- GPIO_SWITCHCAP_PG
@@ -146,9 +156,9 @@ properties:
- GPIO_SYS_RST_ODL
- GPIO_TABLET_MODE_L
- GPIO_TRACKPAD_INT_GATE
- - GPIO_USB_A_LOW_PWR_OD
- GPIO_USB_A0_FAULT_ODL
- GPIO_USB_A0_OC_ODL
+ - GPIO_USB_A_LOW_PWR_OD
- GPIO_USB_C0_BC12_INT_L
- GPIO_USB_C0_BC12_INT_ODL
- GPIO_USB_C0_C1_FAULT_ODL
@@ -157,10 +167,13 @@ properties:
- GPIO_USB_C0_OC_ODL
- GPIO_USB_C0_PD_INT_ODL
- GPIO_USB_C0_PD_RST_L
+ - GPIO_USB_C0_PPC_BC12_INT_ODL
+ - GPIO_USB_C0_PPC_FRSINFO
- GPIO_USB_C0_PPC_INT_ODL
- GPIO_USB_C0_SWCTL_INT_ODL
- GPIO_USB_C0_TCPC_INT_ODL
- GPIO_USB_C0_TCPC_RST_L
+ - GPIO_USB_C1_BC12_CHARGER_INT_ODL
- GPIO_USB_C1_BC12_INT_L
- GPIO_USB_C1_BC12_INT_ODL
- GPIO_USB_C1_DP_HPD
diff --git a/zephyr/projects/corsola/krabby/gpio.dts b/zephyr/projects/corsola/krabby/gpio.dts
index 3c62140a8a..2bcc107e70 100644
--- a/zephyr/projects/corsola/krabby/gpio.dts
+++ b/zephyr/projects/corsola/krabby/gpio.dts
@@ -4,11 +4,24 @@
*/
/ {
+ gpiox: gpio@0 {
+ status = "okay";
+ compatible = "zephyr,gpio-emul";
+ label = "GPIO_UNIMPLEMENTED";
+ reg = <0x800 0x4>;
+ rising-edge;
+ falling-edge;
+ high-level;
+ low-level;
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+
named-gpios {
compatible = "named-gpios";
power_button_l: power_button_l {
- gpios = <&gpioe 4 (GPIO_INPUT | GPIO_PULL_UP)>;
+ gpios = <&gpioe 4 GPIO_INPUT>;
enum-name = "GPIO_POWER_BUTTON_L";
label = "POWER_BUTTON_L";
};
@@ -17,307 +30,252 @@
enum-name = "GPIO_LID_OPEN";
label = "LID_OPEN";
};
- tablet_mode_l {
+ tablet_mode_l: tablet_mode_l {
gpios = <&gpioj 7 GPIO_INPUT>;
enum-name = "GPIO_TABLET_MODE_L";
label = "TABLET_MODE_L";
};
- ap_ec_warm_rst_req {
+ ap_ec_warm_rst_req: ap_ec_warm_rst_req {
gpios = <&gpiod 3 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
enum-name = "GPIO_AP_EC_WARM_RST_REQ";
label = "AP_EC_WARM_RST_REQ";
};
- ap_ec_watchdog_l: ap_ec_watchdog_l {
- gpios = <&gpioc 7 (GPIO_INPUT | GPIO_VOLTAGE_1P8 |
- GPIO_ACTIVE_LOW)>;
- enum-name = "GPIO_AP_EC_WATCHDOG_L";
- label = "AP_EC_WATCHDOG_L";
- };
ap_in_sleep_l: ap_in_sleep_l {
- gpios = <&gpiof 2 (GPIO_INPUT | GPIO_PULL_DOWN |
- GPIO_VOLTAGE_1P8 | GPIO_ACTIVE_LOW)>;
+ gpios = <&gpiob 6 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
enum-name = "GPIO_AP_IN_SLEEP_L";
label = "AP_IN_SLEEP_L";
};
- ap-xhci-init-done {
- gpios = <&gpiod 2 (GPIO_INPUT | GPIO_PULL_DOWN |
- GPIO_VOLTAGE_1P8)>;
- enum-name = "GPIO_AP_XHCI_INIT_DONE";
- label = "AP_XHCI_INIT_DONE";
- };
- pmic_ec_pwrgd: pmic_ec_pwrgd {
- gpios = <&gpiof 3 (GPIO_INPUT | GPIO_PULL_DOWN |
- GPIO_VOLTAGE_1P8 | GPIO_ACTIVE_HIGH)>;
- enum-name = "GPIO_PMIC_EC_PWRGD";
- label = "PMIC_EC_PWRGD";
- };
- gpio_accel_gyro_int_l: base_imu_int_l {
- gpios = <&gpioj 2 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
- enum-name = "GPIO_EC_IMU_INT_L";
+ base_imu_int_l: base_imu_int_l {
+ gpios = <&gpiom 3 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
+ enum-name = "GPIO_BASE_IMU_INT_L";
label = "BASE_IMU_INT_L";
};
- lid_accel_int_l {
- gpios = <&gpioj 3 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
+ lid_accel_int_l: lid_accel_int_l {
+ gpios = <&gpiom 2 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
enum-name = "GPIO_LID_ACCEL_INT_L";
label = "LID_ACCEL_INT_L";
};
- als_rgb_int_odl {
- gpios = <&gpiof 0 GPIO_INPUT>;
- enum-name = "GPIO_ALS_RGB_INT_ODL";
- label = "ALS_RGB_INT_ODL";
- };
- usb_c0_ppc_int_odl {
- gpios = <&gpiod 1 GPIO_INPUT>;
- enum-name = "GPIO_USB_C0_PPC_INT_ODL";
- label = "USB_C0_PPC_INT_ODL";
- };
- usb_c0_bc12_int_odl {
- gpios = <&gpioj 6 GPIO_INPUT>;
- enum-name = "GPIO_USB_C0_BC12_INT_ODL";
- label = "USB_C0_BC12_INT_ODL";
- };
- usb_c1_bc12_int_l {
- gpios = <&gpioj 4 GPIO_INPUT>;
- enum-name = "GPIO_USB_C1_BC12_INT_L";
- label = "USB_C1_BC12_INT_L";
- };
- volume_down_l {
- gpios = <&gpiod 5 (GPIO_INPUT | GPIO_PULL_UP)>;
+ volume_down_l: volume_down_l {
+ gpios = <&gpiod 5 GPIO_INPUT>;
enum-name = "GPIO_VOLUME_DOWN_L";
label = "VOLUME_DOWN_L";
};
- volume_up_l {
- gpios = <&gpiod 6 (GPIO_INPUT | GPIO_PULL_UP)>;
+ volume_up_l: volume_up_l {
+ gpios = <&gpiod 6 GPIO_INPUT>;
enum-name = "GPIO_VOLUME_UP_L";
label = "VOLUME_UP_L";
};
+ ap_xhci_init_done: ap_xhci_init_done {
+ gpios = <&gpioj 5 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
+ enum-name = "GPIO_AP_XHCI_INIT_DONE";
+ label = "AP_XHCI_INIT_DONE";
+ };
ac_present: ac_present {
gpios = <&gpioe 5 GPIO_INPUT>;
enum-name = "GPIO_AC_PRESENT";
label = "AC_PRESENT";
};
- wp {
+ wp: wp {
gpios = <&gpioi 4 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
enum-name = "GPIO_WP";
label = "WP";
};
- spi0_cs {
+ spi0_cs: spi0_cs {
gpios = <&gpiom 5 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
enum-name = "GPIO_SPI0_CS";
label = "SPI0_CS";
};
- x_ec_gpio2 {
- gpios = <&gpiob 2 GPIO_ODR_HIGH>;
+ x_ec_gpio2: x_ec_gpio2 {
+ gpios = <&gpiob 2 (GPIO_INPUT | GPIO_ODR_HIGH)>;
enum-name = "GPIO_X_EC_GPIO2";
label = "X_EC_GPIO2";
};
- ec_pmic_en_odl {
+ usb_c0_ppc_bc12_int_odl: usb_c0_ppc_bc12_int_odl {
+ gpios = <&gpiod 1 GPIO_INPUT>;
+ enum-name = "GPIO_USB_C0_PPC_BC12_INT_ODL";
+ label = "USB_C0_PPC_BC12_INT_ODL";
+ };
+ usb_c1_bc12_charger_int_odl: usb_c1_bc12_charger_int_odl {
+ gpios = <&gpioj 4 GPIO_INPUT>;
+ enum-name = "GPIO_USB_C1_BC12_CHARGER_INT_ODL";
+ label = "USB_C1_BC12_CHARGER_INT_ODL";
+ };
+ ec_pmic_en_odl: ec_pmic_en_odl {
gpios = <&gpiod 0 (GPIO_ODR_HIGH | GPIO_VOLTAGE_1P8)>;
enum-name = "GPIO_EC_PMIC_EN_ODL";
label = "EC_PMIC_EN_ODL";
};
- ec_pmic_watchdog_l {
- gpios = <&gpioh 0 (GPIO_ODR_LOW | GPIO_VOLTAGE_1P8)>;
- enum-name = "GPIO_EC_PMIC_WATCHDOG_L";
- label = "EC_PMIC_WATCHDOG_L";
- };
- en_pp5000_a {
+ en_pp5000_z2: en_pp5000_z2 {
gpios = <&gpioc 6 GPIO_OUT_HIGH>;
- enum-name = "GPIO_EN_PP5000_A";
- label = "EN_PP5000_A";
- };
- pg_mt6315_proc_odl {
- gpios = <&gpioe 1 GPIO_INPUT>;
- enum-name = "GPIO_PG_MT6315_PROC_ODL";
- label = "PG_MT6315_PROC_ODL";
+ enum-name = "GPIO_EN_PP5000_Z2";
+ label = "EN_PP5000_Z2";
};
- pg_mt6360_odl {
- gpios = <&gpiof 1 GPIO_INPUT>;
- enum-name = "GPIO_PG_MT6360_ODL";
- label = "PG_MT6360_ODL";
- };
- pg_pp5000_a_odl {
- gpios = <&gpioa 6 GPIO_INPUT>;
- enum-name = "GPIO_PG_PP5000_A_ODL";
- label = "PG_PP5000_A_ODL";
- };
- en_slp_z {
+ en_ulp: en_ulp {
gpios = <&gpioe 3 GPIO_OUT_LOW>;
- enum-name = "GPIO_EN_SLP_Z";
- label = "EN_SLP_Z";
+ enum-name = "GPIO_EN_ULP";
+ label = "EN_ULP";
};
- sys_rst_odl {
- gpios = <&gpiob 6 GPIO_ODR_LOW>;
+ sys_rst_odl: sys_rst_odl {
+ gpios = <&gpiog 1 GPIO_ODR_LOW>;
enum-name = "GPIO_SYS_RST_ODL";
label = "SYS_RST_ODL";
};
- ec_bl_en_od {
+ ec_bl_en_od: ec_bl_en_od {
gpios = <&gpiob 5 (GPIO_ODR_LOW | GPIO_VOLTAGE_1P8)>;
enum-name = "GPIO_EC_BL_EN_OD";
label = "EC_BL_EN_OD";
};
- ec_int_l {
+ ap_ec_sysrst_odl: ap_ec_sysrst_odl {
+ gpios = <&gpioj 2 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
+ enum-name = "GPIO_AP_EC_SYSRST_ODL";
+ label = "AP_EC_SYSRST_ODL";
+ };
+ ap_ec_wdtrst_l: ap_ec_wdtrst_l {
+ gpios = <&gpioc 7 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
+ enum-name = "GPIO_AP_EC_WDTRST_L";
+ label = "AP_EC_WDTRST_L";
+ };
+ ec_int_l: ec_int_l {
gpios = <&gpioe 6 (GPIO_ODR_HIGH | GPIO_VOLTAGE_1P8)>;
enum-name = "GPIO_EC_INT_L";
label = "EC_INT_L";
};
- dp_aux_path_sel {
+ dp_aux_path_sel: dp_aux_path_sel {
gpios = <&gpiog 0 GPIO_OUT_HIGH>;
enum-name = "GPIO_DP_AUX_PATH_SEL";
label = "DP_AUX_PATH_SEL";
};
- ec_dpbrdg_hpd_odl {
- gpios = <&gpioj 0 (GPIO_ODR_HIGH | GPIO_VOLTAGE_1P8)>;
- enum-name = "GPIO_EC_DPBRDG_HPD_ODL";
- label = "EC_DPBRDG_HPD_ODL";
+ ec_ap_dp_hpd_odl: ec_ap_dp_hpd_odl {
+ gpios = <&gpioj 0 GPIO_ODR_HIGH>;
+ enum-name = "GPIO_EC_AP_DP_HPD_ODL";
+ label = "EC_AP_DP_HPD_ODL";
};
- en_pp5000_usb_a0_vbus {
+ en_pp5000_usb_a0_vbus: en_pp5000_usb_a0_vbus {
gpios = <&gpiob 7 GPIO_OUT_LOW>;
enum-name = "GPIO_EN_PP5000_USB_A0_VBUS";
label = "EN_PP5000_USB_A0_VBUS";
};
- usb_c0_frs_en {
- gpios = <&gpioh 3 GPIO_OUT_LOW>;
- enum-name = "GPIO_USB_C0_FRS_EN";
- label = "USB_C0_FRS_EN";
+ usb_c0_ppc_frsinfo: usb_c0_ppc_frsinfo {
+ gpios = <&gpiof 0 GPIO_INPUT>;
+ enum-name = "GPIO_USB_C0_PPC_FRSINFO";
+ label = "USB_C0_PPC_FRSINFO";
};
- ec_batt_pres_odl {
+ ec_batt_pres_odl: ec_batt_pres_odl {
gpios = <&gpioc 0 GPIO_INPUT>;
enum-name = "GPIO_BATT_PRES_ODL";
- label = "EC_BATT_PRES_ODL";
+ label = "BATT_PRES_ODL";
};
- bc12_det_en {
- gpios = <&gpioj 5 GPIO_OUT_LOW>;
- enum-name = "GPIO_BC12_DET_EN";
- label = "BC12_DET_EN";
- };
- en_ec_id_odl {
+ en_ec_id_odl: en_ec_id_odl {
gpios = <&gpioh 5 GPIO_ODR_LOW>;
enum-name = "GPIO_EN_EC_ID_ODL";
label = "EN_EC_ID_ODL";
};
- entering_rw {
+ entering_rw: entering_rw {
gpios = <&gpioc 5 GPIO_OUT_LOW>;
enum-name = "GPIO_ENTERING_RW";
label = "ENTERING_RW";
};
- en_5v_usm {
- gpios = <&gpiod 7 GPIO_OUT_LOW>;
+ en_5v_usm: en_5v_usm {
+ gpios = <&gpiog 3 GPIO_OUT_LOW>;
enum-name = "GPIO_EN_5V_USM";
label = "EN_5V_USM";
};
- i2c_b_scl {
- gpios = <&gpiob 3 GPIO_INPUT>;
+ usb_a0_fault_odl: usb_a0_fault_odl {
+ gpios = <&gpioj 6 GPIO_INPUT>;
+ enum-name = "GPIO_USB_A0_FAULT_ODL";
+ label = "USB_A0_FAULT_ODL";
+ };
+ i2c_a_scl: i2c_a_scl {
+ gpios = <&gpiob 3 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
+ enum-name = "GPIO_I2C_A_SCL";
+ label = "I2C_A_SCL";
+ };
+ i2c_a_sda: i2c_a_sda {
+ gpios = <&gpiob 4 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
+ enum-name = "GPIO_I2C_A_SDA";
+ label = "I2C_A_SDA";
+ };
+ i2c_b_scl: i2c_b_scl {
+ gpios = <&gpioc 1 GPIO_INPUT>;
enum-name = "GPIO_I2C_B_SCL";
label = "I2C_B_SCL";
};
- i2c_b_sda {
- gpios = <&gpiob 4 GPIO_INPUT>;
+ i2c_b_sda: i2c_b_sda {
+ gpios = <&gpioc 2 GPIO_INPUT>;
enum-name = "GPIO_I2C_B_SDA";
label = "I2C_B_SDA";
};
- i2c_c_scl {
- gpios = <&gpioc 1 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
+ i2c_c_scl: i2c_c_scl {
+ gpios = <&gpiof 6 GPIO_INPUT>;
enum-name = "GPIO_I2C_C_SCL";
label = "I2C_C_SCL";
};
- i2c_c_sda {
- gpios = <&gpioc 2 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
+ i2c_c_sda: i2c_c_sda {
+ gpios = <&gpiof 7 GPIO_INPUT>;
enum-name = "GPIO_I2C_C_SDA";
label = "I2C_C_SDA";
};
- i2c_e_scl {
+ i2c_d_scl: i2c_d_scl {
+ gpios = <&gpiof 2 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
+ enum-name = "GPIO_I2C_D_SCL";
+ label = "I2C_D_SCL";
+ };
+ i2c_d_sda: i2c_d_sda {
+ gpios = <&gpiof 3 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
+ enum-name = "GPIO_I2C_D_SDA";
+ label = "I2C_D_SDA";
+ };
+ i2c_e_scl: i2c_e_scl {
gpios = <&gpioe 0 GPIO_INPUT>;
enum-name = "GPIO_I2C_E_SCL";
label = "I2C_E_SCL";
};
- i2c_e_sda {
+ i2c_e_sda: i2c_e_sda {
gpios = <&gpioe 7 GPIO_INPUT>;
enum-name = "GPIO_I2C_E_SDA";
label = "I2C_E_SDA";
};
- i2c_f_scl {
- gpios = <&gpiof 6 GPIO_INPUT>;
+ i2c_f_scl: i2c_f_scl {
+ gpios = <&gpioa 4 GPIO_INPUT>;
enum-name = "GPIO_I2C_F_SCL";
label = "I2C_F_SCL";
};
- i2c_f_sda {
- gpios = <&gpiof 7 GPIO_INPUT>;
+ i2c_f_sda: i2c_f_sda {
+ gpios = <&gpioa 5 GPIO_INPUT>;
enum-name = "GPIO_I2C_F_SDA";
label = "I2C_F_SDA";
};
- ec_x_gpio1 {
+ ec_x_gpio1: ec_x_gpio1 {
gpios = <&gpioh 4 GPIO_OUT_LOW>;
enum-name = "GPIO_EC_X_GPIO1";
label = "EC_X_GPIO1";
};
- ec_x_gpio3 {
+ ec_x_gpio3: ec_x_gpio3 {
gpios = <&gpioj 1 GPIO_INPUT>;
enum-name = "GPIO_EC_X_GPIO3";
label = "EC_X_GPIO3";
};
- set_vmc_volt_at_1v8 {
- gpios = <&gpiod 4 (GPIO_INPUT | GPIO_PULL_DOWN |
- GPIO_VOLTAGE_1P8)>;
- enum-name = "GPIO_SET_VMC_VOLT_AT_1V8";
- label = "SET_VMC_VOLT_AT_1V8";
- };
- en_pp3000_vmc_pmu {
- gpios = <&gpiod 2 (GPIO_INPUT | GPIO_PULL_DOWN |
- GPIO_VOLTAGE_1P8)>;
- enum-name = "GPIO_EN_PP3000_VMC_PMU";
- label = "EN_PP3000_VMC_PMU";
- };
- packet_mode_en {
- gpios = <&gpioa 3 (GPIO_INPUT | GPIO_PULL_DOWN)>;
- enum-name = "GPIO_PACKET_MODE_EN";
- label = "PACKET_MODE_EN";
- };
- usb_a0_fault_odl {
- gpios = <&gpioa 7 GPIO_INPUT>;
- enum-name = "GPIO_USB_A0_FAULT_ODL";
- label = "USB_A0_FAULT_ODL";
+ hdmi_prsnt_odl: hdmi_prsnt_odl {
+ gpios = <&gpioj 3 GPIO_INPUT>;
+ enum-name = "GPIO_HDMI_PRSNT_ODL";
+ label = "HDMI_PRSNT_ODL";
+ };
+
+ /* pins used in power/mt8192, to be removed */
+ ap_ec_watchdog_l: ap_ec_watchdog_l {
+ gpios = <&gpiox 0 GPIO_INPUT>;
+ enum-name = "GPIO_AP_EC_WATCHDOG_L";
+ label = "AP_EC_WATCHDOG_L";
+ };
+ ec_pmic_watchdog_l: ec_pmic_watchdog_l {
+ gpios = <&gpiox 0 GPIO_INPUT>;
+ enum-name = "GPIO_EC_PMIC_WATCHDOG_L";
+ label = "EC_PMIC_WATCHDOG_L";
};
- charger_prochot_odl {
- gpios = <&gpioc 3 GPIO_INPUT>;
- enum-name = "GPIO_CHARGER_PROCHOT_ODL";
- label = "CHARGER_PROCHOT_ODL";
- };
- pg_mt6315_gpu_odl {
- gpios = <&gpioh 6 GPIO_INPUT>;
- enum-name = "GPIO_PG_MT6315_GPU_ODL";
- label = "PG_MT6315_GPU_ODL";
- };
- en_pp3000_sd_u {
- gpios = <&gpiog 1 (GPIO_INPUT | GPIO_PULL_DOWN |
- GPIO_VOLTAGE_1P8)>;
- enum-name = "GPIO_EN_PP3000_SD_U";
- label = "EN_PP3000_SD_U";
- };
- ccd_mode_odl {
- gpios = <&gpioc 4 GPIO_INPUT>;
- enum-name = "GPIO_CCD_MODE_ODL";
- label = "CCD_MODE_ODL";
- };
- spi_clk_gpg6 {
- gpios = <&gpiog 6 (GPIO_INPUT | GPIO_PULL_UP)>;
- enum-name = "GPIO_SPI_CLK_GPG6";
- label = "SPI_CLK_GPG6";
- };
- spi_mosi_gpg4 {
- gpios = <&gpiog 4 GPIO_OUT_LOW>;
- enum-name = "GPIO_SPI_MOSI_GPG4";
- label = "SPI_MOSI_GPG4";
- };
- spi_miso_gpg5 {
- gpios = <&gpiog 5 GPIO_OUT_LOW>;
- enum-name = "GPIO_SPI_MISO_GPG5";
- label = "SPI_MISO_GPG5";
- };
- spi_cs_gpg7 {
- gpios = <&gpiog 7 GPIO_OUT_LOW>;
- enum-name = "GPIO_SPI_CS_GPG7";
- label = "SPI_CS_GPG7";
+ pmic_ec_pwrgd: pmic_ec_pwrgd {
+ gpios = <&gpiox 0 GPIO_INPUT>;
+ enum-name = "GPIO_PMIC_EC_PWRGD";
+ label = "PMIC_EC_PWRGD";
};
};
@@ -348,17 +306,36 @@
compatible = "unused-gpios";
unused-gpios =
+ /* packet_mode_en */
+ <&gpiod 4 GPIO_OUT_LOW>,
+ /* pg_pp5000_z2_od */
+ <&gpiod 2 GPIO_INPUT>,
+ /* pg_mt6315_proc_b_odl */
+ <&gpioe 1 GPIO_INPUT>,
+ /* ec_pen_chg_dis_odl */
+ <&gpioh 3 GPIO_ODR_HIGH>,
+ /* ccd_mode_odl */
+ <&gpioc 4 GPIO_INPUT>,
/* uart1_rx */
<&gpiob 0 GPIO_INPUT>,
- /* nc_gpg3 */
- <&gpiog 3 GPIO_OUT_LOW>,
- /* nc_gpi7 */
- <&gpioi 7 GPIO_OUT_LOW>,
- /* nc_gpm2 */
- <&gpiom 2 (GPIO_INPUT | GPIO_PULL_DOWN)>,
- /* nc_gpm3 */
- <&gpiom 3 (GPIO_INPUT | GPIO_PULL_DOWN)>,
- /* nc_gpm6 */
- <&gpiom 6 (GPIO_INPUT | GPIO_PULL_DOWN)>;
+ /* unnamed nc pins */
+ <&gpioa 3 (GPIO_INPUT | GPIO_PULL_DOWN)>,
+ <&gpioa 6 (GPIO_INPUT | GPIO_PULL_DOWN)>,
+ <&gpioa 7 (GPIO_INPUT | GPIO_PULL_DOWN)>,
+ <&gpioc 3 (GPIO_INPUT | GPIO_PULL_DOWN)>,
+ <&gpiod 7 (GPIO_INPUT | GPIO_PULL_DOWN)>,
+ <&gpiof 1 (GPIO_INPUT | GPIO_PULL_DOWN)>,
+ <&gpioh 0 (GPIO_INPUT | GPIO_PULL_DOWN)>,
+ <&gpioh 6 (GPIO_INPUT | GPIO_PULL_DOWN)>,
+ <&gpioi 7 (GPIO_INPUT | GPIO_PULL_DOWN)>,
+ <&gpiom 6 (GPIO_INPUT | GPIO_PULL_DOWN)>,
+ /* spi_clk_gpg6 */
+ <&gpiog 6 (GPIO_INPUT | GPIO_PULL_UP)>,
+ /* spi_mosi_gpg4 */
+ <&gpiog 4 GPIO_OUT_LOW>,
+ /* spi_miso_gpg5 */
+ <&gpiog 5 GPIO_OUT_LOW>,
+ /* spi_cs_gpg7 */
+ <&gpiog 7 GPIO_OUT_LOW>;
};
};
diff --git a/zephyr/projects/corsola/krabby/include/gpio_map.h b/zephyr/projects/corsola/krabby/include/gpio_map.h
index 5f01f290d2..5122c1e42e 100644
--- a/zephyr/projects/corsola/krabby/include/gpio_map.h
+++ b/zephyr/projects/corsola/krabby/include/gpio_map.h
@@ -21,6 +21,11 @@
#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
#endif
+/* TODO: remove after icm426xx driver added */
+static inline void motion_interrupt(enum gpio_signal signal)
+{
+}
+
/*
* Set EC_CROS_GPIO_INTERRUPTS to a space-separated list of GPIO_INT items.
*
@@ -37,39 +42,33 @@
* GPIO_INT(NAMED_GPIO(h1_ec_pwr_btn_odl), GPIO_INT_EDGE_BOTH, button_print)
*/
#define EC_CROS_GPIO_INTERRUPTS \
- GPIO_INT(GPIO_LID_OPEN, \
- GPIO_INT_EDGE_BOTH, lid_interrupt) \
GPIO_INT(GPIO_POWER_BUTTON_L, \
GPIO_INT_EDGE_BOTH, power_button_interrupt) \
- GPIO_INT(GPIO_EC_IMU_INT_L, \
- GPIO_INT_EDGE_FALLING, bmi160_interrupt) \
- GPIO_INT(GPIO_LID_ACCEL_INT_L, \
- GPIO_INT_EDGE_FALLING, lis2dw12_interrupt) \
+ GPIO_INT(GPIO_LID_OPEN, \
+ GPIO_INT_EDGE_BOTH, lid_interrupt) \
GPIO_INT(GPIO_TABLET_MODE_L, \
GPIO_INT_EDGE_BOTH, gmr_tablet_switch_isr) \
- GPIO_INT(GPIO_USB_C0_PPC_INT_ODL, \
- GPIO_INT_EDGE_BOTH, ppc_interrupt) \
- GPIO_INT(GPIO_USB_C0_BC12_INT_ODL, \
- GPIO_INT_EDGE_FALLING, bc12_interrupt) \
- GPIO_INT(GPIO_USB_C1_BC12_INT_L, \
- GPIO_INT_EDGE_FALLING, bc12_interrupt) \
- GPIO_INT(GPIO_AC_PRESENT, \
- GPIO_INT_EDGE_BOTH, extpower_interrupt) \
- GPIO_INT(GPIO_X_EC_GPIO2, \
- GPIO_INT_EDGE_FALLING, x_ec_interrupt) \
- GPIO_INT(GPIO_AP_XHCI_INIT_DONE, \
- GPIO_INT_EDGE_BOTH, usb_a0_interrupt) \
- GPIO_INT(GPIO_AP_EC_WATCHDOG_L, \
- GPIO_INT_EDGE_BOTH, chipset_watchdog_interrupt) \
+ GPIO_INT(GPIO_AP_EC_WARM_RST_REQ, \
+ GPIO_INT_EDGE_RISING, chipset_reset_request_interrupt) \
GPIO_INT(GPIO_AP_IN_SLEEP_L, \
GPIO_INT_EDGE_BOTH, power_signal_interrupt) \
- GPIO_INT(GPIO_PMIC_EC_PWRGD, \
- GPIO_INT_EDGE_BOTH, power_signal_interrupt) \
- GPIO_INT(GPIO_AP_EC_WARM_RST_REQ, \
- GPIO_INT_EDGE_RISING, chipset_reset_request_interrupt) \
+ GPIO_INT(GPIO_BASE_IMU_INT_L, \
+ GPIO_INT_EDGE_FALLING, motion_interrupt) \
+ GPIO_INT(GPIO_LID_ACCEL_INT_L, \
+ GPIO_INT_EDGE_FALLING, lis2dw12_interrupt) \
+ GPIO_INT(GPIO_VOLUME_DOWN_L, \
+ GPIO_INT_EDGE_BOTH, button_interrupt) \
+ GPIO_INT(GPIO_VOLUME_UP_L, \
+ GPIO_INT_EDGE_BOTH, button_interrupt) \
+ GPIO_INT(GPIO_AP_XHCI_INIT_DONE, \
+ GPIO_INT_EDGE_BOTH, usb_a0_interrupt) \
+ GPIO_INT(GPIO_AC_PRESENT, \
+ GPIO_INT_EDGE_BOTH, extpower_interrupt) \
+ GPIO_INT(GPIO_WP, \
+ GPIO_INT_EDGE_BOTH, switch_interrupt) \
GPIO_INT(GPIO_SPI0_CS, \
- GPIO_INT_EDGE_FALLING, spi_event)
-
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
+ GPIO_INT_EDGE_FALLING, spi_event) \
+ GPIO_INT(GPIO_X_EC_GPIO2, \
+ GPIO_INT_EDGE_BOTH, x_ec_interrupt)
#endif /* __ZEPHYR_GPIO_MAP_H */
diff --git a/zephyr/projects/corsola/krabby/motionsense.dts b/zephyr/projects/corsola/krabby/motionsense.dts
index 10128b0838..00434e6be9 100644
--- a/zephyr/projects/corsola/krabby/motionsense.dts
+++ b/zephyr/projects/corsola/krabby/motionsense.dts
@@ -150,7 +150,7 @@
* list of GPIO interrupts that have to
* be enabled at initial stage
*/
- sensor-irqs = <&gpio_accel_gyro_int_l>;
+ sensor-irqs = <&base_imu_int_l>;
/* list of sensors in force mode */
accel-force-mode-sensors = <&lid_accel>;
};
diff --git a/zephyr/projects/corsola/krabby/prj.conf b/zephyr/projects/corsola/krabby/prj.conf
index 7363e4d596..ad86923679 100644
--- a/zephyr/projects/corsola/krabby/prj.conf
+++ b/zephyr/projects/corsola/krabby/prj.conf
@@ -9,6 +9,7 @@ CONFIG_SHIMMED_TASKS=y
# Bring up options
CONFIG_KERNEL_SHELL=y
CONFIG_PLATFORM_EC_SYSTEM_UNLOCKED=y
+CONFIG_GPIO_EMUL=y
# Battery
CONFIG_PLATFORM_EC_BATTERY=y
@@ -52,6 +53,14 @@ CONFIG_PLATFORM_EC_LED_ONOFF_STATES_BAT_LOW=10
# MKBP event mask
CONFIG_PLATFORM_EC_MKBP_EVENT_WAKEUP_MASK=y
CONFIG_PLATFORM_EC_MKBP_HOST_EVENT_WAKEUP_MASK=y
+CONFIG_PLATFORM_EC_MKBP_USE_GPIO=y
+
+# Keyboard
+CONFIG_PLATFORM_EC_KEYBOARD=y
+CONFIG_PLATFORM_EC_KEYBOARD_PROTOCOL_MKBP=y
+CONFIG_PLATFORM_EC_KEYBOARD_COL2_INVERTED=y
+CONFIG_PLATFORM_EC_VOLUME_BUTTONS=y
+CONFIG_PLATFORM_EC_CMD_BUTTON=y
# Sensors
CONFIG_PLATFORM_EC_MOTIONSENSE=y
@@ -78,7 +87,6 @@ CONFIG_PLATFORM_EC_USB_A_PORT_COUNT=1
CONFIG_PLATFORM_EC_BC12_DETECT_PI3USB9201=y
CONFIG_PLATFORM_EC_BC12_DETECT_MT6360=y
CONFIG_PLATFORM_EC_BC12_SINGLE_DRIVER=n
-CONFIG_PLATFORM_EC_MT6360_BC12_GPIO=y
CONFIG_PLATFORM_EC_SMBUS_PEC=y
CONFIG_PLATFORM_EC_USBC_PPC_DEDICATED_INT=y
CONFIG_PLATFORM_EC_USBC_PPC_SYV682C=y