diff options
author | Karthikeyan Ramasubramanian <kramasub@google.com> | 2019-10-02 15:09:45 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-11-09 02:16:42 +0000 |
commit | 27db31e6d02a54d5706d8cb4d1b5db6ff757f659 (patch) | |
tree | 638e3c80f757205774cc62037b056dc9cab64132 /test | |
parent | ffb96cd5ba990c8d6d91a044105eb225087781aa (diff) | |
download | chrome-ec-27db31e6d02a54d5706d8cb4d1b5db6ff757f659.tar.gz |
Add a board specific helper to return USB PD port count
Certain SKUs of certain boards have less number of USB PD ports than
configured in CONFIG_USB_PD_PORT_MAX_COUNT. Hence define an overrideable
board specific helper to return the number of USB PD ports. This helps
to avoid initiating a PD firmware update in SKUs where there are less
number of USB PD ports. Also update charge manager to ensure that absent/
invalid PD ports are skipped during port initialization and management.
BUG=b:140816510, b:143196487
BRANCH=octopus
TEST=make -j buildall; Boot to ChromeOS in bobba(2A + 2C config) and
garg(2A + 1C + 1HDMI config).
Change-Id: Ie345cef470ad878ec443ddf4797e5d17cfe1f61e
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1879338
Tested-by: Karthikeyan Ramasubramanian <kramasub@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Commit-Queue: Karthikeyan Ramasubramanian <kramasub@chromium.org>
Diffstat (limited to 'test')
-rw-r--r-- | test/charge_manager.c | 10 | ||||
-rw-r--r-- | test/usb_pd.c | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/test/charge_manager.c b/test/charge_manager.c index 30c9efc69b..7fb8685aef 100644 --- a/test/charge_manager.c +++ b/test/charge_manager.c @@ -78,7 +78,7 @@ enum battery_present battery_is_present(void) static void clear_new_power_requests(void) { int i; - for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; ++i) + for (i = 0; i < board_get_usb_pd_port_count(); ++i) new_power_request[i] = 0; } @@ -115,7 +115,7 @@ static void initialize_charge_table(int current, int voltage, int ceil) charge.current = current; charge.voltage = voltage; - for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; ++i) { + for (i = 0; i < board_get_usb_pd_port_count(); ++i) { for (j = 0; j < CEIL_REQUESTOR_COUNT; ++j) charge_manager_set_ceil(i, j, ceil); charge_manager_update_dualrole(i, CAP_DEDICATED); @@ -141,12 +141,12 @@ static int test_initialization(void) /* Initialize all supplier/port pairs, except for the last one */ for (i = 0; i < CHARGE_SUPPLIER_COUNT; ++i) - for (j = 0; j < CONFIG_USB_PD_PORT_MAX_COUNT; ++j) { + for (j = 0; j < board_get_usb_pd_port_count(); ++j) { if (i == 0) charge_manager_update_dualrole(j, CAP_DEDICATED); if (i == CHARGE_SUPPLIER_COUNT - 1 && - j == CONFIG_USB_PD_PORT_MAX_COUNT - 1) + j == board_get_usb_pd_port_count() - 1) break; charge_manager_update_charge(i, j, &charge); } @@ -157,7 +157,7 @@ static int test_initialization(void) /* Update last pair and verify a charge port has been selected */ charge_manager_update_charge(CHARGE_SUPPLIER_COUNT-1, - CONFIG_USB_PD_PORT_MAX_COUNT-1, + board_get_usb_pd_port_count()-1, &charge); wait_for_charge_manager_refresh(); TEST_ASSERT(active_charge_port != CHARGE_PORT_NONE); diff --git a/test/usb_pd.c b/test/usb_pd.c index 96d18beafd..6ec9b3ffda 100644 --- a/test/usb_pd.c +++ b/test/usb_pd.c @@ -147,7 +147,7 @@ static void init_ports(void) { int i; - for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; ++i) { + for (i = 0; i < board_get_usb_pd_port_count(); ++i) { pd_port[i].host_mode = 0; pd_port[i].partner_role = -1; pd_port[i].has_vbus = 0; |