From e1503eee53ad5f867999a95f6448d4f2853b0a47 Mon Sep 17 00:00:00 2001 From: kopecdav Date: Wed, 30 Apr 2025 17:52:34 +0200 Subject: [PATCH] fix(core): add power_manager into the prodtest [no changelog] --- .../prodtest/cmd/prodtest_power_manager.c | 27 ++++++++++++------- core/embed/projects/prodtest/main.c | 10 ++++--- core/embed/rust/Cargo.toml | 1 + 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/core/embed/projects/prodtest/cmd/prodtest_power_manager.c b/core/embed/projects/prodtest/cmd/prodtest_power_manager.c index 3e551a3115..c5cbc41422 100644 --- a/core/embed/projects/prodtest/cmd/prodtest_power_manager.c +++ b/core/embed/projects/prodtest/cmd/prodtest_power_manager.c @@ -172,9 +172,6 @@ void prodtest_pm_monitor(cli_t* cli) { // Clear leftover events pm_get_events(&event_flag); - cli_trace(cli, "Start power manager monitor, current state: {%s}", - pm_get_state_name(state)); - while (true) { if (cli_aborted(cli)) { cli_trace(cli, "power manager test aborted"); @@ -186,13 +183,6 @@ void prodtest_pm_monitor(cli_t* cli) { cli_error(cli, CLI_ERROR, "Failed to get power manager events"); } - if (event_flag & PM_EVENT_STATE_CHANGED) { - status = pm_get_state(&state); - - cli_trace(cli, "Power manager state changed to {%s}", - pm_get_state_name(state)); - } - if (event_flag & PM_EVENT_USB_CONNECTED) { cli_trace(cli, "USB connected"); } @@ -209,6 +199,23 @@ void prodtest_pm_monitor(cli_t* cli) { cli_trace(cli, "WLC disconnected"); } + if (event_flag & PM_EVENT_ENTERED_MODE_ACTIVE) { + cli_trace(cli, "Power manager entered active mode"); + } + + if (event_flag & PM_EVENT_ENTERED_MODE_POWER_SAVE) { + cli_trace(cli, "Power manager entered power save mode"); + } + + if (event_flag & PM_EVENT_ENTERED_MODE_SHUTTING_DOWN) { + cli_trace(cli, "Power manager entered shutting down mode"); + } + + if (event_flag & PM_EVENT_SOC_UPDATED) { + status = pm_get_state(&state); + cli_trace(cli, "Power manager SOC changed to %d %%", state.soc); + } + systick_delay_ms(50); } diff --git a/core/embed/projects/prodtest/main.c b/core/embed/projects/prodtest/main.c index 2ba9b1e8eb..76caa449a0 100644 --- a/core/embed/projects/prodtest/main.c +++ b/core/embed/projects/prodtest/main.c @@ -78,8 +78,9 @@ #include #endif -#ifdef USE_POWERCTL +#ifdef USE_POWER_MANAGER #include +#include #endif #ifdef USE_STORAGE_HWKEY @@ -193,8 +194,8 @@ static bool g_rgbled_control_disabled = false; void prodtest_disable_rgbled_control(void) { g_rgbled_control_disabled = true; } static void drivers_init(void) { -#ifdef USE_POWERCTL - power_manager_init(); +#ifdef USE_POWER_MANAGER + pm_init(true); // powerctl_init(); #endif @@ -262,6 +263,9 @@ int main(void) { &g_cli, &_prodtest_cli_cmd_section_start, &_prodtest_cli_cmd_section_end - &_prodtest_cli_cmd_section_start); + pm_turn_on(); + pm_charging_enable(); + #ifdef USE_OPTIGA optiga_init(); optiga_open_application(); diff --git a/core/embed/rust/Cargo.toml b/core/embed/rust/Cargo.toml index c54fdfd9c8..07f59f1800 100644 --- a/core/embed/rust/Cargo.toml +++ b/core/embed/rust/Cargo.toml @@ -39,6 +39,7 @@ sbu = [] haptic = [] sd_card = [] rgb_led = [] +power_manager = [] backlight = [] usb = [] optiga = []