diff options
author | Ting Shen <phoenixshen@google.com> | 2021-10-14 18:05:30 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-11-09 08:23:48 +0000 |
commit | a76dd14bfadf564545a7ef7da3d5596e65a0443c (patch) | |
tree | 372ee8fed968c2d937feb6373b1b9117b134fa83 | |
parent | 2a41bfec6c3006603c2ae2b23da9a055e5ea9784 (diff) | |
download | chrome-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.c | 3 | ||||
-rw-r--r-- | baseboard/corsola/hibernate.c | 8 | ||||
-rw-r--r-- | baseboard/corsola/usb_pd_policy.c | 4 | ||||
-rw-r--r-- | baseboard/corsola/usbc_config.c | 23 | ||||
-rw-r--r-- | board/kingler/gpio.inc | 11 | ||||
-rw-r--r-- | board/krabby/board.h | 2 | ||||
-rw-r--r-- | board/krabby/gpio.inc | 128 | ||||
-rw-r--r-- | zephyr/dts/bindings/gpio/gpio-enum-name.yaml | 35 | ||||
-rw-r--r-- | zephyr/projects/corsola/krabby/gpio.dts | 367 | ||||
-rw-r--r-- | zephyr/projects/corsola/krabby/include/gpio_map.h | 53 | ||||
-rw-r--r-- | zephyr/projects/corsola/krabby/motionsense.dts | 2 | ||||
-rw-r--r-- | zephyr/projects/corsola/krabby/prj.conf | 10 |
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 |