diff --git a/board/chell/board.h b/board/chell/board.h index 26edf1b1b6..a777b73eab 100644 --- a/board/chell/board.h +++ b/board/chell/board.h @@ -25,6 +25,7 @@ #define CONFIG_CHARGER_ILIM_PIN_DISABLED #define CONFIG_CHARGER_INPUT_CURRENT 512 #define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 1 +#define CONFIG_CHARGER_NARROW_VDC #define CONFIG_CHARGER_SENSE_RESISTOR 10 #define CONFIG_CHARGER_SENSE_RESISTOR_AC 20 diff --git a/board/glados/board.h b/board/glados/board.h index b9d0a48255..0d4063c2dd 100644 --- a/board/glados/board.h +++ b/board/glados/board.h @@ -30,6 +30,7 @@ #define CONFIG_CHARGER_ILIM_PIN_DISABLED #define CONFIG_CHARGER_INPUT_CURRENT 512 #define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 1 +#define CONFIG_CHARGER_NARROW_VDC #define CONFIG_CHARGER_PROFILE_OVERRIDE #define CONFIG_CHARGER_SENSE_RESISTOR 10 #define CONFIG_CHARGER_SENSE_RESISTOR_AC 20 diff --git a/board/kunimitsu/board.h b/board/kunimitsu/board.h index 6783315c09..c92a39d1ce 100644 --- a/board/kunimitsu/board.h +++ b/board/kunimitsu/board.h @@ -32,6 +32,7 @@ #ifndef BOARD_KUNIMITSU_V3 #define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 1 #endif +#define CONFIG_CHARGER_NARROW_VDC #define CONFIG_CHARGER_PSYS #define CONFIG_CHARGER_SENSE_RESISTOR 10 #define CONFIG_CHARGER_SENSE_RESISTOR_AC 20 diff --git a/board/lars/board.h b/board/lars/board.h index 7fb5d1fa80..5e66a368a5 100644 --- a/board/lars/board.h +++ b/board/lars/board.h @@ -25,6 +25,7 @@ #define CONFIG_CHARGER_INPUT_CURRENT 512 #define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 1 +#define CONFIG_CHARGER_NARROW_VDC #define CONFIG_TRICKLE_CHARGING /* PSYS register 8.25KOhm */ #define CHARGER_PSYS_REGISTER 8250 diff --git a/board/oak/board.h b/board/oak/board.h index 52814fbf63..8e8f68d983 100644 --- a/board/oak/board.h +++ b/board/oak/board.h @@ -30,6 +30,7 @@ #else #define CONFIG_CHARGER_ISL9237 #define CONFIG_CHARGER_MAX_INPUT_CURRENT 2250 +#define CONFIG_CHARGER_NARROW_VDC #define CONFIG_CHARGER_SENSE_RESISTOR 10 #define CONFIG_CHARGER_SENSE_RESISTOR_AC 20 #endif /* BOARD_REV */ diff --git a/board/wheatley/board.h b/board/wheatley/board.h index cfbbb128d8..a1ba38d190 100644 --- a/board/wheatley/board.h +++ b/board/wheatley/board.h @@ -28,6 +28,7 @@ #define CONFIG_CHARGER_ILIM_PIN_DISABLED #define CONFIG_CHARGER_INPUT_CURRENT 512 #define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 1 +#define CONFIG_CHARGER_NARROW_VDC #define CONFIG_CHARGER_PROFILE_OVERRIDE #define CONFIG_CHARGER_SENSE_RESISTOR 10 #define CONFIG_CHARGER_SENSE_RESISTOR_AC 20 diff --git a/common/charge_state_v2.c b/common/charge_state_v2.c index b4ffd06aa5..b6ad4b933f 100644 --- a/common/charge_state_v2.c +++ b/common/charge_state_v2.c @@ -373,7 +373,16 @@ static int charge_request(int voltage, int current) static int prev_volt, prev_curr; if (!voltage || !current) +#ifdef CONFIG_CHARGER_NARROW_VDC + current = 0; + /* With NVDC charger, keep VSYS voltage higher than battery */ + voltage = charger_closest_voltage( + curr.batt.voltage + charger_get_info()->voltage_step); + /* And handle dead battery case */ + voltage = MAX(voltage, battery_get_info()->voltage_min); +#else voltage = current = 0; +#endif if (curr.ac) { if (prev_volt != voltage || prev_curr != current) diff --git a/include/config.h b/include/config.h index 0dea808e5b..bfbe0c40b5 100644 --- a/include/config.h +++ b/include/config.h @@ -399,6 +399,9 @@ /* Minimum battery percentage for power on */ #undef CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON +/* Narrow VDC power path */ +#undef CONFIG_CHARGER_NARROW_VDC + /* * Low energy thresholds - when battery level is below BAT_PCT and an external * charger provides less than CHG_MW of power, inform the AP of the situation