diff options
author | Alec Berg <alecaberg@chromium.org> | 2015-08-03 16:33:44 -0700 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-08-05 16:50:46 +0000 |
commit | feea8de21bb7d73624eddaeb536a0bc298ccc61e (patch) | |
tree | beeeda82a2bf7b7d536bedd55d2ba4aa44a38967 /board/strago/board.c | |
parent | 38eb374fceed84ea499c5e27c8b2ded869c5d75f (diff) | |
download | chrome-ec-feea8de21bb7d73624eddaeb536a0bc298ccc61e.tar.gz |
usb_charger: move common usb charger code out of board directory
Move common USB charger code out of board directory including
setting VBUS supplier when VBUS changes, and initializing BC1.2
supplier types on init.
This also enables re-enabling of Pericom BC1.2 detection interrupts
when VBUS is changed on all boards that use USB_CHG task.
BUG=chrome-os-partner:42292
BRANCH=none
TEST=make -j buildall. Tested on glados and samus by plugging in
a few different chargers and making sure we charge.
Change-Id: Ib102fbf7a6aace998e6fcb6d35f3c97e5f03f5c2
Signed-off-by: Alec Berg <alecaberg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/290453
Reviewed-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Rong Chang <rongchang@chromium.org>
Diffstat (limited to 'board/strago/board.c')
-rw-r--r-- | board/strago/board.c | 47 |
1 files changed, 2 insertions, 45 deletions
diff --git a/board/strago/board.c b/board/strago/board.c index a2c5b75992..6b6b3a7089 100644 --- a/board/strago/board.c +++ b/board/strago/board.c @@ -56,35 +56,16 @@ static void pd_mcu_interrupt(enum gpio_signal signal) #endif } -static void update_vbus_supplier(int port, int vbus_level) -{ - struct charge_port_info charge; - - /* - * If VBUS is low, or VBUS is high and we are not outputting VBUS - * ourselves, then update the VBUS supplier. - */ - if (!vbus_level || !usb_charger_port_is_sourcing_vbus(port)) { - charge.voltage = USB_CHARGER_VOLTAGE_MV; - charge.current = vbus_level ? USB_CHARGER_MIN_CURR_MA : 0; - charge_manager_update_charge(CHARGE_SUPPLIER_VBUS, - port, - &charge); - } -} - void vbus0_evt(enum gpio_signal signal) { /* VBUS present GPIO is inverted */ - int vbus_level = !gpio_get_level(signal); - - update_vbus_supplier(0, vbus_level); + usb_charger_vbus_change(0, !gpio_get_level(signal)); task_wake(TASK_ID_PD); } void usb0_evt(enum gpio_signal signal) { - task_wake(TASK_ID_USB_CHG_P0); + task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12, 0); } #include "gpio_list.h" @@ -311,35 +292,11 @@ DECLARE_HOOK(HOOK_INIT, adc_pre_init, HOOK_PRIO_INIT_ADC - 1); /* Initialize board. */ static void board_init(void) { - struct charge_port_info charge_none; - /* Enable PD MCU interrupt */ gpio_enable_interrupt(GPIO_PD_MCU_INT); /* Enable VBUS interrupt */ gpio_enable_interrupt(GPIO_USB_C0_VBUS_WAKE_L); - /* Initialize all pericom charge suppliers to 0 */ - charge_none.voltage = USB_CHARGER_VOLTAGE_MV; - charge_none.current = 0; - charge_manager_update_charge(CHARGE_SUPPLIER_PROPRIETARY, - 0, - &charge_none); - charge_manager_update_charge(CHARGE_SUPPLIER_BC12_CDP, - 0, - &charge_none); - charge_manager_update_charge(CHARGE_SUPPLIER_BC12_DCP, - 0, - &charge_none); - charge_manager_update_charge(CHARGE_SUPPLIER_BC12_SDP, - 0, - &charge_none); - charge_manager_update_charge(CHARGE_SUPPLIER_OTHER, - 0, - &charge_none); - - /* Initialize VBUS supplier based on whether or not VBUS is present */ - update_vbus_supplier(0, !gpio_get_level(GPIO_USB_C0_VBUS_WAKE_L)); - /* Enable pericom BC1.2 interrupts */ gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L); } |