diff options
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 |