diff --git a/core/embed/projects/prodtest/cmd/prodtest_power_manager.c b/core/embed/projects/prodtest/cmd/prodtest_power_manager.c index ecb98ceed6..d31887b3b8 100644 --- a/core/embed/projects/prodtest/cmd/prodtest_power_manager.c +++ b/core/embed/projects/prodtest/cmd/prodtest_power_manager.c @@ -81,9 +81,13 @@ void prodtest_power_manager_report(cli_t* cli) { (int)(report.battery_voltage_v * 1000) % 1000); cli_trace(cli, " Battery current: %d.%03d mA", (int)report.battery_current_ma, - (int)(report.battery_current_ma * 1000) % 1000); + abs((int)(report.battery_current_ma * 1000) % 1000)); cli_trace(cli, " Battery temperature: %d.%03d C", (int)report.battery_temp_c, - (int)(report.battery_temp_c * 1000) % 1000); + abs((int)(report.battery_temp_c * 1000) % 1000)); + cli_trace(cli, " Battery SoC: %d.%03d", (int)report.battery_soc*100, + (int)(report.battery_soc * 10000) % 100); + cli_trace(cli, " Battery SoC latched: %d.%03d", (int)report.battery_soc_latched*100, + (int)(report.battery_soc_latched * 10000) % 100); cli_trace(cli, " PMIC die temperature: %d.%03d C", (int)report.pmic_temp_c, (int)(report.pmic_temp_c * 1000) % 1000); cli_trace(cli, " WLC voltage: %d.%03d V", diff --git a/core/embed/sys/power_manager/inc/sys/power_manager.h b/core/embed/sys/power_manager/inc/sys/power_manager.h index e156f43f99..8b9cbbb8cc 100644 --- a/core/embed/sys/power_manager/inc/sys/power_manager.h +++ b/core/embed/sys/power_manager/inc/sys/power_manager.h @@ -70,6 +70,8 @@ typedef struct { float battery_voltage_v; float battery_current_ma; float battery_temp_c; + float battery_soc; + float battery_soc_latched; float pmic_temp_c; float wireless_rectifier_voltage_v; float wireless_output_voltage_v; diff --git a/core/embed/sys/power_manager/stm32u5/power_manager.c b/core/embed/sys/power_manager/stm32u5/power_manager.c index 7e62f974b1..d67c8710de 100644 --- a/core/embed/sys/power_manager/stm32u5/power_manager.c +++ b/core/embed/sys/power_manager/stm32u5/power_manager.c @@ -218,6 +218,8 @@ power_manager_status_t power_manager_get_report( report->battery_voltage_v = drv->pmic_data.vbat; report->battery_current_ma = drv->pmic_data.ibat; report->battery_temp_c = drv->pmic_data.ntc_temp; + report->battery_soc = drv->fuel_gauge.soc; + report->battery_soc_latched = drv->fuel_gauge.soc_latched; report->pmic_temp_c = drv->pmic_data.die_temp; report->wireless_rectifier_voltage_v = drv->wireless_data.vrect; report->wireless_output_voltage_v = drv->wireless_data.vout;