Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 10 additions & 12 deletions meta-facebook/minerva-ag/src/platform/plat_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ LOG_MODULE_REGISTER(plat_event);
#define AEGIS_CPLD_ADDR (0x4C >> 1)
#endif

void check_cpld_handler();
void check_cpld_handler(struct k_work *work);
K_WORK_DELAYABLE_DEFINE(check_cpld_work, check_cpld_handler);

K_TIMER_DEFINE(init_ubc_delayed_timer, check_ubc_delayed_timer_handler, NULL);

Expand Down Expand Up @@ -779,20 +780,20 @@ void process_mtia_vr_power_fault_sel(aegis_cpld_info *cpld_info, uint8_t *curren
}
}

void check_cpld_handler()
void check_cpld_handler(struct k_work *work)
{
uint8_t data[4] = { 0 };
uint32_t version = 0;
struct k_work_delayable *dwork = k_work_delayable_from_work(work);

if (!plat_i2c_read(I2C_BUS5, AEGIS_CPLD_ADDR, 0x44, data, 4)) {
LOG_ERR("Failed to read cpld version from cpld");
} else {
version = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3];
LOG_DBG("The cpld version: %08x", version);
}
version = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3];
LOG_DBG("The cpld version: %08x", version);

worker_job job = { 0 };
job.delay_ms = 5000;
job.fn = check_cpld_handler;
add_work(&job);
k_work_schedule_for_queue(&plat_work_q, dwork, K_MSEC(5000));
}

void init_cpld_polling(void)
Expand All @@ -810,8 +811,5 @@ void init_cpld_polling(void)

k_timer_start(&init_ubc_delayed_timer, K_MSEC(1000), K_NO_WAIT);

worker_job job = { 0 };
job.delay_ms = 15000; // 15 seconds
job.fn = check_cpld_handler;
add_work(&job);
k_work_schedule_for_queue(&plat_work_q, &check_cpld_work, K_MSEC(15000));
}
2 changes: 1 addition & 1 deletion meta-facebook/minerva-ag/src/platform/plat_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ void pal_pre_init()
1);
}
init_platform_config();
init_worker(); // init util_worker
init_plat_worker(CONFIG_MAIN_THREAD_PRIORITY + 1); // work queue for low priority jobs
plat_led_init();
vr_mutex_init();
pwr_level_mutex_init();
Expand Down