Skip to content

Commit 96bcd2b

Browse files
committed
fwk: sunflower: Print log when override charge current
So that we can figure out when we're throttling the charging rate. BRANCH=fwk-sunflower-26784 BUG=https://app.clickup.com/t/86et2rz87 TEST=Plug in charger when the system is hot in s0ix and there'll be a log message saying so. Signed-off-by: Daniel Schaefer <dhs@frame.work>
1 parent 7ca287a commit 96bcd2b

File tree

1 file changed

+18
-5
lines changed
  • zephyr/program/framework/sunflower/src

1 file changed

+18
-5
lines changed

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

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@
2929
static bool charger_psys_enable_flag;
3030

3131
/* charging current is limited to 3200mA or 2800mA */
32-
#define CHARGING_CURRENT_3200 3200
32+
#define CHARGING_CURRENT_3200 3200
33+
#define CHARGING_CURRENT_3200_TEMP 73
3334
#define CHARGING_CURRENT_2800 2800
35+
#define CHARGING_CURRENT_2800_TEMP 78
3436

3537
#ifdef CONFIG_PLATFORM_EC_CHARGER_INIT_CUSTOM
3638
static void charger_chips_init(void);
@@ -360,7 +362,7 @@ void acok_control(int voltage, int port)
360362

361363
int charger_profile_override(struct charge_state_data *curr)
362364
{
363-
int charger_temp, rv;
365+
int charger_temp, charger_temp_c, rv;
364366

365367
/**
366368
* Do not change the charge current when the system in S0 state.
@@ -373,14 +375,25 @@ int charger_profile_override(struct charge_state_data *curr)
373375
rv = isl9241_get_temperature_val(0, &charger_temp);
374376

375377
if (rv == EC_SUCCESS) {
376-
377-
if (K_TO_C(charger_temp) >= 73 && K_TO_C(charger_temp) < 78)
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);
378385
curr->requested_current =
379386
MIN(curr->requested_current, CHARGING_CURRENT_3200);
387+
}
380388

381-
if (K_TO_C(charger_temp) >= 78)
389+
if (charger_temp_c >= CHARGING_CURRENT_2800_TEMP) {
390+
ccprints("Temperature %dC over %dC, limiting charger current to %dmA",
391+
charger_temp_c,
392+
CHARGING_CURRENT_2800_TEMP,
393+
CHARGING_CURRENT_2800);
382394
curr->requested_current =
383395
MIN(curr->requested_current, CHARGING_CURRENT_2800);
396+
}
384397
}
385398

386399
return 0;

0 commit comments

Comments
 (0)