diff --git a/modules/lvgl/lvgl_zephyr_osal.c b/modules/lvgl/lvgl_zephyr_osal.c index fd5adb220c6..a23f1a9b5bb 100644 --- a/modules/lvgl/lvgl_zephyr_osal.c +++ b/modules/lvgl/lvgl_zephyr_osal.c @@ -4,12 +4,16 @@ * SPDX-License-Identifier: Apache-2.0 */ -#include "lvgl_zephyr_osal.h" +#include #include #include LOG_MODULE_DECLARE(lvgl, CONFIG_LV_Z_LOG_LEVEL); +#ifdef CONFIG_LV_Z_USE_OSAL + +#include "lvgl_zephyr_osal.h" + typedef void (*lv_thread_entry)(void *); static void thread_entry(void *thread, void *cb, void *user_data); @@ -151,3 +155,22 @@ void thread_entry(void *thread, void *cb, void *user_data) entry_cb(user_data); lv_thread_delete((lv_thread_t *)thread); } + +#endif /* CONFIG_LV_Z_USE_OSAL */ + +uint32_t lv_os_get_idle_percent(void) +{ +#ifdef CONFIG_CPU_LOAD + int load = cpu_load_get(); + + if (load < 0) { + LOG_ERR("Failed to get CPU load, returning UINT32_MAX"); + return UINT32_MAX; + } + + return 100 - (load / 10); +#else + LOG_WRN_ONCE("CONFIG_CPU_LOAD is not enabled, idle percent will always be 0"); + return 0; +#endif +}