diff options
author | Philip Chen <philipchen@google.com> | 2017-08-28 19:27:42 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-08-30 16:13:18 -0700 |
commit | f35ae8ab1cb26acaa6fc5a27e63568f04e22094e (patch) | |
tree | 3042c30cf6ba2c924e94a02ea606623ec9591d1e /board/scarlet | |
parent | 17150b05ff20069198f009a7d48282013dcd02cf (diff) | |
download | chrome-ec-f35ae8ab1cb26acaa6fc5a27e63568f04e22094e.tar.gz |
scarlet: Initialize non-PD/USB-C charge suppliers
Before all of the charge suppliers are initialized,
charge_manager_refresh() wouldn't be called to update
charging voltage/current.
Since we don't define CONFIG_USB_CHARGER, we need
to do the initialization in board specific files.
BUG=b:65118519
BRANCH=none
TEST=manually verify charging voltage/current are updated
Change-Id: Ib0c226c236b8add0dcba7bf3610da47c26166732
Signed-off-by: Philip Chen <philipchen@google.com>
Reviewed-on: https://chromium-review.googlesource.com/639926
Commit-Ready: Philip Chen <philipchen@chromium.org>
Tested-by: Philip Chen <philipchen@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
Diffstat (limited to 'board/scarlet')
-rw-r--r-- | board/scarlet/board.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/board/scarlet/board.c b/board/scarlet/board.c index 7ae9598490..de5fe6ac8e 100644 --- a/board/scarlet/board.c +++ b/board/scarlet/board.c @@ -281,6 +281,9 @@ DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, static void board_init(void) { + int i; + struct charge_port_info charge_none; + /* Enable TCPC alert interrupts */ gpio_enable_interrupt(GPIO_USB_C0_PD_INT_L); @@ -294,6 +297,34 @@ static void board_init(void) /* Sensor Init */ if (system_jumped_to_this_image() && chipset_in_state(CHIPSET_STATE_ON)) board_spi_enable(); + + /* + * Even if we don't support BC 1.2, we still need to initialize + * non-PD/USB-C charge suppliers to make charge manager seeded. + */ + charge_none.voltage = 0; + charge_none.current = 0; + + for (i = 0; i < CONFIG_USB_PD_PORT_COUNT; i++) { + charge_manager_update_charge(CHARGE_SUPPLIER_PROPRIETARY, + i, + &charge_none); + charge_manager_update_charge(CHARGE_SUPPLIER_BC12_CDP, + i, + &charge_none); + charge_manager_update_charge(CHARGE_SUPPLIER_BC12_DCP, + i, + &charge_none); + charge_manager_update_charge(CHARGE_SUPPLIER_BC12_SDP, + i, + &charge_none); + charge_manager_update_charge(CHARGE_SUPPLIER_OTHER, + i, + &charge_none); + charge_manager_update_charge(CHARGE_SUPPLIER_VBUS, + i, + &charge_none); + } } DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT); |