summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Massey <aaronmassey@google.com>2022-01-18 16:28:59 -0700
committerCommit Bot <commit-bot@chromium.org>2022-01-21 22:44:08 +0000
commitdb0ed1b91ce7d3265128e6f93436d8eb949fd0b2 (patch)
treec500d94ed38e3d24793405eb2dc7a473e3972180
parentb2f8f3f7776fb62cec7d7a7267fffa56304b625f (diff)
downloadchrome-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.c5
-rw-r--r--board/host/board.h1
-rw-r--r--board/host/usb_pd_policy.c4
-rw-r--r--common/charge_manager.c6
-rw-r--r--common/mock/adc_mock.c11
-rw-r--r--common/mock/build.mk2
-rw-r--r--driver/build.mk2
-rw-r--r--test/build.mk4
-rw-r--r--test/charge_manager.mocklist6
l---------test/charge_manager_drp_charging.mocklist1
-rw-r--r--test/fake_usbc.c7
-rw-r--r--test/test_config.h2
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