diff options
author | Aaron Massey <aaronmassey@google.com> | 2022-01-18 16:28:59 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2022-01-21 22:44:08 +0000 |
commit | db0ed1b91ce7d3265128e6f93436d8eb949fd0b2 (patch) | |
tree | c500d94ed38e3d24793405eb2dc7a473e3972180 | |
parent | b2f8f3f7776fb62cec7d7a7267fffa56304b625f (diff) | |
download | chrome-ec-db0ed1b91ce7d3265128e6f93436d8eb949fd0b2.tar.gz |
charge_manager: test can EC_CMD_USB_PD_POWER_INFO
Enable the implementation of EC_CMD_USB_PD_POWER_INFO in test builds.
Add a mock implementation of ADCs.
BRANCH=none
BUG=b:215389861
TEST=make buildall
TEST=zmake configure --test test-drivers
Signed-off-by: Aaron Massey <aaronmassey@google.com>
Change-Id: Icdef25cfb8e01e62b680af87683ca1dd34f04542
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3399877
Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
-rw-r--r-- | board/host/board.c | 5 | ||||
-rw-r--r-- | board/host/board.h | 1 | ||||
-rw-r--r-- | board/host/usb_pd_policy.c | 4 | ||||
-rw-r--r-- | common/charge_manager.c | 6 | ||||
-rw-r--r-- | common/mock/adc_mock.c | 11 | ||||
-rw-r--r-- | common/mock/build.mk | 2 | ||||
-rw-r--r-- | driver/build.mk | 2 | ||||
-rw-r--r-- | test/build.mk | 4 | ||||
-rw-r--r-- | test/charge_manager.mocklist | 6 | ||||
l--------- | test/charge_manager_drp_charging.mocklist | 1 | ||||
-rw-r--r-- | test/fake_usbc.c | 7 | ||||
-rw-r--r-- | test/test_config.h | 2 |
12 files changed, 41 insertions, 10 deletions
diff --git a/board/host/board.c b/board/host/board.c index b681ca98fb..e639b6bc99 100644 --- a/board/host/board.c +++ b/board/host/board.c @@ -20,6 +20,7 @@ #include "temp_sensor.h" #include "test_util.h" #include "timer.h" +#include "usb_pd_tcpm.h" #include "util.h" /* @@ -31,6 +32,10 @@ #include "gpio_list.h" +test_mockable const struct tcpc_config_t tcpc_config[] = { + [0] = {}, +}; + test_mockable enum battery_present battery_is_present(void) { return BP_YES; diff --git a/board/host/board.h b/board/host/board.h index f9d00961e7..979763af4e 100644 --- a/board/host/board.h +++ b/board/host/board.h @@ -44,6 +44,7 @@ enum temp_sensor_id { enum adc_channel { ADC_CH_CHARGER_CURRENT, ADC_AC_ADAPTER_ID_VOLTAGE, + ADC_VBUS, ADC_CH_COUNT }; diff --git a/board/host/usb_pd_policy.c b/board/host/usb_pd_policy.c index b02891ee29..b90db882ce 100644 --- a/board/host/usb_pd_policy.c +++ b/board/host/usb_pd_policy.c @@ -23,8 +23,8 @@ test_mockable void pd_power_supply_reset(int port) /* Not implemented */ } -void pd_set_input_current_limit(int port, uint32_t max_ma, - uint32_t supply_voltage) +__overridable void pd_set_input_current_limit(int port, uint32_t max_ma, + uint32_t supply_voltage) { /* Not implemented */ } diff --git a/common/charge_manager.c b/common/charge_manager.c index 041f41f1bc..0e7c0da702 100644 --- a/common/charge_manager.c +++ b/common/charge_manager.c @@ -181,7 +181,6 @@ static int is_valid_port(int port) return 1; } -#ifndef TEST_BUILD static int is_connected(int port) { if (!is_pd_port(port)) @@ -189,7 +188,6 @@ static int is_connected(int port) return pd_is_connected(port); } -#endif /* !TEST_BUILD */ #ifndef CONFIG_CHARGE_MANAGER_DRP_CHARGING /** @@ -273,7 +271,6 @@ int charge_manager_get_pd_current_uncapped(void) return charge_pd_current_uncapped; } -#ifndef TEST_BUILD /** * Get the maximum charge current for a port. * @@ -543,7 +540,6 @@ static void charge_manager_fill_power_info(int port, r->meas.voltage_now = get_vbus_voltage(port, r->role); } } -#endif /* TEST_BUILD */ #ifdef CONFIG_USB_PD_LOGGING /** @@ -1429,7 +1425,6 @@ int charge_manager_get_source_pdo(const uint32_t **src_pdo, const int port) } #endif /* CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT && !CONFIG_USB_PD_TCPMV2 */ -#ifndef TEST_BUILD static enum ec_status hc_pd_power_info(struct host_cmd_handler_args *args) { const struct ec_params_usb_pd_power_info *p = args->params; @@ -1456,7 +1451,6 @@ static enum ec_status hc_pd_power_info(struct host_cmd_handler_args *args) DECLARE_HOST_COMMAND(EC_CMD_USB_PD_POWER_INFO, hc_pd_power_info, EC_VER_MASK(0)); -#endif /* TEST_BUILD */ static enum ec_status hc_charge_port_count(struct host_cmd_handler_args *args) { diff --git a/common/mock/adc_mock.c b/common/mock/adc_mock.c new file mode 100644 index 0000000000..9727c560d3 --- /dev/null +++ b/common/mock/adc_mock.c @@ -0,0 +1,11 @@ +/* Copyright 2022 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "adc.h" + +int adc_read_channel(enum adc_channel ch) +{ + return 0; +} diff --git a/common/mock/build.mk b/common/mock/build.mk index 91607b2b1e..fd87f40990 100644 --- a/common/mock/build.mk +++ b/common/mock/build.mk @@ -4,6 +4,7 @@ # See common/mock/README.md for more information. +mock-$(HAS_MOCK_ADC) += adc_mock.o mock-$(HAS_MOCK_BATTERY) += battery_mock.o mock-$(HAS_MOCK_CHARGE_MANAGER) += charge_manager_mock.o mock-$(HAS_MOCK_FP_SENSOR) += fp_sensor_mock.o @@ -21,3 +22,4 @@ mock-$(HAS_MOCK_USB_TC_SM) += usb_tc_sm_mock.o mock-$(HAS_MOCK_USB_PD_DPM) += usb_pd_dpm_mock.o mock-$(HAS_MOCK_DP_ALT_MODE) += dp_alt_mode_mock.o mock-$(HAS_MOCK_USB_PRL) += usb_prl_mock.o +mock-$(HAS_MOCK_USB_PE_DRP_SM) += usb_pe_drp_sm_mock.o diff --git a/driver/build.mk b/driver/build.mk index 2757eb3ceb..271404ba09 100644 --- a/driver/build.mk +++ b/driver/build.mk @@ -56,7 +56,9 @@ driver-$(CONFIG_BATTERY_BQ20Z453)+=battery/bq20z453.o driver-$(CONFIG_BATTERY_BQ27541)+=battery/bq27541.o driver-$(CONFIG_BATTERY_BQ27621)+=battery/bq27621_g1.o driver-$(CONFIG_BATTERY_MAX17055)+=battery/max17055.o +ifeq ($(HAS_MOCK_BATTERY),) driver-$(CONFIG_BATTERY_SMART)+=battery/smart.o +endif driver-$(CONFIG_BATTERY_BQ4050)+=battery/bq4050.o driver-$(CONFIG_BATTERY_MM8013)+=battery/mm8013.o diff --git a/test/build.mk b/test/build.mk index 7b9086eaf5..4be461efbd 100644 --- a/test/build.mk +++ b/test/build.mk @@ -152,8 +152,8 @@ button-y=button.o cbi-y=cbi.o cbi_wp-y=cbi_wp.o cec-y=cec.o -charge_manager-y=charge_manager.o -charge_manager_drp_charging-y=charge_manager.o +charge_manager-y=charge_manager.o fake_usbc.o +charge_manager_drp_charging-y=charge_manager.o fake_usbc.o charge_ramp-y+=charge_ramp.o compile_time_macros-y=compile_time_macros.o console_edit-y=console_edit.o diff --git a/test/charge_manager.mocklist b/test/charge_manager.mocklist new file mode 100644 index 0000000000..69c74e9bcd --- /dev/null +++ b/test/charge_manager.mocklist @@ -0,0 +1,6 @@ +#ifdef BOARD_HOST +#define CONFIG_TEST_MOCK_LIST \ + MOCK(ADC) \ + MOCK(BATTERY) \ + +#endif diff --git a/test/charge_manager_drp_charging.mocklist b/test/charge_manager_drp_charging.mocklist new file mode 120000 index 0000000000..0df9e2fdb0 --- /dev/null +++ b/test/charge_manager_drp_charging.mocklist @@ -0,0 +1 @@ +charge_manager.mocklist
\ No newline at end of file diff --git a/test/fake_usbc.c b/test/fake_usbc.c index f6207c4c4f..c1a48ad4d5 100644 --- a/test/fake_usbc.c +++ b/test/fake_usbc.c @@ -152,6 +152,13 @@ __overridable void pd_dev_get_rw_hash(int port, uint16_t *dev_id, { } +__overridable int pd_dev_store_rw_hash(int port, uint16_t dev_id, + uint32_t *rw_hash, + uint32_t current_image) +{ + return 0; +} + __overridable int pd_comm_is_enabled(int port) { return 0; diff --git a/test/test_config.h b/test/test_config.h index 8383ce005e..b315e1d761 100644 --- a/test/test_config.h +++ b/test/test_config.h @@ -578,8 +578,10 @@ int ncp15wb_calculate_temp(uint16_t adc); #if defined(TEST_CHARGE_MANAGER) || defined(TEST_CHARGE_MANAGER_DRP_CHARGING) #define CONFIG_CHARGE_MANAGER +#define CONFIG_USB_PD_3A_PORTS 0 /* Host does not define a 3.0 A PDO */ #define CONFIG_USB_PD_DUAL_ROLE #define CONFIG_USB_PD_PORT_MAX_COUNT 2 +#define CONFIG_USB_POWER_DELIVERY #define CONFIG_BATTERY #define CONFIG_BATTERY_SMART #define CONFIG_I2C |