- Enable the serial path and logging backend.
- Initialize the required serial engine and confirm the driver binds correctly.
- Start the MCU image and register the UART callback or service routine.
- Send a small known string or wait for one expected boot message.
- If the path is interrupt-driven, verify receive-ready or transmit-done behavior.
- Confirm the sensor address, target register, and bus instance.
- Initialize the I2C instance and verify the driver binds correctly.
- Assert the platform votes or dependencies needed for the QUP path.
- Perform a register read with the native I2C write-read flow and capture the returned bytes.
- Drop temporary votes or dependencies after the transfer and repeat the read.
- Configure direction, pull, polarity, and edge or level behavior for the target line.
- Register the interrupt handler and map the GPIO event to the MCU interrupt path.
- If the event is also a wake source, classify it correctly before entering the wait path.
- Trigger the external event and observe ISR entry and handoff.
- Repeat the event in both active mode and a valid wait or low-power entry path.
- Start from a known-good protocol or application path.
- Set up one valid wake source and confirm the system recognizes it.
- Force the idle or workload condition required by the platform policy for the target power state.
- Enter the target low-power condition and capture evidence that the expected state was reached.
- Trigger the wake event and confirm that wake occurs and the active path recovers
- Create a small event-driven loop that waits on a timer, interrupt, or another platform signal.
- Capture the minimum data needed when the event arrives.
- Apply local decision logic or thresholds.
- If the event is actionable, perform the local work or escalate a concise signal to the host.
- Return to the wait path and confirm repeatable long-run behavior
- Initialize the QUP serial engine for the target protocol and mode.
- Initialize the GPI channels and configure ring or descriptor resources before traffic starts.
- Program completion, threshold, timeout, and error interrupts.
- Queue a representative transfer and monitor descriptor ownership, completion, and status changes.
- On completion, verify payload correctness and clean ring behavior.

