summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hill <ecgh@chromium.org>2020-08-19 17:39:39 -0600
committerCommit Bot <commit-bot@chromium.org>2020-08-20 23:41:41 +0000
commit259c0d8133e523f1f7925442c1bb7352383975dc (patch)
tree778d798cc6c3ff68c3329eef581add72e9064a89
parent06f584a8b508e881680c222498702f5148330a3f (diff)
downloadchrome-ec-259c0d8133e523f1f7925442c1bb7352383975dc.tar.gz
Zork: Add command to print temps periodically
BUG=b:162907613 BRANCH=none TEST=none Signed-off-by: Edward Hill <ecgh@chromium.org> Change-Id: Iddbba7d7955f252cacf666528195bbfc7d9718e6 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2365633 Reviewed-by: Denis Brockus <dbrockus@chromium.org>
-rw-r--r--baseboard/zork/baseboard.c42
-rw-r--r--baseboard/zork/baseboard.h2
-rw-r--r--board/ezkinil/board.c4
-rw-r--r--board/morphius/thermal.c14
4 files changed, 56 insertions, 6 deletions
diff --git a/baseboard/zork/baseboard.c b/baseboard/zork/baseboard.c
index 378ff743c5..5bd1faf16e 100644
--- a/baseboard/zork/baseboard.c
+++ b/baseboard/zork/baseboard.c
@@ -38,6 +38,7 @@
#include "system.h"
#include "task.h"
#include "tcpci.h"
+#include "temp_sensor.h"
#include "thermistor.h"
#include "usb_mux.h"
#include "usb_pd.h"
@@ -269,3 +270,44 @@ static void set_ac_prochot(void)
isl9241_set_ac_prochot(CHARGER_SOLO, ZORK_AC_PROCHOT_CURRENT_MA);
}
DECLARE_HOOK(HOOK_INIT, set_ac_prochot, HOOK_PRIO_DEFAULT);
+
+DECLARE_DEFERRED(board_print_temps);
+int temps_interval;
+
+void board_print_temps(void)
+{
+ int t, i;
+ int rv;
+
+ cprintf(CC_THERMAL, "[%pT ", PRINTF_TIMESTAMP_NOW);
+ for (i = 0; i < TEMP_SENSOR_COUNT; ++i) {
+ rv = temp_sensor_read(i, &t);
+ if (rv == EC_SUCCESS)
+ cprintf(CC_THERMAL, "%s=%dK (%dC) ",
+ temp_sensors[i].name, t, K_TO_C(t));
+ }
+ cprintf(CC_THERMAL, "]\n");
+
+ if (temps_interval > 0)
+ hook_call_deferred(&board_print_temps_data,
+ temps_interval * SECOND);
+}
+
+static int command_temps_log(int argc, char **argv)
+{
+ char *e = NULL;
+
+ if (argc != 2)
+ return EC_ERROR_PARAM_COUNT;
+
+ temps_interval = strtoi(argv[1], &e, 0);
+ if (*e)
+ return EC_ERROR_PARAM1;
+
+ board_print_temps();
+
+ return EC_SUCCESS;
+}
+DECLARE_CONSOLE_COMMAND(tempslog, command_temps_log,
+ "seconds",
+ "Print temp sensors periodically");
diff --git a/baseboard/zork/baseboard.h b/baseboard/zork/baseboard.h
index b0a647c7c8..13e33ca007 100644
--- a/baseboard/zork/baseboard.h
+++ b/baseboard/zork/baseboard.h
@@ -337,6 +337,8 @@ __override_proto void ppc_interrupt(enum gpio_signal signal);
void pi3hdx1204_retimer_power(void);
__override_proto int check_hdmi_hpd_status(void);
+void board_print_temps(void);
+
#endif /* !__ASSEMBLER__ */
#endif /* __CROS_EC_BASEBOARD_H */
diff --git a/board/ezkinil/board.c b/board/ezkinil/board.c
index cb6a6c322e..b49af8f763 100644
--- a/board/ezkinil/board.c
+++ b/board/ezkinil/board.c
@@ -669,9 +669,11 @@ int fan_percent_to_rpm(int fan, int pct)
previous_pct = pct;
if (fan_table[current_level].rpm !=
- fan_get_rpm_target(FAN_CH(fan)))
+ fan_get_rpm_target(FAN_CH(fan))) {
cprints(CC_THERMAL, "Setting fan RPM to %d",
fan_table[current_level].rpm);
+ board_print_temps();
+ }
return fan_table[current_level].rpm;
}
diff --git a/board/morphius/thermal.c b/board/morphius/thermal.c
index 36ff96e2ff..e7f976f681 100644
--- a/board/morphius/thermal.c
+++ b/board/morphius/thermal.c
@@ -480,10 +480,14 @@ int fan_table_to_rpm(int fan, int *temp)
void board_override_fan_control(int fan, int *tmp)
{
- if (chipset_in_state(CHIPSET_STATE_ON |
- CHIPSET_STATE_ANY_SUSPEND)) {
- fan_set_rpm_mode(FAN_CH(fan), 1);
- fan_set_rpm_target(FAN_CH(fan),
- fan_table_to_rpm(fan, tmp));
+ if (chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND)) {
+ int new_rpm = fan_table_to_rpm(fan, tmp);
+
+ if (new_rpm != fan_get_rpm_target(FAN_CH(fan))) {
+ cprints(CC_THERMAL, "Setting fan RPM to %d", new_rpm);
+ board_print_temps();
+ fan_set_rpm_mode(FAN_CH(fan), 1);
+ fan_set_rpm_target(FAN_CH(fan), new_rpm);
+ }
}
}