|
SDK for TESAIoT Dev Kit
API reference & tutorials (ModusToolbox)
|
Functions | |
| void | optiga_manager_touch_hold (void) |
| Counted hold for the whole chip conversation; the first hold sleeps 50 ms. | |
| void | optiga_manager_touch_hold_reason (const char *reason) |
| The same counted hold, plus the busy-modal string CM55 shows while touch is off. | |
| void | optiga_manager_touch_release (void) |
| Decrement the hold counter — strict 1:1 with every hold, on every early return. | |
Three functions — keeping CM55 off the shared bus. The secure element and the CM55 touch controller share one I2C bus (SCB5 on the AI Kit). A hold asks CM55 to stop polling touch for the duration of a chip conversation; a release lets it resume. The hold is a counter (s_touch_holds, tesaiot_optiga_manager.c:290): nesting is safe and required, and every hold needs exactly one release on every exit path — "an unbalanced release leaves the panel dead" (ipc_hsm_handler.c:1873-1877).
The ban: never send a raw IPC_CMD_TOUCH_RESUME yourself. CM55 treats it as an unconditional touch_disabled = false, cancelling another task's hold, and the next chip transfer collides with a touch read — OPTIGA_COMMS_ERROR (0x0102) (ipc_hsm_handler.c:1393-1405). Only optiga_manager_touch_release() decrements the counter.
| void optiga_manager_touch_hold | ( | void | ) |
Counted hold for the whole chip conversation; the first hold sleeps 50 ms.
Hold the chip powered between operations, and let it go again. _reason is the same hold with a string for the log.
| void optiga_manager_touch_hold_reason | ( | const char * | reason | ) |
The same counted hold, plus the busy-modal string CM55 shows while touch is off.
| void optiga_manager_touch_release | ( | void | ) |
Decrement the hold counter — strict 1:1 with every hold, on every early return.