diff options
156 files changed, 243 insertions, 253 deletions
diff --git a/baseboard/asurada/baseboard.h b/baseboard/asurada/baseboard.h index b40f2f50de..597515363c 100644 --- a/baseboard/asurada/baseboard.h +++ b/baseboard/asurada/baseboard.h @@ -61,6 +61,7 @@ #define CONFIG_CHARGE_RAMP_HW #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_ISL9238C #define CONFIG_CHARGER_MAINTAIN_VBAT #define CONFIG_CHARGER_OTG diff --git a/baseboard/asurada/usbc_config.c b/baseboard/asurada/usbc_config.c index ecc882659f..57396121f5 100644 --- a/baseboard/asurada/usbc_config.c +++ b/baseboard/asurada/usbc_config.c @@ -311,8 +311,7 @@ void board_reset_pd_mcu(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled) diff --git a/baseboard/brya/baseboard.h b/baseboard/brya/baseboard.h index 6748a8a777..b2d722fcd9 100644 --- a/baseboard/brya/baseboard.h +++ b/baseboard/brya/baseboard.h @@ -69,6 +69,7 @@ #define CONFIG_CHARGER #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CMD_CHARGER_DUMP diff --git a/baseboard/cherry/baseboard.h b/baseboard/cherry/baseboard.h index de3acda1d3..8cd2aacd1f 100644 --- a/baseboard/cherry/baseboard.h +++ b/baseboard/cherry/baseboard.h @@ -71,6 +71,7 @@ #define CONFIG_CHARGE_RAMP_HW #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_ISL9238C #define CONFIG_CHARGER_MAINTAIN_VBAT /* Not used in boot flow, set to 0 to suppress system_can_boot_ap warning */ diff --git a/baseboard/dedede/baseboard.h b/baseboard/dedede/baseboard.h index e581a0e8d0..e03d41ae21 100644 --- a/baseboard/dedede/baseboard.h +++ b/baseboard/dedede/baseboard.h @@ -165,6 +165,7 @@ #define CONFIG_CHARGER #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 256 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 256 #define CONFIG_USB_CHARGER #define CONFIG_TRICKLE_CHARGING diff --git a/baseboard/goroh/baseboard.c b/baseboard/goroh/baseboard.c index 8422030619..d1474f78a7 100644 --- a/baseboard/goroh/baseboard.c +++ b/baseboard/goroh/baseboard.c @@ -163,8 +163,7 @@ const struct cc_para_t *board_get_cc_tuning_parameter(enum usbpd_port port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled) diff --git a/baseboard/goroh/baseboard.h b/baseboard/goroh/baseboard.h index 05c26d74a0..205621e040 100644 --- a/baseboard/goroh/baseboard.h +++ b/baseboard/goroh/baseboard.h @@ -58,6 +58,7 @@ #define CONFIG_CHARGE_RAMP_HW #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_ISL9238C #define CONFIG_CHARGER_MAINTAIN_VBAT #define CONFIG_CHARGER_OTG diff --git a/baseboard/grunt/baseboard.c b/baseboard/grunt/baseboard.c index 50db1887f1..aef91f5e30 100644 --- a/baseboard/grunt/baseboard.c +++ b/baseboard/grunt/baseboard.c @@ -467,8 +467,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } /* Keyboard scan setting */ diff --git a/baseboard/grunt/baseboard.h b/baseboard/grunt/baseboard.h index b83b274d49..e385b11b86 100644 --- a/baseboard/grunt/baseboard.h +++ b/baseboard/grunt/baseboard.h @@ -73,6 +73,7 @@ * See also b/111214767 */ #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT 5 #define CONFIG_CHARGER_ISL9238 #define CONFIG_CHARGER_SENSE_RESISTOR 10 diff --git a/baseboard/guybrush/baseboard.c b/baseboard/guybrush/baseboard.c index 654f73e7fe..b8b4b775a6 100644 --- a/baseboard/guybrush/baseboard.c +++ b/baseboard/guybrush/baseboard.c @@ -537,8 +537,7 @@ int board_aoz1380_set_vbus_source_current_limit(int port, enum tcpc_rp_value rp) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } void sbu_fault_interrupt(enum ioex_signal signal) diff --git a/baseboard/guybrush/baseboard.h b/baseboard/guybrush/baseboard.h index 04b1e10c97..883bf27847 100644 --- a/baseboard/guybrush/baseboard.h +++ b/baseboard/guybrush/baseboard.h @@ -163,6 +163,7 @@ #define CONFIG_CHARGE_MANAGER #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_ISL9241 #define CONFIG_CHARGER_SENSE_RESISTOR 10 #define CONFIG_CHARGER_SENSE_RESISTOR_AC 20 diff --git a/baseboard/hatch/baseboard.c b/baseboard/hatch/baseboard.c index f5376700c5..9910f21880 100644 --- a/baseboard/hatch/baseboard.c +++ b/baseboard/hatch/baseboard.c @@ -351,8 +351,7 @@ int ppc_get_alert_status(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } #ifdef USB_PD_PORT_TCPC_MST diff --git a/baseboard/hatch/baseboard.h b/baseboard/hatch/baseboard.h index d5d680e7bf..9ba148e91e 100644 --- a/baseboard/hatch/baseboard.h +++ b/baseboard/hatch/baseboard.h @@ -97,6 +97,7 @@ #define CONFIG_CHARGER_BQ25710 #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 /* Allow low-current USB charging */ +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #undef CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON #define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 1 #define CONFIG_CHARGE_RAMP_HW diff --git a/baseboard/herobrine/baseboard.h b/baseboard/herobrine/baseboard.h index 0782612cb8..b1aabc6bd6 100644 --- a/baseboard/herobrine/baseboard.h +++ b/baseboard/herobrine/baseboard.h @@ -89,6 +89,7 @@ #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON 10000 #define CONFIG_CHARGER_SENSE_RESISTOR 10 #define CONFIG_CHARGER_SENSE_RESISTOR_AC 20 diff --git a/baseboard/intelrvp/baseboard.h b/baseboard/intelrvp/baseboard.h index b927632fc5..96acf8c562 100644 --- a/baseboard/intelrvp/baseboard.h +++ b/baseboard/intelrvp/baseboard.h @@ -69,6 +69,7 @@ #define CONFIG_CHARGER #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_SENSE_RESISTOR 5 #define CONFIG_CHARGER_SENSE_RESISTOR_AC 10 #undef CONFIG_EXTPOWER_DEBOUNCE_MS diff --git a/baseboard/intelrvp/chg_usb_pd.c b/baseboard/intelrvp/chg_usb_pd.c index 95aeea0441..9fa7c60f44 100644 --- a/baseboard/intelrvp/chg_usb_pd.c +++ b/baseboard/intelrvp/chg_usb_pd.c @@ -129,6 +129,5 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/baseboard/kukui/baseboard.h b/baseboard/kukui/baseboard.h index 9afc726861..4a5562fb04 100644 --- a/baseboard/kukui/baseboard.h +++ b/baseboard/kukui/baseboard.h @@ -62,6 +62,7 @@ #define CONFIG_CHARGER_SENSE_RESISTOR 10 /* BOARD_RS2 */ #define CONFIG_CHARGER_OTG #define CONFIG_CHARGE_RAMP_HW +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 /* TCPC FUSB302 */ #define PD_POWER_SUPPLY_TURN_ON_DELAY 160000 /* us */ diff --git a/baseboard/octopus/baseboard.c b/baseboard/octopus/baseboard.c index b35bbcd67b..c852d1fad5 100644 --- a/baseboard/octopus/baseboard.c +++ b/baseboard/octopus/baseboard.c @@ -301,8 +301,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } void board_hibernate(void) diff --git a/baseboard/octopus/baseboard.h b/baseboard/octopus/baseboard.h index 8662749c98..9c6e2a14e6 100644 --- a/baseboard/octopus/baseboard.h +++ b/baseboard/octopus/baseboard.h @@ -155,6 +155,7 @@ #define CONFIG_CHARGE_RAMP_HW #define CONFIG_CHARGER #define CONFIG_CHARGER_INPUT_CURRENT 512 /* Allow low-current USB charging */ +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_SENSE_RESISTOR 10 #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_USB_CHARGER diff --git a/baseboard/trogdor/baseboard.h b/baseboard/trogdor/baseboard.h index 2dedf8f330..901466fec1 100644 --- a/baseboard/trogdor/baseboard.h +++ b/baseboard/trogdor/baseboard.h @@ -93,6 +93,7 @@ #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON 10000 #define CONFIG_CHARGER_SENSE_RESISTOR 10 #define CONFIG_CHARGER_SENSE_RESISTOR_AC 20 diff --git a/baseboard/volteer/baseboard.h b/baseboard/volteer/baseboard.h index 10bea07eeb..4df7d5fc73 100644 --- a/baseboard/volteer/baseboard.h +++ b/baseboard/volteer/baseboard.h @@ -108,6 +108,7 @@ #define CONFIG_CHARGER #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 /* * Hardware based charge ramp is broken in the ISL9241 (b/169350714). diff --git a/baseboard/volteer/charger.c b/baseboard/volteer/charger.c index 73b80e17b8..252e8795d3 100644 --- a/baseboard/volteer/charger.c +++ b/baseboard/volteer/charger.c @@ -83,8 +83,7 @@ int board_set_active_charge_port(int port) __overridable void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } void board_overcurrent_event(int port, int is_overcurrented) diff --git a/baseboard/zork/baseboard.c b/baseboard/zork/baseboard.c index a9e4324aad..0ad8339591 100644 --- a/baseboard/zork/baseboard.c +++ b/baseboard/zork/baseboard.c @@ -99,8 +99,7 @@ DECLARE_HOOK(HOOK_CHIPSET_RESUME, baseboard_chipset_resume, HOOK_PRIO_DEFAULT); __overridable void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } /* Keyboard scan setting */ diff --git a/baseboard/zork/baseboard.h b/baseboard/zork/baseboard.h index 2289c1891b..528aa44a91 100644 --- a/baseboard/zork/baseboard.h +++ b/baseboard/zork/baseboard.h @@ -77,6 +77,7 @@ #define CONFIG_CHARGE_MANAGER #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_ISL9241 #define CONFIG_CHARGER_SENSE_RESISTOR 10 #define CONFIG_CHARGER_SENSE_RESISTOR_AC 20 diff --git a/board/agah/charger_isl9241.c b/board/agah/charger_isl9241.c index 47e8261f78..64ad9ae7f7 100644 --- a/board/agah/charger_isl9241.c +++ b/board/agah/charger_isl9241.c @@ -199,8 +199,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } static const struct charge_port_info bj_power = { diff --git a/board/anahera/charger.c b/board/anahera/charger.c index 29211bc033..6b45881b99 100644 --- a/board/anahera/charger.c +++ b/board/anahera/charger.c @@ -85,6 +85,5 @@ int board_set_active_charge_port(int port) __override void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/board/atlas/board.c b/board/atlas/board.c index 633543b51f..685afb3e0e 100644 --- a/board/atlas/board.c +++ b/board/atlas/board.c @@ -551,8 +551,7 @@ DECLARE_HOOK(HOOK_INIT, board_charger_init, HOOK_PRIO_DEFAULT); void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } static void board_chipset_suspend(void) diff --git a/board/atlas/board.h b/board/atlas/board.h index 97f6d67e49..f5cef8d582 100644 --- a/board/atlas/board.h +++ b/board/atlas/board.h @@ -78,6 +78,7 @@ #define CONFIG_CHARGER_ISL9238 #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT 5 #define CONFIG_CHARGER_PROFILE_OVERRIDE #define CONFIG_CHARGER_PSYS diff --git a/board/banshee/charger.c b/board/banshee/charger.c index 88f5b85a41..8edcb00e31 100644 --- a/board/banshee/charger.c +++ b/board/banshee/charger.c @@ -83,6 +83,5 @@ int board_set_active_charge_port(int port) __overridable void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/board/beadrix/board.c b/board/beadrix/board.c index 5cea32f90c..14467a66a1 100644 --- a/board/beadrix/board.c +++ b/board/beadrix/board.c @@ -478,13 +478,11 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - /* * TODO(b/151955431): Characterize the input current limit in case a * scaling needs to be applied here */ - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/beetley/board.c b/board/beetley/board.c index e0ba900a70..28ae90fc9b 100644 --- a/board/beetley/board.c +++ b/board/beetley/board.c @@ -387,9 +387,7 @@ uint16_t tcpc_get_alert_status(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/bellis/board.c b/board/bellis/board.c index fc960749f3..fb9701e4e7 100644 --- a/board/bellis/board.c +++ b/board/bellis/board.c @@ -239,8 +239,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_discharge_on_ac(int enable) diff --git a/board/blipper/board.c b/board/blipper/board.c index b7782a8af9..b31c5cde38 100644 --- a/board/blipper/board.c +++ b/board/blipper/board.c @@ -539,8 +539,7 @@ uint16_t tcpc_get_alert_status(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/boten/board.c b/board/boten/board.c index 9a54a4a341..14899b0a3a 100644 --- a/board/boten/board.c +++ b/board/boten/board.c @@ -247,8 +247,7 @@ uint16_t tcpc_get_alert_status(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/brya/charger.c b/board/brya/charger.c index b1a29c725b..937a48590c 100644 --- a/board/brya/charger.c +++ b/board/brya/charger.c @@ -85,6 +85,5 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/board/bugzzy/board.c b/board/bugzzy/board.c index b6a015999e..6d30dba966 100644 --- a/board/bugzzy/board.c +++ b/board/bugzzy/board.c @@ -396,8 +396,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/burnet/board.c b/board/burnet/board.c index 923a7a76ce..b4a8860cf1 100644 --- a/board/burnet/board.c +++ b/board/burnet/board.c @@ -225,8 +225,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_discharge_on_ac(int enable) diff --git a/board/cappy2/board.c b/board/cappy2/board.c index d81e731ebf..eb33499eb0 100644 --- a/board/cappy2/board.c +++ b/board/cappy2/board.c @@ -232,8 +232,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/cerise/board.c b/board/cerise/board.c index 62fbc69254..03c31b3ec9 100644 --- a/board/cerise/board.c +++ b/board/cerise/board.c @@ -239,8 +239,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_discharge_on_ac(int enable) diff --git a/board/cherry/board.c b/board/cherry/board.c index c2ad54acb2..2f2f242b48 100644 --- a/board/cherry/board.c +++ b/board/cherry/board.c @@ -265,8 +265,7 @@ const struct usb_mux_chain usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = { void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } /* Initialize board. */ diff --git a/board/coachz/board.c b/board/coachz/board.c index 96ed26b819..a0f6dc74fc 100644 --- a/board/coachz/board.c +++ b/board/coachz/board.c @@ -697,8 +697,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, charge_ma = max_ma; } - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } uint16_t tcpc_get_alert_status(void) diff --git a/board/coral/board.c b/board/coral/board.c index 922a19e97c..612ec180ae 100644 --- a/board/coral/board.c +++ b/board/coral/board.c @@ -566,8 +566,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, if (bd9995x_bc12_enable_charging(port, bc12_enable)) return; - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } /** diff --git a/board/coral/board.h b/board/coral/board.h index eee201669c..9b45db2cf3 100644 --- a/board/coral/board.h +++ b/board/coral/board.h @@ -61,6 +61,7 @@ #define CONFIG_CHARGER_BD9995X_CHGEN #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_MAINTAIN_VBAT #undef CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON #define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 1 diff --git a/board/corori/board.c b/board/corori/board.c index 09baf1eabf..11d4ad8169 100644 --- a/board/corori/board.c +++ b/board/corori/board.c @@ -314,8 +314,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/corori2/board.c b/board/corori2/board.c index c06ccbb15b..bc41f397ad 100644 --- a/board/corori2/board.c +++ b/board/corori2/board.c @@ -457,8 +457,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/cret/board.c b/board/cret/board.c index 90bfc7d41a..17ecb3e7da 100644 --- a/board/cret/board.c +++ b/board/cret/board.c @@ -307,8 +307,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/crota/charger.c b/board/crota/charger.c index c7dcf7b0c1..e46364ee6d 100644 --- a/board/crota/charger.c +++ b/board/crota/charger.c @@ -83,6 +83,5 @@ int board_set_active_charge_port(int port) __overridable void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/board/damu/board.c b/board/damu/board.c index a2415f228d..7c82182ce4 100644 --- a/board/damu/board.c +++ b/board/damu/board.c @@ -239,8 +239,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_discharge_on_ac(int enable) diff --git a/board/dibbi/board.c b/board/dibbi/board.c index 467e238d8a..f546c92c87 100644 --- a/board/dibbi/board.c +++ b/board/dibbi/board.c @@ -235,13 +235,11 @@ uint16_t tcpc_get_alert_status(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - /* * TODO(b/151955431): Characterize the input current limit in case a * scaling needs to be applied here */ - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_set_active_charge_port(int port) diff --git a/board/dojo/board.c b/board/dojo/board.c index 62f2e6ac09..fcc924770c 100644 --- a/board/dojo/board.c +++ b/board/dojo/board.c @@ -473,8 +473,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, /* Limit input current lower than 2944 mA for safety */ charge_ma = MIN(charge_ma, 2944); - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } /* NVME */ diff --git a/board/drawcia/board.c b/board/drawcia/board.c index 118b3178be..325de31f5e 100644 --- a/board/drawcia/board.c +++ b/board/drawcia/board.c @@ -613,16 +613,14 @@ uint16_t tcpc_get_alert_status(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - /* Limit C1 on board version 0 to 2.0 A */ if ((board_version == 0) && (port == 1)) - icl = MIN(icl, 2000); + charge_ma = MIN(charge_ma, 2000); /* * TODO(b/151955431): Characterize the input current limit in case a * scaling needs to be applied here */ - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_set_active_charge_port(int port) diff --git a/board/drawcia_riscv/board.c b/board/drawcia_riscv/board.c index cbc977d64b..f44be9ed7c 100644 --- a/board/drawcia_riscv/board.c +++ b/board/drawcia_riscv/board.c @@ -545,16 +545,14 @@ uint16_t tcpc_get_alert_status(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - /* Limit C1 on board version 0 to 2.0 A */ if ((board_version == 0) && (port == 1)) - icl = MIN(icl, 2000); + charge_ma = MIN(charge_ma, 2000); /* * TODO(b/151955431): Characterize the input current limit in case a * scaling needs to be applied here */ - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_set_active_charge_port(int port) diff --git a/board/driblee/board.c b/board/driblee/board.c index 5c78dbda06..fd4c4bb573 100644 --- a/board/driblee/board.c +++ b/board/driblee/board.c @@ -341,8 +341,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/drobit/board.c b/board/drobit/board.c index c2bdbec773..b07e01d0fb 100644 --- a/board/drobit/board.c +++ b/board/drobit/board.c @@ -481,6 +481,5 @@ DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT); void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/board/eldrid/board.c b/board/eldrid/board.c index 6212c6a375..1abf9c6acd 100644 --- a/board/eldrid/board.c +++ b/board/eldrid/board.c @@ -182,8 +182,7 @@ __override void board_set_charge_limit(int port, int supplier, int charge_ma, else isl9241_set_ac_prochot(0, 3328); - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } /******************************************************************************/ diff --git a/board/elm/board.c b/board/elm/board.c index 329c411c8a..2e99a42b7c 100644 --- a/board/elm/board.c +++ b/board/elm/board.c @@ -340,8 +340,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); pd_send_host_event(PD_EVENT_POWER_CHANGE); } diff --git a/board/elm/board.h b/board/elm/board.h index 31a6ec7b61..ba542754b5 100644 --- a/board/elm/board.h +++ b/board/elm/board.h @@ -38,6 +38,7 @@ #define CONFIG_CHARGE_MANAGER #define CONFIG_CHARGER #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGE_RAMP_HW #define CONFIG_CHARGER_ISL9237 #define CONFIG_CHARGER_MAX_INPUT_CURRENT 3000 diff --git a/board/eve/board.c b/board/eve/board.c index 77e5b403a0..9f89792818 100644 --- a/board/eve/board.c +++ b/board/eve/board.c @@ -646,8 +646,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, if (bd9995x_bc12_enable_charging(port, bc12_enable)) return; - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } /** diff --git a/board/eve/board.h b/board/eve/board.h index 361f2ddd53..b9de20896d 100644 --- a/board/eve/board.h +++ b/board/eve/board.h @@ -101,6 +101,7 @@ #define CONFIG_CHARGER_BD9995X_CHGEN #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT 5 #define CONFIG_CHARGER_MAINTAIN_VBAT #define CONFIG_CHARGER_PROFILE_OVERRIDE diff --git a/board/ezkinil/board.c b/board/ezkinil/board.c index 2173a2062d..d9ea2c0ecb 100644 --- a/board/ezkinil/board.c +++ b/board/ezkinil/board.c @@ -869,6 +869,5 @@ int fan_percent_to_rpm(int fan, int pct) __override void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/board/felwinter/charger_isl9241.c b/board/felwinter/charger_isl9241.c index 7d4026b818..552436824a 100644 --- a/board/felwinter/charger_isl9241.c +++ b/board/felwinter/charger_isl9241.c @@ -83,6 +83,5 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/board/fennel/board.c b/board/fennel/board.c index e583a21285..95f865a20c 100644 --- a/board/fennel/board.c +++ b/board/fennel/board.c @@ -240,8 +240,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_discharge_on_ac(int enable) diff --git a/board/galtic/board.c b/board/galtic/board.c index af0638be20..787b8877ab 100644 --- a/board/galtic/board.c +++ b/board/galtic/board.c @@ -505,13 +505,11 @@ uint16_t tcpc_get_alert_status(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - /* * TODO(b/151955431): Characterize the input current limit in case a * scaling needs to be applied here */ - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_is_sourcing_vbus(int port) diff --git a/board/gelarshie/board.c b/board/gelarshie/board.c index dfa85037a2..5ce8030560 100644 --- a/board/gelarshie/board.c +++ b/board/gelarshie/board.c @@ -696,8 +696,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, charge_ma = max_ma; } - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } uint16_t tcpc_get_alert_status(void) diff --git a/board/gimble/charger.c b/board/gimble/charger.c index b1a29c725b..937a48590c 100644 --- a/board/gimble/charger.c +++ b/board/gimble/charger.c @@ -85,6 +85,5 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/board/gooey/board.c b/board/gooey/board.c index 9acbadd10d..80748b29de 100644 --- a/board/gooey/board.c +++ b/board/gooey/board.c @@ -262,8 +262,7 @@ uint16_t tcpc_get_alert_status(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/haboki/board.c b/board/haboki/board.c index d7509115b5..1c48955cbc 100644 --- a/board/haboki/board.c +++ b/board/haboki/board.c @@ -529,16 +529,14 @@ uint16_t tcpc_get_alert_status(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - /* Limit C1 on board version 0 to 2.0 A */ if ((board_version == 0) && (port == 1)) - icl = MIN(icl, 2000); + charge_ma = MIN(charge_ma, 2000); /* * TODO(b/151955431): Characterize the input current limit in case a * scaling needs to be applied here */ - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_set_active_charge_port(int port) diff --git a/board/herobrine/usbc_config.c b/board/herobrine/usbc_config.c index 18033e0b3c..5d5d57d8bc 100644 --- a/board/herobrine/usbc_config.c +++ b/board/herobrine/usbc_config.c @@ -299,8 +299,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, charge_ma = max_ma; } - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } uint16_t tcpc_get_alert_status(void) diff --git a/board/homestar/board.c b/board/homestar/board.c index b1a136dd67..3c63fd7f81 100644 --- a/board/homestar/board.c +++ b/board/homestar/board.c @@ -644,8 +644,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, charge_ma = max_ma; } - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } uint16_t tcpc_get_alert_status(void) diff --git a/board/icarus/board.c b/board/icarus/board.c index d0a98c901e..e11e763f10 100644 --- a/board/icarus/board.c +++ b/board/icarus/board.c @@ -207,8 +207,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_discharge_on_ac(int enable) diff --git a/board/jacuzzi/board.c b/board/jacuzzi/board.c index 6df0b8dc82..5a3f34d273 100644 --- a/board/jacuzzi/board.c +++ b/board/jacuzzi/board.c @@ -247,8 +247,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_discharge_on_ac(int enable) diff --git a/board/kano/charger.c b/board/kano/charger.c index ab48a7338c..4ad9b41deb 100644 --- a/board/kano/charger.c +++ b/board/kano/charger.c @@ -83,6 +83,5 @@ int board_set_active_charge_port(int port) __overridable void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/board/kappa/board.c b/board/kappa/board.c index e3e374e18d..f99d11f063 100644 --- a/board/kappa/board.c +++ b/board/kappa/board.c @@ -220,8 +220,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_discharge_on_ac(int enable) diff --git a/board/kingoftown/usbc_config.c b/board/kingoftown/usbc_config.c index 5cd1f81818..3e4179904c 100644 --- a/board/kingoftown/usbc_config.c +++ b/board/kingoftown/usbc_config.c @@ -347,8 +347,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, charge_ma = max_ma; } - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } uint16_t tcpc_get_alert_status(void) diff --git a/board/kracko/board.c b/board/kracko/board.c index 136b05ea1e..6ac215b1fb 100644 --- a/board/kracko/board.c +++ b/board/kracko/board.c @@ -585,16 +585,14 @@ uint16_t tcpc_get_alert_status(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - /* Limit C1 on board version 0 to 2.0 A */ if ((board_version == 0) && (port == 1)) - icl = MIN(icl, 2000); + charge_ma = MIN(charge_ma, 2000); /* * TODO(b/151955431): Characterize the input current limit in case a * scaling needs to be applied here */ - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_set_active_charge_port(int port) diff --git a/board/lalala/board.c b/board/lalala/board.c index feedfe0262..b06e6760db 100644 --- a/board/lalala/board.c +++ b/board/lalala/board.c @@ -400,8 +400,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/lantis/board.c b/board/lantis/board.c index 08fc84e222..8d20b61673 100644 --- a/board/lantis/board.c +++ b/board/lantis/board.c @@ -722,13 +722,11 @@ uint16_t tcpc_get_alert_status(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - /* * TODO(b/151955431): Characterize the input current limit in case a * scaling needs to be applied here */ - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_set_active_charge_port(int port) diff --git a/board/lazor/usbc_config.c b/board/lazor/usbc_config.c index 9b9504a44a..6d4351ab64 100644 --- a/board/lazor/usbc_config.c +++ b/board/lazor/usbc_config.c @@ -384,8 +384,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, charge_ma = max_ma; } - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } uint16_t tcpc_get_alert_status(void) diff --git a/board/madoo/board.c b/board/madoo/board.c index 9f2021cf99..e7294150b0 100644 --- a/board/madoo/board.c +++ b/board/madoo/board.c @@ -315,8 +315,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/magolor/board.c b/board/magolor/board.c index 57f6791ae3..e09eb31abf 100644 --- a/board/magolor/board.c +++ b/board/magolor/board.c @@ -596,8 +596,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/makomo/board.c b/board/makomo/board.c index 09fe5fdd74..dcf7d671b2 100644 --- a/board/makomo/board.c +++ b/board/makomo/board.c @@ -238,8 +238,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_discharge_on_ac(int enable) diff --git a/board/marzipan/board.c b/board/marzipan/board.c index 94b7c444d5..18a02799cc 100644 --- a/board/marzipan/board.c +++ b/board/marzipan/board.c @@ -639,8 +639,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, charge_ma = max_ma; } - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } uint16_t tcpc_get_alert_status(void) diff --git a/board/mchpevb1/board.c b/board/mchpevb1/board.c index 23135108f6..b51f6be876 100644 --- a/board/mchpevb1/board.c +++ b/board/mchpevb1/board.c @@ -602,8 +602,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } #endif diff --git a/board/mchpevb1/board.h b/board/mchpevb1/board.h index 10208ca736..ae8982f939 100644 --- a/board/mchpevb1/board.h +++ b/board/mchpevb1/board.h @@ -151,6 +151,7 @@ /* #define CONFIG_CHARGER_ISL9237 */ /* #define CONFIG_CHARGER_ILIM_PIN_DISABLED */ /* #define CONFIG_CHARGER_INPUT_CURRENT 512 */ +/* #define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 */ /* #define CONFIG_CHARGER_NARROW_VDC */ /* #define CONFIG_CHARGER_PROFILE_OVERRIDE */ diff --git a/board/metaknight/board.c b/board/metaknight/board.c index f075f58ee4..b142740c1e 100644 --- a/board/metaknight/board.c +++ b/board/metaknight/board.c @@ -399,8 +399,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/mithrax/charger_isl9241.c b/board/mithrax/charger_isl9241.c index 88f5b85a41..8edcb00e31 100644 --- a/board/mithrax/charger_isl9241.c +++ b/board/mithrax/charger_isl9241.c @@ -83,6 +83,5 @@ int board_set_active_charge_port(int port) __overridable void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/board/mrbland/board.c b/board/mrbland/board.c index 04fef6ec82..9b42b15e23 100644 --- a/board/mrbland/board.c +++ b/board/mrbland/board.c @@ -598,8 +598,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, charge_ma = max_ma; } - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } uint16_t tcpc_get_alert_status(void) diff --git a/board/munna/board.c b/board/munna/board.c index 408a81d47d..76445f4bd3 100644 --- a/board/munna/board.c +++ b/board/munna/board.c @@ -239,8 +239,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_discharge_on_ac(int enable) diff --git a/board/nami/board.c b/board/nami/board.c index 02fb27a283..b02b33fdd8 100644 --- a/board/nami/board.c +++ b/board/nami/board.c @@ -760,8 +760,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, (model == MODEL_EKKO || model == MODEL_BARD)) factor = 95; charge_ma = charge_ma * factor / 100; - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } void board_hibernate(void) diff --git a/board/nami/board.h b/board/nami/board.h index 51cde41acb..1a71e83c4f 100644 --- a/board/nami/board.h +++ b/board/nami/board.h @@ -97,6 +97,7 @@ #define CONFIG_CHARGER_ISL9238 #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON 27000 #define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON_WITH_BATT 15000 /* AP's thresholds. */ diff --git a/board/nautilus/board.c b/board/nautilus/board.c index 36b79aa0c7..2f69158b9f 100644 --- a/board/nautilus/board.c +++ b/board/nautilus/board.c @@ -538,8 +538,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } /** diff --git a/board/nautilus/board.h b/board/nautilus/board.h index f40b2f00b5..882b5d74f4 100644 --- a/board/nautilus/board.h +++ b/board/nautilus/board.h @@ -80,6 +80,7 @@ #define CONFIG_CHARGER_ISL9238 #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_PROFILE_OVERRIDE #define CONFIG_CHARGER_PSYS #define CONFIG_CHARGER_SENSE_RESISTOR 10 diff --git a/board/nocturne/board.c b/board/nocturne/board.c index dbe5f50b68..13fa259276 100644 --- a/board/nocturne/board.c +++ b/board/nocturne/board.c @@ -763,8 +763,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } static void board_chipset_reset(void) diff --git a/board/nocturne/board.h b/board/nocturne/board.h index 7c38e48ee3..828c9a2087 100644 --- a/board/nocturne/board.h +++ b/board/nocturne/board.h @@ -71,6 +71,7 @@ #define CONFIG_CHARGER #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 128 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 128 #define CONFIG_CHARGER_ISL9238 /* * Nocturne seems to overdraw its set input current limit by about 5%. diff --git a/board/oak/board.c b/board/oak/board.c index 468b6e6677..3e370c8fa6 100644 --- a/board/oak/board.c +++ b/board/oak/board.c @@ -360,8 +360,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); pd_send_host_event(PD_EVENT_POWER_CHANGE); } diff --git a/board/oak/board.h b/board/oak/board.h index e40e16bccf..ca9e16cf23 100644 --- a/board/oak/board.h +++ b/board/oak/board.h @@ -41,6 +41,7 @@ #define CONFIG_CHARGER #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #if BOARD_REV == OAK_REV1 #define CONFIG_CHARGER_BQ24773 diff --git a/board/osiris/charger.c b/board/osiris/charger.c index 88f5b85a41..8edcb00e31 100644 --- a/board/osiris/charger.c +++ b/board/osiris/charger.c @@ -83,6 +83,5 @@ int board_set_active_charge_port(int port) __overridable void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/board/pazquel/board.c b/board/pazquel/board.c index 8fdd4a5325..f2d4685154 100644 --- a/board/pazquel/board.c +++ b/board/pazquel/board.c @@ -547,8 +547,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, charge_ma = max_ma; } - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } uint16_t tcpc_get_alert_status(void) diff --git a/board/pico/board.c b/board/pico/board.c index 8dbfcdec12..5326f17283 100644 --- a/board/pico/board.c +++ b/board/pico/board.c @@ -323,8 +323,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_discharge_on_ac(int enable) diff --git a/board/pirika/board.c b/board/pirika/board.c index f7c5c0d19b..bbe6deab48 100644 --- a/board/pirika/board.c +++ b/board/pirika/board.c @@ -494,13 +494,11 @@ uint16_t tcpc_get_alert_status(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - /* * TODO(b/151955431): Characterize the input current limit in case a * scaling needs to be applied here */ - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_is_sourcing_vbus(int port) diff --git a/board/pompom/board.c b/board/pompom/board.c index 2f1de29013..e922244721 100644 --- a/board/pompom/board.c +++ b/board/pompom/board.c @@ -450,8 +450,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, charge_ma = max_ma; } - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } uint16_t tcpc_get_alert_status(void) diff --git a/board/poppy/board.c b/board/poppy/board.c index 38183c0da0..c870bffb4f 100644 --- a/board/poppy/board.c +++ b/board/poppy/board.c @@ -58,9 +58,6 @@ #define USB_PD_PORT_ANX74XX 0 -/* Minimum input current limit. */ -#define ILIM_MIN_MA 472 - static void tcpc_alert_event(enum gpio_signal signal) { if ((signal == GPIO_USB_C0_PD_INT_ODL) && @@ -688,7 +685,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, if (charge_mv > 5000) charge_ma -= 52; - charge_set_input_current_limit(MAX(charge_ma, ILIM_MIN_MA), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } void board_hibernate(void) diff --git a/board/poppy/board.h b/board/poppy/board.h index b55dc1d818..c06f96c438 100644 --- a/board/poppy/board.h +++ b/board/poppy/board.h @@ -90,6 +90,7 @@ #define CONFIG_CHARGER_ISL9238 #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 472 #define CONFIG_CHARGER_PSYS #define CONFIG_CHARGER_SENSE_RESISTOR 10 #define CONFIG_CHARGER_SENSE_RESISTOR_AC 20 diff --git a/board/primus/board.c b/board/primus/board.c index 8b5f1a86fc..3f438cee00 100644 --- a/board/primus/board.c +++ b/board/primus/board.c @@ -137,8 +137,7 @@ __override void board_set_charge_limit(int port, int supplier, int charge_ma, else charge_ma = charge_ma * 93 / 100; - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } static void configure_input_current_limit(void) @@ -159,9 +158,7 @@ static void configure_input_current_limit(void) else adapter_current_ma = adapter_current_ma * 97 / 100; - charge_set_input_current_limit(MAX(adapter_current_ma, - CONFIG_CHARGER_INPUT_CURRENT), - adapter_current_mv); + charge_set_input_current_limit(adapter_current_ma, adapter_current_mv); } DECLARE_HOOK(HOOK_CHIPSET_STARTUP, configure_input_current_limit, HOOK_PRIO_DEFAULT); diff --git a/board/quackingstick/board.c b/board/quackingstick/board.c index 8985254a23..2ccdc1c097 100644 --- a/board/quackingstick/board.c +++ b/board/quackingstick/board.c @@ -625,8 +625,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, charge_ma = max_ma; } - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } /** diff --git a/board/rammus/board.c b/board/rammus/board.c index 3696733047..be1f3d9110 100644 --- a/board/rammus/board.c +++ b/board/rammus/board.c @@ -569,8 +569,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } void board_hibernate(void) diff --git a/board/rammus/board.h b/board/rammus/board.h index 83f0f35c57..2de783e247 100644 --- a/board/rammus/board.h +++ b/board/rammus/board.h @@ -85,6 +85,7 @@ #define CONFIG_CHARGER_ISL9238 #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_PSYS #define CONFIG_CHARGER_SENSE_RESISTOR 10 #define CONFIG_CHARGER_SENSE_RESISTOR_AC 20 diff --git a/board/redrix/charger.c b/board/redrix/charger.c index a4fa209246..4f52a06d7e 100644 --- a/board/redrix/charger.c +++ b/board/redrix/charger.c @@ -85,6 +85,5 @@ int board_set_active_charge_port(int port) __overridable void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/board/reef/board.c b/board/reef/board.c index b3732f6be9..4ee0f75b25 100644 --- a/board/reef/board.c +++ b/board/reef/board.c @@ -555,8 +555,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, if (bd9995x_bc12_enable_charging(port, bc12_enable)) return; - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } /** diff --git a/board/reef/board.h b/board/reef/board.h index bce20f4645..16f40c2f4a 100644 --- a/board/reef/board.h +++ b/board/reef/board.h @@ -51,6 +51,7 @@ #define CONFIG_CHARGER_BD9995X_CHGEN #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT 5 #define CONFIG_CHARGER_LIMIT_POWER_THRESH_BAT_PCT 1 #define CONFIG_CHARGER_LIMIT_POWER_THRESH_CHG_MW 18000 diff --git a/board/reef_it8320/board.c b/board/reef_it8320/board.c index 6196f1967a..54a0995e85 100644 --- a/board/reef_it8320/board.c +++ b/board/reef_it8320/board.c @@ -311,8 +311,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, if (bd9995x_bc12_enable_charging(port, bc12_enable)) return; - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } /** diff --git a/board/reef_it8320/board.h b/board/reef_it8320/board.h index fc1ca0079d..558b10152a 100644 --- a/board/reef_it8320/board.h +++ b/board/reef_it8320/board.h @@ -49,6 +49,7 @@ #define CONFIG_CHARGER_BD9995X_CHGEN #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT 5 #define CONFIG_CHARGER_LIMIT_POWER_THRESH_BAT_PCT 1 #define CONFIG_CHARGER_LIMIT_POWER_THRESH_CHG_MW 18000 diff --git a/board/reef_mchp/board.c b/board/reef_mchp/board.c index 67cbfa5aa9..55b5ab25c7 100644 --- a/board/reef_mchp/board.c +++ b/board/reef_mchp/board.c @@ -748,8 +748,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, if (bd9995x_bc12_enable_charging(port, bc12_enable)) return; - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } /** diff --git a/board/reef_mchp/board.h b/board/reef_mchp/board.h index 3cc3d2b77f..d570f50142 100644 --- a/board/reef_mchp/board.h +++ b/board/reef_mchp/board.h @@ -54,6 +54,7 @@ #define CONFIG_CHARGER_BD9995X_CHGEN #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT 5 #define CONFIG_CHARGER_LIMIT_POWER_THRESH_BAT_PCT 1 #define CONFIG_CHARGER_LIMIT_POWER_THRESH_CHG_MW 18000 diff --git a/board/sasuke/board.c b/board/sasuke/board.c index 567dc8cee7..07dd0ddb79 100644 --- a/board/sasuke/board.c +++ b/board/sasuke/board.c @@ -398,8 +398,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/sasukette/board.c b/board/sasukette/board.c index 019df9348a..9d7e0470ff 100644 --- a/board/sasukette/board.c +++ b/board/sasukette/board.c @@ -254,8 +254,7 @@ uint16_t tcpc_get_alert_status(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_is_sourcing_vbus(int port) diff --git a/board/scarlet/board.c b/board/scarlet/board.c index 34e5cc456c..b423e5f79a 100644 --- a/board/scarlet/board.c +++ b/board/scarlet/board.c @@ -215,8 +215,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int extpower_is_present(void) diff --git a/board/scarlet/board.h b/board/scarlet/board.h index 0f96e0208a..aba5819516 100644 --- a/board/scarlet/board.h +++ b/board/scarlet/board.h @@ -70,6 +70,7 @@ #define CONFIG_CHARGER #define CONFIG_CHARGER_RT9467 #define CONFIG_CHARGER_INPUT_CURRENT 512 +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512 #define CONFIG_CHARGER_LIMIT_POWER_THRESH_BAT_PCT 2 #define CONFIG_CHARGER_LIMIT_POWER_THRESH_CHG_MW 15000 #define CONFIG_CHARGER_PROFILE_OVERRIDE diff --git a/board/stern/board.c b/board/stern/board.c index 41f63d40a4..ec3c7e66d5 100644 --- a/board/stern/board.c +++ b/board/stern/board.c @@ -239,8 +239,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_discharge_on_ac(int enable) diff --git a/board/storo/board.c b/board/storo/board.c index e4f2ad2fb9..65fa6c917f 100644 --- a/board/storo/board.c +++ b/board/storo/board.c @@ -434,8 +434,7 @@ uint16_t tcpc_get_alert_status(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_is_sourcing_vbus(int port) diff --git a/board/taeko/charger.c b/board/taeko/charger.c index 29211bc033..6b45881b99 100644 --- a/board/taeko/charger.c +++ b/board/taeko/charger.c @@ -85,6 +85,5 @@ int board_set_active_charge_port(int port) __override void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/board/taniks/charger.c b/board/taniks/charger.c index b1a29c725b..937a48590c 100644 --- a/board/taniks/charger.c +++ b/board/taniks/charger.c @@ -85,6 +85,5 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/board/trogdor/usbc_config.c b/board/trogdor/usbc_config.c index 34c37edf1a..7abe04651b 100644 --- a/board/trogdor/usbc_config.c +++ b/board/trogdor/usbc_config.c @@ -347,8 +347,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, charge_ma = max_ma; } - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } uint16_t tcpc_get_alert_status(void) diff --git a/board/vell/charger.c b/board/vell/charger.c index a153d57704..757f545d80 100644 --- a/board/vell/charger.c +++ b/board/vell/charger.c @@ -84,8 +84,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } static void set_ac_prochot(void) diff --git a/board/vilboz/board.c b/board/vilboz/board.c index fe0b8ee32e..dbbe3a64ca 100644 --- a/board/vilboz/board.c +++ b/board/vilboz/board.c @@ -508,6 +508,5 @@ const int usb_port_enable[USBA_PORT_COUNT] = { __override void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/board/volmar/charger.c b/board/volmar/charger.c index 88f5b85a41..8edcb00e31 100644 --- a/board/volmar/charger.c +++ b/board/volmar/charger.c @@ -83,6 +83,5 @@ int board_set_active_charge_port(int port) __overridable void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/board/waddledee/board.c b/board/waddledee/board.c index d7abda740c..ab71aa0680 100644 --- a/board/waddledee/board.c +++ b/board/waddledee/board.c @@ -345,13 +345,11 @@ uint16_t tcpc_get_alert_status(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - /* * TODO(b/151955431): Characterize the input current limit in case a * scaling needs to be applied here */ - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_set_active_charge_port(int port) diff --git a/board/waddledoo/board.c b/board/waddledoo/board.c index e71151f6b5..8658397d9d 100644 --- a/board/waddledoo/board.c +++ b/board/waddledoo/board.c @@ -393,8 +393,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/waddledoo2/board.c b/board/waddledoo2/board.c index b1417d8ee2..6f8a48abe6 100644 --- a/board/waddledoo2/board.c +++ b/board/waddledoo2/board.c @@ -400,8 +400,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) diff --git a/board/wheelie/board.c b/board/wheelie/board.c index 9708dcca82..922d6cde52 100644 --- a/board/wheelie/board.c +++ b/board/wheelie/board.c @@ -232,13 +232,11 @@ uint16_t tcpc_get_alert_status(void) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - /* * TODO(b/151955431): Characterize the input current limit in case a * scaling needs to be applied here */ - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_set_active_charge_port(int port) diff --git a/board/willow/board.c b/board/willow/board.c index 3bd5c4633b..370b79e4c8 100644 --- a/board/willow/board.c +++ b/board/willow/board.c @@ -237,8 +237,7 @@ int board_set_active_charge_port(int charge_port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int board_discharge_on_ac(int enable) diff --git a/board/wormdingler/board.c b/board/wormdingler/board.c index 8705e0d2cb..8a106ca965 100644 --- a/board/wormdingler/board.c +++ b/board/wormdingler/board.c @@ -643,8 +643,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, charge_ma = max_ma; } - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } uint16_t tcpc_get_alert_status(void) diff --git a/common/charge_manager.c b/common/charge_manager.c index b28a186ef8..c67656b122 100644 --- a/common/charge_manager.c +++ b/common/charge_manager.c @@ -835,8 +835,12 @@ static void charge_manager_refresh(void) override_port = OVERRIDE_OFF; if (new_supplier == CHARGE_SUPPLIER_NONE) { +#ifdef CONFIG_CHARGER_INPUT_CURRENT + new_charge_current = CONFIG_CHARGER_INPUT_CURRENT; +#else new_charge_current = 0; - new_charge_current_uncapped = 0; +#endif + new_charge_current_uncapped = new_charge_current; new_charge_voltage = 0; } else { new_charge_current_uncapped = diff --git a/common/charge_state_v2.c b/common/charge_state_v2.c index 6967cf5333..1e1353a639 100644 --- a/common/charge_state_v2.c +++ b/common/charge_state_v2.c @@ -2336,6 +2336,11 @@ int charge_set_input_current_limit(int ma, int mv) 100; } #endif +#ifdef CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT + if (CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT > 0) { + ma = MAX(ma, CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT); + } +#endif if (IS_ENABLED(CONFIG_OCPC)) chgnum = charge_get_active_chg_chip(); diff --git a/docs/low_battery_startup.md b/docs/low_battery_startup.md index 48f9c28f49..83aae054b5 100644 --- a/docs/low_battery_startup.md +++ b/docs/low_battery_startup.md @@ -77,8 +77,7 @@ analog signaling alone. Via digital communication in the PD protocol, much higher power states may be negotiated. However, higher power states also usually run at a higher voltage state as well. Any time the voltage level is changing, the power sink (the ChromeOS device) must lower its power consumption during the -transient. The standby current level is governed by -`CONFIG_CHARGER_INPUT_CURRENT`. +transient. PD port partners are capable of both soft and hard resets. Hard resets will cause a dead-bus state for a brief interval before PD can renegotiate, from @@ -341,13 +340,23 @@ Example configuration: Required. -The lowest current limit programmed into the charger. This determines both the -default level used on startup, and the value used during the voltage transients -in PD negotiation. +The default charger current limit used on startup and for inactive ports. It +should not be higher than 512 mA unless the device ships with a discrete power +supply. Raising this term above 512 mA is contrary to USB-PD. It may be lowered +in order to improve compatibility with marginal BC1.2 chargers. -It should not be higher than 512 mA unless the device ships with a discrete -power supply. Raising this term above 512 mA is contrary to USB-PD. It may be -lowered in order to improve compatibility with marginal BC1.2 chargers. +### `CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT` + +Optional. + +If set, charger input current limits will never be set lower than this value. +Historically most boards used the same value as `CONFIG_CHARGER_INPUT_CURRENT`, +but doing so violates USB-PD standby power requirements when voltages greater +than 5V are used with the default 512 mA value. Configuring this option to a +nonzero value may be useful if a board needs extra headroom (possibly at the +cost of drawing excess standby power), but boards should prefer to +override `board_set_charge_limit()` instead to limit situations with excess +power draw to only occur when that extra power is needed. ### `CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON` diff --git a/include/charge_state_v2.h b/include/charge_state_v2.h index 5f886257d3..c7a5cbc995 100644 --- a/include/charge_state_v2.h +++ b/include/charge_state_v2.h @@ -72,7 +72,8 @@ int charge_set_output_current_limit(int chgnum, int ma, int mv); * time AC is applied. * * The input current limit is automatically derated by - * CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT, if configured. + * CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT (if configured), and is clamped to + * no less than CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT mA (if configured). * * @param ma New input current limit in mA * @param mv Negotiated charge voltage in mV. diff --git a/include/config.h b/include/config.h index 74ac859dc3..a9a346c464 100644 --- a/include/config.h +++ b/include/config.h @@ -1033,8 +1033,7 @@ #undef CONFIG_CHARGER_ILIM_PIN_DISABLED /* - * Default input current for the board, in mA. Many boards also use this as the - * least maximum input current during transients. + * Default input current for the board, in mA. * * This value should depend on external power adapter, designed charging * voltage, and the maximum power of the running system. For type-C chargers, @@ -1044,6 +1043,22 @@ #undef CONFIG_CHARGER_INPUT_CURRENT /* + * Minimum current limit that will ever be set for chargers, even if a lower + * limit is requested. This will allow the charger to draw more power than + * the requested limit. + * + * If set, this should usually be set to no more than 2.5W divided by the + * maximum supported input voltage in order to satisfy USB-PD pSnkStdby + * requirements. Higher values may help devices stay alive under low-battery + * conditions at the cost of violating standby power limits. + * + * Many boards set this to large values, since historically this number was + * usually equal to CONFIG_CHARGER_INPUT_CURRENT. New boards should avoid doing + * so if possible. + */ +#undef CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT + +/* * Percentage derating factor applied to charger input current limits. * * Desired charger current is reduced by this many percent when programming diff --git a/zephyr/Kconfig.usbc b/zephyr/Kconfig.usbc index 5350c1cbbf..7f65419a4b 100644 --- a/zephyr/Kconfig.usbc +++ b/zephyr/Kconfig.usbc @@ -44,6 +44,26 @@ config PLATFORM_EC_CHARGER_INPUT_CURRENT chargers, this should be set to 512 mA in order to not brown-out low-current USB charge ports in accordance with USB-PD r3.0 Sec. 7.3 +config PLATFORM_EC_CHARGER_MIN_INPUT_CURRENT_LIMIT + int "Minimum charger input current limit in mA" + default 0 + depends on PLATFORM_EC_CHARGE_MANAGER + help + Minimum current limit in mA that will ever be set for chargers, even if a + lower limit is requested. + + If set, this should usually be set to no more than 2.5W divided by the + maximum supported input voltage in order to satisfy USB-PD pSnkStdby + requirements. Higher values may help devices stay alive under low-battery + conditions at the cost of violating standby power limits. + + Many boards set this to large values, since historically this number was + usually equal to the default current limit. New boards should avoid doing + so if possible, and usually leave this unset: customization of + board_set_charge_limit() should be considered instead if a device sometimes + requires amounts of power in violation of specs, to limit those violations + only to situations where they are necessary. + config PLATFORM_EC_CHARGER_INPUT_CURRENT_DERATE_PCT int "Charger input current derating percentage" default 0 diff --git a/zephyr/program/brya/prj.conf b/zephyr/program/brya/prj.conf index e9d35dc0e2..0d248c6487 100644 --- a/zephyr/program/brya/prj.conf +++ b/zephyr/program/brya/prj.conf @@ -105,6 +105,7 @@ CONFIG_PLATFORM_EC_CHARGER_BQ25720_VSYS_TH2_CUSTOM=y CONFIG_PLATFORM_EC_CHARGER_BQ25720_VSYS_TH2_DV=70 CONFIG_PLATFORM_EC_CHARGER_DISCHARGE_ON_AC=y CONFIG_PLATFORM_EC_CHARGER_DISCHARGE_ON_AC_CHARGER=y +CONFIG_PLATFORM_EC_CHARGER_MIN_INPUT_CURRENT_LIMIT=512 CONFIG_PLATFORM_EC_CHARGER_MIN_BAT_PCT_FOR_POWER_ON=3 CONFIG_PLATFORM_EC_CHARGER_MIN_BAT_PCT_FOR_POWER_ON_WITH_AC=1 CONFIG_PLATFORM_EC_CHARGER_MIN_POWER_MW_FOR_POWER_ON_WITH_BATT=15000 diff --git a/zephyr/program/herobrine/program.conf b/zephyr/program/herobrine/program.conf index 60b78f6758..d97919cce1 100644 --- a/zephyr/program/herobrine/program.conf +++ b/zephyr/program/herobrine/program.conf @@ -70,6 +70,7 @@ CONFIG_PLATFORM_EC_CHARGER_DISCHARGE_ON_AC=y CONFIG_PLATFORM_EC_CHARGER_DISCHARGE_ON_AC_CHARGER=y CONFIG_PLATFORM_EC_CHARGER_MIN_BAT_PCT_FOR_POWER_ON=2 CONFIG_PLATFORM_EC_CHARGER_MIN_POWER_MW_FOR_POWER_ON=12500 +CONFIG_PLATFORM_EC_CHARGER_MIN_INPUT_CURRENT_LIMIT=512 CONFIG_PLATFORM_EC_CHARGER_PROFILE_OVERRIDE=y CONFIG_PLATFORM_EC_CHARGER_PSYS=y CONFIG_PLATFORM_EC_CHARGER_PSYS_READ=y diff --git a/zephyr/program/herobrine/src/usbc_config.c b/zephyr/program/herobrine/src/usbc_config.c index e757e3f2e1..95301120d8 100644 --- a/zephyr/program/herobrine/src/usbc_config.c +++ b/zephyr/program/herobrine/src/usbc_config.c @@ -262,8 +262,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, charge_ma = max_ma; } - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } uint16_t tcpc_get_alert_status(void) diff --git a/zephyr/program/intelrvp/prj.conf b/zephyr/program/intelrvp/prj.conf index 890122f510..9ca19c5071 100644 --- a/zephyr/program/intelrvp/prj.conf +++ b/zephyr/program/intelrvp/prj.conf @@ -20,6 +20,7 @@ CONFIG_PLATFORM_EC_BATTERY_SMART=y CONFIG_PLATFORM_EC_BATTERY_TYPE_NO_AUTO_DETECT=y CONFIG_PLATFORM_EC_CHARGER_MIN_POWER_MW_FOR_POWER_ON_WITH_BATT=15000 CONFIG_PLATFORM_EC_CHARGER_MIN_POWER_MW_FOR_POWER_ON=15001 +CONFIG_PLATFORM_EC_CHARGER_MIN_INPUT_CURRENT_LIMIT=512 #Power Sequencing CONFIG_PLATFORM_EC_BOARD_RESET_AFTER_POWER_ON=y diff --git a/zephyr/program/intelrvp/src/chg_usb_pd.c b/zephyr/program/intelrvp/src/chg_usb_pd.c index 63a1853b4d..81a44238e4 100644 --- a/zephyr/program/intelrvp/src/chg_usb_pd.c +++ b/zephyr/program/intelrvp/src/chg_usb_pd.c @@ -124,6 +124,5 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } diff --git a/zephyr/program/nissa/program.conf b/zephyr/program/nissa/program.conf index 8fd87c94b5..b445c60b6f 100644 --- a/zephyr/program/nissa/program.conf +++ b/zephyr/program/nissa/program.conf @@ -129,6 +129,7 @@ CONFIG_PLATFORM_EC_CHARGER_DISCHARGE_ON_AC_CHARGER=y CONFIG_PLATFORM_EC_OCPC_DEF_DRIVELIMIT_MILLIVOLTS=200 # Assume 4% overdraw, which could be changed with actual characterization CONFIG_PLATFORM_EC_CHARGER_INPUT_CURRENT_DERATE_PCT=4 +CONFIG_PLATFORM_EC_CHARGER_MIN_INPUT_CURRENT_LIMIT=512 # Reduce logging so that state transitions do not cause protocol issues # pd dump [1-3] can be used to increase the debugging level diff --git a/zephyr/program/nissa/src/common.c b/zephyr/program/nissa/src/common.c index bfcbabcbaa..3600005ae1 100644 --- a/zephyr/program/nissa/src/common.c +++ b/zephyr/program/nissa/src/common.c @@ -83,8 +83,7 @@ DECLARE_HOOK(HOOK_INIT, board_setup_init, HOOK_PRIO_INIT_I2C); __overridable void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - charge_set_input_current_limit(icl, charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } int pd_check_vconn_swap(int port) diff --git a/zephyr/program/rex/prj.conf b/zephyr/program/rex/prj.conf index e5900afd54..8b99cc373c 100644 --- a/zephyr/program/rex/prj.conf +++ b/zephyr/program/rex/prj.conf @@ -77,6 +77,7 @@ CONFIG_PLATFORM_EC_CHARGER_SENSE_RESISTOR=5 CONFIG_PLATFORM_EC_CHARGER_SENSE_RESISTOR_AC=10 CONFIG_PLATFORM_EC_CHARGER_MIN_POWER_MW_FOR_POWER_ON=30000 CONFIG_PLATFORM_EC_CHARGER_MIN_POWER_MW_FOR_POWER_ON_WITH_BATT=15000 +CONFIG_PLATFORM_EC_CHARGER_MIN_INPUT_CURRENT_LIMIT=512 # USBC CONFIG_PLATFORM_EC_USBC_PPC=y diff --git a/zephyr/program/rex/src/usbc_config.c b/zephyr/program/rex/src/usbc_config.c index 6f09887eed..ed51be6160 100644 --- a/zephyr/program/rex/src/usbc_config.c +++ b/zephyr/program/rex/src/usbc_config.c @@ -195,8 +195,7 @@ void bc12_interrupt(enum gpio_signal signal) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } static void board_disable_charger_ports(void) diff --git a/zephyr/program/skyrim/prj.conf b/zephyr/program/skyrim/prj.conf index 951926f537..4d0ed48e6f 100644 --- a/zephyr/program/skyrim/prj.conf +++ b/zephyr/program/skyrim/prj.conf @@ -70,6 +70,7 @@ CONFIG_PLATFORM_EC_BATTERY_REVIVE_DISCONNECT=y # Charger CONFIG_PLATFORM_EC_CHARGER_DISCHARGE_ON_AC=y CONFIG_PLATFORM_EC_CHARGER_INPUT_CURRENT=512 +CONFIG_PLATFORM_EC_CHARGER_MIN_INPUT_CURRENT_LIMIT=512 CONFIG_PLATFORM_EC_CHARGER_ISL9241=y CONFIG_PLATFORM_EC_CHARGER_SENSE_RESISTOR=10 CONFIG_PLATFORM_EC_CHARGER_SENSE_RESISTOR_AC=20 diff --git a/zephyr/program/skyrim/src/usbc_config.c b/zephyr/program/skyrim/src/usbc_config.c index 1b728f1cf0..eaa327ff4e 100644 --- a/zephyr/program/skyrim/src/usbc_config.c +++ b/zephyr/program/skyrim/src/usbc_config.c @@ -193,8 +193,7 @@ int board_set_active_charge_port(int port) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } void sbu_fault_interrupt(enum gpio_signal signal) diff --git a/zephyr/program/trogdor/lazor/prj.conf b/zephyr/program/trogdor/lazor/prj.conf index d8cf4009ea..5f29c3f5c2 100644 --- a/zephyr/program/trogdor/lazor/prj.conf +++ b/zephyr/program/trogdor/lazor/prj.conf @@ -73,6 +73,7 @@ CONFIG_PLATFORM_EC_CHARGER_DISCHARGE_ON_AC=y CONFIG_PLATFORM_EC_CHARGER_DISCHARGE_ON_AC_CHARGER=y CONFIG_PLATFORM_EC_CHARGER_MIN_BAT_PCT_FOR_POWER_ON=2 CONFIG_PLATFORM_EC_CHARGER_MIN_POWER_MW_FOR_POWER_ON=10000 +CONFIG_PLATFORM_EC_CHARGER_MIN_INPUT_CURRENT_LIMIT=512 CONFIG_PLATFORM_EC_CHARGER_PROFILE_OVERRIDE=y CONFIG_PLATFORM_EC_CHARGER_PSYS=y CONFIG_PLATFORM_EC_CHARGER_PSYS_READ=y diff --git a/zephyr/program/trogdor/lazor/src/usbc_config.c b/zephyr/program/trogdor/lazor/src/usbc_config.c index 9639b556a0..c3860dc005 100644 --- a/zephyr/program/trogdor/lazor/src/usbc_config.c +++ b/zephyr/program/trogdor/lazor/src/usbc_config.c @@ -314,8 +314,7 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, charge_ma = max_ma; } - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } uint16_t tcpc_get_alert_status(void) diff --git a/zephyr/shim/include/config_chip.h b/zephyr/shim/include/config_chip.h index b0c0aa2a47..c0d388b60b 100644 --- a/zephyr/shim/include/config_chip.h +++ b/zephyr/shim/include/config_chip.h @@ -1083,6 +1083,12 @@ extern char mock_jump_data[CONFIG_PLATFORM_EC_PRESERVED_END_OF_RAM_SIZE]; #define CONFIG_CHARGER_INPUT_CURRENT CONFIG_PLATFORM_EC_CHARGER_INPUT_CURRENT #endif +#undef CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT +#ifdef CONFIG_PLATFORM_EC_CHARGER_MIN_INPUT_CURRENT_LIMIT +#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT \ + CONFIG_PLATFORM_EC_CHARGER_MIN_INPUT_CURRENT_LIMIT +#endif + #undef CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT #ifdef CONFIG_PLATFORM_EC_CHARGER_INPUT_CURRENT_DERATE_PCT #define CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT \ diff --git a/zephyr/test/drivers/bc12_pi3usb9201/src/pi3usb9201.c b/zephyr/test/drivers/bc12_pi3usb9201/src/pi3usb9201.c index 5d143dcbdb..a384fb1e0a 100644 --- a/zephyr/test/drivers/bc12_pi3usb9201/src/pi3usb9201.c +++ b/zephyr/test/drivers/bc12_pi3usb9201/src/pi3usb9201.c @@ -73,7 +73,9 @@ static const struct bc12_status bc12_chg_limits[] = { [CHG_1_0A] = { .supplier = CHARGE_SUPPLIER_PROPRIETARY, .current_limit = 1000 }, [CHG_RESERVED] = { .supplier = CHARGE_SUPPLIER_NONE, - .current_limit = 0 }, + /* Not charging, limit is set to default */ + .current_limit = + CONFIG_PLATFORM_EC_CHARGER_INPUT_CURRENT }, [CHG_CDP] = { .supplier = CHARGE_SUPPLIER_BC12_CDP, .current_limit = USB_CHARGER_MAX_CURR_MA }, [CHG_SDP] = { .supplier = CHARGE_SUPPLIER_BC12_SDP, @@ -209,7 +211,8 @@ test_bc12_pi3usb9201_client_mode(enum pi3usb9201_client_sts detect_result, NULL); zassert_equal(charge_manager_get_supplier(), CHARGE_SUPPLIER_NONE, NULL); - zassert_equal(charge_manager_get_charger_current(), 0); + zassert_equal(charge_manager_get_charger_current(), + CONFIG_PLATFORM_EC_CHARGER_INPUT_CURRENT); zassert_equal(charge_manager_get_charger_voltage(), 0); } @@ -258,6 +261,7 @@ ZTEST_USER(bc12, test_bc12_pi3usb9201) test_bc12_pi3usb9201_host_mode(); for (int c = CHG_OTHER; c <= CHG_DCP; c++) { + LOG_INF("Test client mode supplier %d", c); test_bc12_pi3usb9201_client_mode( c, bc12_chg_limits[c].supplier, bc12_chg_limits[c].current_limit); diff --git a/zephyr/test/drivers/common/src/stubs.c b/zephyr/test/drivers/common/src/stubs.c index 3cddc5cdfe..2f8ec7a43f 100644 --- a/zephyr/test/drivers/common/src/stubs.c +++ b/zephyr/test/drivers/common/src/stubs.c @@ -101,8 +101,7 @@ int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state) void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int charge_mv) { - charge_set_input_current_limit( - MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); + charge_set_input_current_limit(charge_ma, charge_mv); } BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT); diff --git a/zephyr/test/drivers/common_charger/src/test_charge_state_v2.c b/zephyr/test/drivers/common_charger/src/test_charge_state_v2.c index e1c602e86d..9dfeb5e734 100644 --- a/zephyr/test/drivers/common_charger/src/test_charge_state_v2.c +++ b/zephyr/test/drivers/common_charger/src/test_charge_state_v2.c @@ -114,3 +114,16 @@ ZTEST(charge_state_v2, test_current_limit_derating) CONFIG_PLATFORM_EC_CHARGER_INPUT_CURRENT_DERATE_PCT, charger_current_limit); } + +ZTEST(charge_state_v2, test_minimum_current_limit) +{ + int charger_current_limit; + + charge_set_input_current_limit(50, 5000); + zassert_ok(charger_get_input_current_limit(0, &charger_current_limit)); + zassert_equal(charger_current_limit, 96, + "Minimum input current limit should be %d mA," + " but current limit is %d (capped to %d)", + 96, charger_current_limit, + CONFIG_PLATFORM_EC_CHARGER_MIN_INPUT_CURRENT_LIMIT); +} diff --git a/zephyr/test/drivers/testcase.yaml b/zephyr/test/drivers/testcase.yaml index db341b3048..59456ac5f0 100644 --- a/zephyr/test/drivers/testcase.yaml +++ b/zephyr/test/drivers/testcase.yaml @@ -63,6 +63,7 @@ tests: drivers.common_charger: extra_configs: - CONFIG_PLATFORM_EC_CHARGER_INPUT_CURRENT_DERATE_PCT=5 + - CONFIG_PLATFORM_EC_CHARGER_MIN_INPUT_CURRENT_LIMIT=100 - CONFIG_LINK_TEST_SUITE_COMMON_CHARGER=y # Set to focus testing for Herobrine # Config is y only in nissa |