summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/auron/board.h4
-rw-r--r--board/big/board.c8
-rw-r--r--board/big/board.h3
-rw-r--r--board/cyan/board.c8
-rw-r--r--board/cyan/board.h2
-rw-r--r--board/glados/board.c8
-rw-r--r--board/glados/board.h3
-rw-r--r--board/glower/board.c7
-rw-r--r--board/glower/board.h3
-rw-r--r--board/kunimitsu/board.c8
-rw-r--r--board/kunimitsu/board.h3
-rw-r--r--board/llama/board.c8
-rw-r--r--board/llama/board.h3
-rw-r--r--board/lucid/board.c23
-rw-r--r--board/lucid/board.h4
-rw-r--r--board/oak/board.c15
-rw-r--r--board/oak/board.h3
-rw-r--r--board/pinky/board.c8
-rw-r--r--board/pinky/board.h3
-rw-r--r--board/rambi/board.c7
-rw-r--r--board/rambi/board.h3
-rw-r--r--board/ryu/board.c8
-rw-r--r--board/ryu/board.h3
-rw-r--r--board/ryu_p4p5/board.c8
-rw-r--r--board/ryu_p4p5/board.h3
-rw-r--r--board/samus/board.h2
-rw-r--r--board/strago/board.c5
-rw-r--r--board/strago/board.h3
-rw-r--r--board/strago/led.c2
-rw-r--r--common/charge_state_v1.c4
-rw-r--r--common/charge_state_v2.c4
-rw-r--r--include/charger.h3
-rw-r--r--include/config.h3
-rw-r--r--test/test_config.h2
34 files changed, 19 insertions, 165 deletions
diff --git a/board/auron/board.h b/board/auron/board.h
index 99607cd827..647de67ff2 100644
--- a/board/auron/board.h
+++ b/board/auron/board.h
@@ -19,6 +19,7 @@
#define CONFIG_CHARGER_V1
#define CONFIG_CHARGER_BQ24707A
#define CONFIG_CHARGER_DISCHARGE_ON_AC
+#define CONFIG_CHARGER_DISCHARGE_ON_AC_CUSTOM
#define CONFIG_CHIPSET_CAN_THROTTLE
#define CONFIG_CHIPSET_HASWELL
#define CONFIG_POWER_COMMON
@@ -108,9 +109,6 @@ enum temp_sensor_id {
#define WIRELESS_GPIO_WWAN GPIO_PP3300_LTE_EN
#define WIRELESS_GPIO_WLAN_POWER GPIO_PP3300_WLAN_EN
-/* Discharge battery when on AC power for factory test. */
-int board_discharge_on_ac(int enable);
-
#endif /* !__ASSEMBLER__ */
#endif /* __CROS_EC_BOARD_H */
diff --git a/board/big/board.c b/board/big/board.c
index ebc7f14a5e..54fd88d12e 100644
--- a/board/big/board.c
+++ b/board/big/board.c
@@ -48,11 +48,3 @@ const struct pwm_t pwm_channels[] = {
PWM_CONFIG_ACTIVE_LOW, GPIO_LED_POWER_L},
};
BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/**
- * Discharge battery when on AC power for factory test.
- */
-int board_discharge_on_ac(int enable)
-{
- return charger_discharge_on_ac(enable);
-}
diff --git a/board/big/board.h b/board/big/board.h
index 4beb88baba..e83d89ee5d 100644
--- a/board/big/board.h
+++ b/board/big/board.h
@@ -70,9 +70,6 @@ enum pwm_channel {
#define CONFIG_CHARGER_INPUT_CURRENT 2048 /* mA, based on Link HW design */
#define CONFIG_CHARGER_CURRENT_LIMIT 3000 /* PL102 inductor 3.0A(3.8A) */
-/* Discharge battery when on AC power for factory test. */
-int board_discharge_on_ac(int enable);
-
#endif /* !__ASSEMBLER__ */
#endif /* __CROS_EC_BOARD_H */
diff --git a/board/cyan/board.c b/board/cyan/board.c
index d99ded8523..39855fd01b 100644
--- a/board/cyan/board.c
+++ b/board/cyan/board.c
@@ -82,14 +82,6 @@ struct ec_thermal_config thermal_params[] = {
};
BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-/**
- * Discharge battery when on AC power for factory test.
- */
-int board_discharge_on_ac(int enable)
-{
- return charger_discharge_on_ac(enable);
-}
-
/* kxcj9 mutex and local/private data*/
static struct mutex g_kxcj9_mutex[2];
struct kxcj9_data g_kxcj9_data[2];
diff --git a/board/cyan/board.h b/board/cyan/board.h
index ce44fdf356..dd4daa0818 100644
--- a/board/cyan/board.h
+++ b/board/cyan/board.h
@@ -109,8 +109,6 @@ enum temp_sensor_id {
TEMP_SENSOR_COUNT
};
-/* Discharge battery when on AC power for factory test. */
-int board_discharge_on_ac(int enable);
#endif /* !__ASSEMBLER__ */
#endif /* __CROS_EC_BOARD_H */
diff --git a/board/glados/board.c b/board/glados/board.c
index 843fbc9133..11d0336990 100644
--- a/board/glados/board.c
+++ b/board/glados/board.c
@@ -157,14 +157,6 @@ void board_set_usb_switches(int port, enum usb_switch setting)
}
/**
- * Discharge battery when on AC power for factory test.
- */
-int board_discharge_on_ac(int enable)
-{
- return charger_discharge_on_ac(enable);
-}
-
-/**
* Reset PD MCU
*/
void board_reset_pd_mcu(void)
diff --git a/board/glados/board.h b/board/glados/board.h
index f1aa9eea94..83bc659347 100644
--- a/board/glados/board.h
+++ b/board/glados/board.h
@@ -136,9 +136,6 @@ enum temp_sensor_id {
*/
#define PD_MAX_VOLTAGE_MV 5000
-/* Discharge battery when on AC power for factory test. */
-int board_discharge_on_ac(int enable);
-
/* Reset PD MCU */
void board_reset_pd_mcu(void);
diff --git a/board/glower/board.c b/board/glower/board.c
index 6198c05c31..9e9c110809 100644
--- a/board/glower/board.c
+++ b/board/glower/board.c
@@ -45,10 +45,3 @@ const struct i2c_port_t i2c_ports[] = {
};
const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-/**
- * Discharge battery when on AC power for factory test.
- */
-int board_discharge_on_ac(int enable)
-{
- return charger_discharge_on_ac(enable);
-}
diff --git a/board/glower/board.h b/board/glower/board.h
index a26edf0d40..ac9e37469a 100644
--- a/board/glower/board.h
+++ b/board/glower/board.h
@@ -107,9 +107,6 @@ enum power_signal {
POWER_SIGNAL_COUNT
};
-/* Discharge battery when on AC power for factory test. */
-int board_discharge_on_ac(int enable);
-
#endif /* !__ASSEMBLER__ */
#endif /* __CROS_EC_BOARD_H */
diff --git a/board/kunimitsu/board.c b/board/kunimitsu/board.c
index 8784e331cb..db4d81f647 100644
--- a/board/kunimitsu/board.c
+++ b/board/kunimitsu/board.c
@@ -150,14 +150,6 @@ void board_set_usb_switches(int port, enum usb_switch setting)
}
/**
- * Discharge battery when on AC power for factory test.
- */
-int board_discharge_on_ac(int enable)
-{
- return charger_discharge_on_ac(enable);
-}
-
-/**
* Reset PD MCU
*/
void board_reset_pd_mcu(void)
diff --git a/board/kunimitsu/board.h b/board/kunimitsu/board.h
index 91ac65c5f9..f0e2419d6c 100644
--- a/board/kunimitsu/board.h
+++ b/board/kunimitsu/board.h
@@ -160,9 +160,6 @@ enum als_id {
#define PD_MAX_CURRENT_MA 3000
#define PD_MAX_VOLTAGE_MV 20000
-/* Discharge battery when on AC power for factory test. */
-int board_discharge_on_ac(int enable);
-
/* Reset PD MCU */
void board_reset_pd_mcu(void);
diff --git a/board/llama/board.c b/board/llama/board.c
index 7bacd2628d..327eeba920 100644
--- a/board/llama/board.c
+++ b/board/llama/board.c
@@ -63,14 +63,6 @@ const struct i2c_port_t i2c_ports[] = {
const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
#endif
-/**
- * Discharge battery when on AC power for factory test.
- */
-int board_discharge_on_ac(int enable)
-{
- return charger_discharge_on_ac(enable);
-}
-
void board_config_pre_init(void)
{
/* enable SYSCFG clock */
diff --git a/board/llama/board.h b/board/llama/board.h
index be48c0cb7a..93993f9759 100644
--- a/board/llama/board.h
+++ b/board/llama/board.h
@@ -93,9 +93,6 @@ enum pwm_channel {
#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10 /* mOhm */
#define CONFIG_CHARGER_INPUT_CURRENT 2150 /* mA */
-/* Discharge battery when on AC power for factory test. */
-int board_discharge_on_ac(int enable);
-
#endif /* !__ASSEMBLER__ */
#endif /* __CROS_EC_BOARD_H */
diff --git a/board/lucid/board.c b/board/lucid/board.c
index fc83e71c7a..c9ae07c65d 100644
--- a/board/lucid/board.c
+++ b/board/lucid/board.c
@@ -145,26 +145,3 @@ enum battery_present battery_is_present(void)
{
return gpio_get_level(GPIO_BAT_PRESENT) ? BP_YES : BP_NO;
}
-
-static int discharging_on_ac;
-
-/**
- * Discharge battery when on AC power for factory test.
- */
-int board_discharge_on_ac(int enable)
-{
- int rv = charger_discharge_on_ac(enable);
-
- if (rv == EC_SUCCESS)
- discharging_on_ac = enable;
-
- return rv;
-}
-
-/**
- * Check if we are discharging while connected to AC
- */
-int board_is_discharging_on_ac(void)
-{
- return discharging_on_ac;
-}
diff --git a/board/lucid/board.h b/board/lucid/board.h
index 4237d17e71..7a4c341493 100644
--- a/board/lucid/board.h
+++ b/board/lucid/board.h
@@ -90,10 +90,6 @@ enum adc_channel {
ADC_CH_COUNT
};
-/* Discharge battery when on AC power for factory test. */
-int board_discharge_on_ac(int enable);
-int board_is_discharging_on_ac(void);
-
#define PD_DEFAULT_STATE PD_STATE_SNK_DISCONNECTED
/* we are never a source : don't care about power supply */
diff --git a/board/oak/board.c b/board/oak/board.c
index e181b59e10..e63ceb2136 100644
--- a/board/oak/board.c
+++ b/board/oak/board.c
@@ -173,8 +173,6 @@ struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_COUNT] = {
},
};
-static int discharging_on_ac;
-
/**
* Store the state of our USB data switches so that they can be restored
* after pericom reset.
@@ -189,19 +187,6 @@ static int dp_hw_port = PD_PORT_NONE;
static struct mutex dp_hw_lock;
/**
- * Discharge battery when on AC power for factory test.
- */
-int board_discharge_on_ac(int enable)
-{
- int rv = charger_discharge_on_ac(enable);
-
- if (rv == EC_SUCCESS)
- discharging_on_ac = enable;
-
- return rv;
-}
-
-/**
* Reset PD MCU
*/
void board_reset_pd_mcu(void)
diff --git a/board/oak/board.h b/board/oak/board.h
index 940aa87b3d..8200c81916 100644
--- a/board/oak/board.h
+++ b/board/oak/board.h
@@ -172,9 +172,6 @@ enum temp_sensor_id {
#define PD_MAX_CURRENT_MA 3000
#define PD_MAX_VOLTAGE_MV 20000
-/* Discharge battery when on AC power for factory test. */
-int board_discharge_on_ac(int enable);
-
/* Reset PD MCU */
void board_reset_pd_mcu(void);
diff --git a/board/pinky/board.c b/board/pinky/board.c
index 0de6da5567..3c6974e689 100644
--- a/board/pinky/board.c
+++ b/board/pinky/board.c
@@ -51,14 +51,6 @@ const struct pwm_t pwm_channels[] = {
};
BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-/**
- * Discharge battery when on AC power for factory test.
- */
-int board_discharge_on_ac(int enable)
-{
- return charger_discharge_on_ac(enable);
-}
-
static void board_startup_hook(void)
{
/* Power on the VCC_5V */
diff --git a/board/pinky/board.h b/board/pinky/board.h
index 51ec71bebb..3e1efa3395 100644
--- a/board/pinky/board.h
+++ b/board/pinky/board.h
@@ -78,9 +78,6 @@ enum pwm_channel {
#define CONFIG_CHARGER_INPUT_CURRENT 2048 /* mA, based on Link HW design */
#define CONFIG_CHARGER_CURRENT_LIMIT 3000 /* PL102 inductor 3.0A(3.8A) */
-/* Discharge battery when on AC power for factory test. */
-int board_discharge_on_ac(int enable);
-
#endif /* !__ASSEMBLER__ */
#endif /* __CROS_EC_BOARD_H */
diff --git a/board/rambi/board.c b/board/rambi/board.c
index 35e5849b73..5516b94ee0 100644
--- a/board/rambi/board.c
+++ b/board/rambi/board.c
@@ -116,10 +116,3 @@ struct ec_thermal_config thermal_params[] = {
};
BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-/**
- * Discharge battery when on AC power for factory test.
- */
-int board_discharge_on_ac(int enable)
-{
- return charger_discharge_on_ac(enable);
-}
diff --git a/board/rambi/board.h b/board/rambi/board.h
index f08e6a0266..d8255734bc 100644
--- a/board/rambi/board.h
+++ b/board/rambi/board.h
@@ -128,9 +128,6 @@ enum temp_sensor_id {
TEMP_SENSOR_COUNT
};
-/* Discharge battery when on AC power for factory test. */
-int board_discharge_on_ac(int enable);
-
#endif /* !__ASSEMBLER__ */
#endif /* __CROS_EC_BOARD_H */
diff --git a/board/ryu/board.c b/board/ryu/board.c
index 0e3c5af423..3a724d4ad9 100644
--- a/board/ryu/board.c
+++ b/board/ryu/board.c
@@ -344,14 +344,6 @@ void board_set_usb_switches(int port, enum usb_switch setting)
pi3usb9281_set_switches(port, usb_switch_state);
}
-/**
- * Discharge battery when on AC power for factory test.
- */
-int board_discharge_on_ac(int enable)
-{
- return charger_discharge_on_ac(enable);
-}
-
int extpower_is_present(void)
{
return gpio_get_level(GPIO_CHGR_ACOK);
diff --git a/board/ryu/board.h b/board/ryu/board.h
index 544a57889a..ad3bc17603 100644
--- a/board/ryu/board.h
+++ b/board/ryu/board.h
@@ -228,9 +228,6 @@ enum usb_strings {
/* The lower the input voltage, the higher the power efficiency. */
#define PD_PREFER_LOW_VOLTAGE
-/* Discharge battery when on AC power for factory test. */
-int board_discharge_on_ac(int enable);
-
/* Set the charge current limit. */
void board_set_charge_limit(int charge_ma);
diff --git a/board/ryu_p4p5/board.c b/board/ryu_p4p5/board.c
index 2063c068e4..0246501e71 100644
--- a/board/ryu_p4p5/board.c
+++ b/board/ryu_p4p5/board.c
@@ -297,14 +297,6 @@ void board_set_usb_switches(int port, enum usb_switch setting)
pi3usb9281_set_switches(port, usb_switch_state);
}
-/**
- * Discharge battery when on AC power for factory test.
- */
-int board_discharge_on_ac(int enable)
-{
- return charger_discharge_on_ac(enable);
-}
-
int extpower_is_present(void)
{
return gpio_get_level(GPIO_CHGR_ACOK);
diff --git a/board/ryu_p4p5/board.h b/board/ryu_p4p5/board.h
index 52bc499d47..3602700f23 100644
--- a/board/ryu_p4p5/board.h
+++ b/board/ryu_p4p5/board.h
@@ -212,9 +212,6 @@ enum usb_strings {
extern const struct usb_mux_driver p4_board_custom_usb_mux_driver;
extern const struct usb_mux_driver p5_board_custom_usb_mux_driver;
-/* Discharge battery when on AC power for factory test. */
-int board_discharge_on_ac(int enable);
-
/* Set the charge current limit. */
void board_set_charge_limit(int charge_ma);
diff --git a/board/samus/board.h b/board/samus/board.h
index ee793ff8d2..d35ffee5f7 100644
--- a/board/samus/board.h
+++ b/board/samus/board.h
@@ -52,6 +52,7 @@
#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
#define CONFIG_CHARGER_INPUT_CURRENT 320
#define CONFIG_CHARGER_DISCHARGE_ON_AC
+#define CONFIG_CHARGER_DISCHARGE_ON_AC_CUSTOM
#define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 1
#define CONFIG_FANS 2
#define CONFIG_FAN_UPDATE_PERIOD 10
@@ -185,7 +186,6 @@ enum als_id {
#define WIRELESS_GPIO_WLAN_POWER GPIO_PP3300_WLAN_EN
/* Discharge battery when on AC power for factory test. */
-int board_discharge_on_ac(int enable);
int board_is_discharging_on_ac(void);
/* Reset PD MCU */
diff --git a/board/strago/board.c b/board/strago/board.c
index a18dd7ed78..05c9761ac1 100644
--- a/board/strago/board.c
+++ b/board/strago/board.c
@@ -99,11 +99,6 @@ struct ec_thermal_config thermal_params[] = {
};
BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-int board_discharge_on_ac(int enable)
-{
- return charger_discharge_on_ac(enable);
-}
-
/* Four Motion sensors */
/* kxcj9 mutex and local/private data*/
static struct mutex g_kxcj9_mutex[2];
diff --git a/board/strago/board.h b/board/strago/board.h
index 1629fb929f..07f48d9cc4 100644
--- a/board/strago/board.h
+++ b/board/strago/board.h
@@ -129,9 +129,6 @@ enum als_id {
ALS_COUNT,
};
-/* Discharge battery when on AC power for factory test. */
-int board_discharge_on_ac(int enable);
-
#endif /* !__ASSEMBLER__ */
#endif /* __CROS_EC_BOARD_H */
diff --git a/board/strago/led.c b/board/strago/led.c
index 1ecaf3d3f2..aacf18706d 100644
--- a/board/strago/led.c
+++ b/board/strago/led.c
@@ -187,7 +187,7 @@ static int command_led_color(int argc, char **argv)
} else if (!strcasecmp(argv[1], "amber")) {
set_color(LED_AMBER);
} else {
- /* maybe handle board_discharge_on_ac() too? */
+ /* maybe handle charger_discharge_on_ac() too? */
return EC_ERROR_PARAM1;
}
}
diff --git a/common/charge_state_v1.c b/common/charge_state_v1.c
index 90d93446a2..4002901f76 100644
--- a/common/charge_state_v1.c
+++ b/common/charge_state_v1.c
@@ -985,7 +985,11 @@ static int charge_command_charge_control(struct host_cmd_handler_args *args)
return rv;
#ifdef CONFIG_CHARGER_DISCHARGE_ON_AC
+#ifdef CONFIG_CHARGER_DISCHARGE_ON_AC_CUSTOM
rv = board_discharge_on_ac(p->mode == CHARGE_CONTROL_DISCHARGE);
+#else
+ rv = charger_discharge_on_ac(p->mode == CHARGE_CONTROL_DISCHARGE);
+#endif
if (rv != EC_SUCCESS)
return rv;
#endif
diff --git a/common/charge_state_v2.c b/common/charge_state_v2.c
index 5b84ddc4eb..ece7800ead 100644
--- a/common/charge_state_v2.c
+++ b/common/charge_state_v2.c
@@ -1030,7 +1030,11 @@ static int charge_command_charge_control(struct host_cmd_handler_args *args)
return EC_RES_ERROR;
#ifdef CONFIG_CHARGER_DISCHARGE_ON_AC
+#ifdef CONFIG_CHARGER_DISCHARGE_ON_AC_CUSTOM
rv = board_discharge_on_ac(p->mode == CHARGE_CONTROL_DISCHARGE);
+#else
+ rv = charger_discharge_on_ac(p->mode == CHARGE_CONTROL_DISCHARGE);
+#endif
if (rv != EC_SUCCESS)
return EC_RES_ERROR;
#endif
diff --git a/include/charger.h b/include/charger.h
index 8b65c388f3..d29d66ed30 100644
--- a/include/charger.h
+++ b/include/charger.h
@@ -99,6 +99,9 @@ int charger_set_voltage(int voltage);
/* Discharge battery when on AC power. */
int charger_discharge_on_ac(int enable);
+/* Custom board function to discharge battery when on AC power */
+int board_discharge_on_ac(int enable);
+
/* Other parameters that may be charger-specific, but are common so far. */
int charger_set_input_current(int input_current);
int charger_get_input_current(int *input_current);
diff --git a/include/config.h b/include/config.h
index e43fd25253..649b966a8a 100644
--- a/include/config.h
+++ b/include/config.h
@@ -305,6 +305,9 @@
*/
#undef CONFIG_CHARGER_DISCHARGE_ON_AC
+/* Board has a custom discharge mode. */
+#undef CONFIG_CHARGER_DISCHARGE_ON_AC_CUSTOM
+
/*
* Board specific flag used to disable external ILIM pin used to determine input
* current limit. When defined, the input current limit is decided only by
diff --git a/test/test_config.h b/test/test_config.h
index a9f21b8006..637c9630b3 100644
--- a/test/test_config.h
+++ b/test/test_config.h
@@ -48,6 +48,7 @@
#define CONFIG_CHARGER_V1
#define CONFIG_CHARGER_INPUT_CURRENT 4032
#define CONFIG_CHARGER_DISCHARGE_ON_AC
+#define CONFIG_CHARGER_DISCHARGE_ON_AC_CUSTOM
int board_discharge_on_ac(int enabled);
#define I2C_PORT_MASTER 1
#define I2C_PORT_BATTERY 1
@@ -62,6 +63,7 @@ int board_discharge_on_ac(int enabled);
#define CONFIG_CHARGER_PROFILE_OVERRIDE
#define CONFIG_CHARGER_INPUT_CURRENT 4032
#define CONFIG_CHARGER_DISCHARGE_ON_AC
+#define CONFIG_CHARGER_DISCHARGE_ON_AC_CUSTOM
int board_discharge_on_ac(int enabled);
#define I2C_PORT_MASTER 1
#define I2C_PORT_BATTERY 1