diff options
author | Vijay Hiremath <vijay.p.hiremath@intel.com> | 2019-12-04 12:09:09 -0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-12-07 02:51:20 +0000 |
commit | fdcc690ac4bd08bb28df5a88aee0a10ac5397e22 (patch) | |
tree | 835fb923871074c190790fc0074e62aa6276cbb0 | |
parent | 41acb78745d413f0db6dfc95c00276b622802be7 (diff) | |
download | chrome-ec-fdcc690ac4bd08bb28df5a88aee0a10ac5397e22.tar.gz |
volteer: Enable BC1.2 charge ramp
BUG=b:145683021
BRANCH=none
TEST=Able to charge ramp BC1.2 devices on both the ports
Change-Id: Iccabb3a1cf51c2cf22c6620e560d7ab74415a2cf
Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1951426
Reviewed-by: Keith Short <keithshort@chromium.org>
Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
-rw-r--r-- | baseboard/volteer/baseboard.c | 21 | ||||
-rw-r--r-- | baseboard/volteer/baseboard.h | 2 | ||||
-rw-r--r-- | board/volteer/board.h | 39 | ||||
-rw-r--r-- | board/volteer/gpio.inc | 3 |
4 files changed, 46 insertions, 19 deletions
diff --git a/baseboard/volteer/baseboard.c b/baseboard/volteer/baseboard.c index 05c391e1c6..ee0765f65a 100644 --- a/baseboard/volteer/baseboard.c +++ b/baseboard/volteer/baseboard.c @@ -21,6 +21,7 @@ #include "keyboard_scan.h" #include "pwm.h" #include "pwm_chip.h" +#include "task.h" #include "temp_sensor.h" #include "usbc_ppc.h" #include "usb_mux.h" @@ -387,6 +388,10 @@ static void baseboard_tcpc_init(void) /* Enable TCPC interrupts. */ gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL); gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL); + + /* Enable BC1.2 interrupts. */ + gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL); + gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL); } DECLARE_HOOK(HOOK_INIT, baseboard_tcpc_init, HOOK_PRIO_INIT_I2C + 1); @@ -446,6 +451,22 @@ void tcpc_alert_event(enum gpio_signal signal) schedule_deferred_pd_interrupt(port); } +void bc12_interrupt(enum gpio_signal signal) +{ + switch (signal) { + case GPIO_USB_C0_BC12_INT_ODL: + task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12, 0); + break; + + case GPIO_USB_C1_BC12_INT_ODL: + task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12, 0); + break; + + default: + break; + } +} + int board_set_active_charge_port(int port) { /* TODO: b/140561826 - check correct operation for Volteer */ diff --git a/baseboard/volteer/baseboard.h b/baseboard/volteer/baseboard.h index 38f29a3eac..295c885590 100644 --- a/baseboard/volteer/baseboard.h +++ b/baseboard/volteer/baseboard.h @@ -70,6 +70,7 @@ /* Common charger defines */ #define CONFIG_CHARGE_MANAGER +#define CONFIG_CHARGE_RAMP_HW #define CONFIG_CHARGER #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 @@ -223,6 +224,7 @@ void board_reset_pd_mcu(void); /* Common definition for the USB PD interrupt handlers. */ void ppc_interrupt(enum gpio_signal signal); void tcpc_alert_event(enum gpio_signal signal); +void bc12_interrupt(enum gpio_signal signal); #endif /* !__ASSEMBLER__ */ diff --git a/board/volteer/board.h b/board/volteer/board.h index 72dca78ddc..7f7344bf74 100644 --- a/board/volteer/board.h +++ b/board/volteer/board.h @@ -57,25 +57,26 @@ * then redefined here to so it's more clear which signal is being used for * which purpose. */ -#define GPIO_AC_PRESENT GPIO_ACOK_OD -#define GPIO_EC_INT_L EC_PCH_INT_ODL -#define GPIO_EN_PP5000 GPIO_EN_PP5000_A -#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW -#define GPIO_LID_OPEN GPIO_EC_LID_OPEN -#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV -#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL -#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL -#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL -#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST -#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK -#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L -#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L -#define GPIO_PG_EC_DSW_PWROK GPIO_DSW_PWROK -#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL -#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL -#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL -#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL -#define GPIO_WP_L GPIO_EC_WP_L +#define GPIO_AC_PRESENT GPIO_ACOK_OD +#define GPIO_EC_INT_L EC_PCH_INT_ODL +#define GPIO_EN_PP5000 GPIO_EN_PP5000_A +#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW +#define GPIO_LID_OPEN GPIO_EC_LID_OPEN +#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV +#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL +#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL +#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL +#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST +#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK +#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L +#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L +#define GPIO_PG_EC_DSW_PWROK GPIO_DSW_PWROK +#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL +#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL +#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL +#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL +#define GPIO_WP_L GPIO_EC_WP_L +#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL #ifndef __ASSEMBLER__ diff --git a/board/volteer/gpio.inc b/board/volteer/gpio.inc index 0324f94bb9..dc008362e6 100644 --- a/board/volteer/gpio.inc +++ b/board/volteer/gpio.inc @@ -38,6 +38,9 @@ GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event) GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt) GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt) +GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt) +GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt) + /* HDMI interrupts */ /* Volume button interrupts */ |