Skip to content

Commit 2028638

Browse files
committed
fwk: sunflower: Print current override only if changing temp
Spamming the EC console isn't nice. BRANCH=fwk-sunflower-26784 BUG=https://app.clickup.com/t/86et2rz87 TEST=Plug in charger when the system is hot and in s0ix and there'll be a log message saying so. But it doesn't constantly spam, only if the temperature changes. Signed-off-by: Daniel Schaefer <[email protected]>
1 parent 96bcd2b commit 2028638

File tree

1 file changed

+22
-15
lines changed
  • zephyr/program/framework/sunflower/src

1 file changed

+22
-15
lines changed

zephyr/program/framework/sunflower/src/charger.c

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
2828

2929
static bool charger_psys_enable_flag;
30+
static int prev_charger_temp_c;
3031

3132
/* charging current is limited to 3200mA or 2800mA */
3233
#define CHARGING_CURRENT_3200 3200
@@ -374,27 +375,33 @@ int charger_profile_override(struct charge_state_data *curr)
374375

375376
rv = isl9241_get_temperature_val(0, &charger_temp);
376377

377-
if (rv == EC_SUCCESS) {
378-
charger_temp_c = K_TO_C(charger_temp);
379-
ccprints("ISL9241 Charger temperature: %dC", charger_temp_c);
380-
if (charger_temp_c >= CHARGING_CURRENT_3200_TEMP && charger_temp_c < CHARGING_CURRENT_2800_TEMP) {
381-
ccprints("Temperature %dC over %dC, limiting charger current to %dmA",
382-
charger_temp_c,
383-
CHARGING_CURRENT_3200_TEMP,
384-
CHARGING_CURRENT_3200);
385-
curr->requested_current =
386-
MIN(curr->requested_current, CHARGING_CURRENT_3200);
387-
}
378+
if (rv != EC_SUCCESS) {
379+
CPRINTS("ISL9241 Charger temperature - Failed to read");
380+
return 0;
381+
}
388382

389-
if (charger_temp_c >= CHARGING_CURRENT_2800_TEMP) {
390-
ccprints("Temperature %dC over %dC, limiting charger current to %dmA",
383+
charger_temp_c = K_TO_C(charger_temp);
384+
385+
if (charger_temp_c >= CHARGING_CURRENT_2800_TEMP) {
386+
if (prev_charger_temp_c != 0 && prev_charger_temp_c != charger_temp_c) {
387+
CPRINTS("Temperature %dC over %dC, limiting charger current to %dmA",
391388
charger_temp_c,
392389
CHARGING_CURRENT_2800_TEMP,
393390
CHARGING_CURRENT_2800);
394-
curr->requested_current =
395-
MIN(curr->requested_current, CHARGING_CURRENT_2800);
396391
}
392+
curr->requested_current =
393+
MIN(curr->requested_current, CHARGING_CURRENT_2800);
394+
} else if (charger_temp_c >= CHARGING_CURRENT_3200_TEMP) {
395+
if (prev_charger_temp_c != 0 && prev_charger_temp_c != charger_temp_c) {
396+
CPRINTS("Temperature %dC over %dC, limiting charger current to %dmA",
397+
charger_temp_c,
398+
CHARGING_CURRENT_3200_TEMP,
399+
CHARGING_CURRENT_3200);
400+
}
401+
curr->requested_current =
402+
MIN(curr->requested_current, CHARGING_CURRENT_3200);
397403
}
404+
prev_charger_temp_c = charger_temp_c;
398405

399406
return 0;
400407
}

0 commit comments

Comments
 (0)