diff options
author | Ting Shen <phoenixshen@google.com> | 2019-05-10 19:22:51 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-06-20 09:38:53 +0000 |
commit | 3e31f7f3e8708dd9ab21ce215a0eaee4657ed85e (patch) | |
tree | 29bf06b16a4b15f10196d925c6da7e74ca373700 /board/kukui/board.c | |
parent | 472a26a4bbb7fa67b782e9663a06b01a29468a79 (diff) | |
download | chrome-ec-3e31f7f3e8708dd9ab21ce215a0eaee4657ed85e.tar.gz |
krane: detect pogo charger in adc interrupt
1. Move the charging dock detection logic from POGO_VBUS_PRESENT
interrupt to POGO_ADC_INT_L interrupt. (see issue below for more
context).
2. Since the analog pin in STM32F0 can not trigger interrupt, the pin is
now an input pin, and programmed as an analog pin only when need to read
its value.
BUG=b:132419493
TEST=Manually, verify that the value of EN_POGO_CHARGE_L,
EN_USBC_CHARGE_L and EN_PP3300_POGO are correct when fake device
attached.
BRANCH=None
Change-Id: Idd468f06516a614e07aa357ffe215846314a435b
Signed-off-by: Ting Shen <phoenixshen@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1604548
Reviewed-by: Yilun Lin <yllin@chromium.org>
Commit-Queue: Ting Shen <phoenixshen@chromium.org>
Tested-by: Ting Shen <phoenixshen@chromium.org>
Auto-Submit: Ting Shen <phoenixshen@chromium.org>
Diffstat (limited to 'board/kukui/board.c')
-rw-r--r-- | board/kukui/board.c | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/board/kukui/board.c b/board/kukui/board.c index 40a18c9729..53bd3f6222 100644 --- a/board/kukui/board.c +++ b/board/kukui/board.c @@ -50,8 +50,6 @@ #define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args) #define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args) -#define POGO_VBUS_DETECT_DEBOUNCE_US (20 * MSEC) - static void tcpc_alert_event(enum gpio_signal signal) { schedule_deferred_pd_interrupt(0 /* port */); @@ -62,33 +60,6 @@ static void gauge_interrupt(enum gpio_signal signal) task_wake(TASK_ID_CHARGER); } -static void pogo_vbus_detect_deferred(void); -DECLARE_DEFERRED(pogo_vbus_detect_deferred); - -static void pogo_vbus_detect_deferred(void) -{ - if (gpio_get_level(GPIO_POGO_VBUS_PRESENT)) { - struct charge_port_info info = { - .voltage = 5000, .current = 1500}; - /* - * Set supplier type to PD to have same priority as type c - * port. - */ - charge_manager_update_charge( - CHARGE_SUPPLIER_DEDICATED, CHARGE_PORT_POGO, &info); - } else { - charge_manager_update_charge( - CHARGE_SUPPLIER_DEDICATED, CHARGE_PORT_POGO, NULL); - } - pd_send_host_event(PD_EVENT_POWER_CHANGE); -} - -static void pogo_vbus_present(enum gpio_signal signal) -{ - hook_call_deferred(&pogo_vbus_detect_deferred_data, - POGO_VBUS_DETECT_DEBOUNCE_US); -} - #include "gpio_list.h" /******************************************************************************/ @@ -191,8 +162,6 @@ static void board_pogo_charge_init(void) /* Initialize all charge suppliers to 0 */ for (i = 0; i < CHARGE_SUPPLIER_COUNT; i++) charge_manager_update_charge(i, CHARGE_PORT_POGO, NULL); - - hook_call_deferred(&pogo_vbus_detect_deferred_data, 0); } DECLARE_HOOK(HOOK_INIT, board_pogo_charge_init, HOOK_PRIO_CHARGE_MANAGER_INIT + 1); |