8#ifndef NEXUS_I2C_BUS_CLEAR_H
9#define NEXUS_I2C_BUS_CLEAR_H
17#define NX_I2C_BUS_CLEAR_MAX_PULSES 9U
nx_result_t nx_i2c_bus_clear_run(nx_i2c_bus_clear_t *clear, nx_time_us_t deadline, nx_time_us_t cleanup_deadline, nx_i2c_bus_clear_result_t *result)
Clear one idle, authorized bus with at most nine pulses.
nx_result_t nx_i2c_bus_clear_finish(nx_i2c_bus_clear_t *clear, nx_time_us_t deadline, nx_i2c_bus_clear_result_t *result)
Retry only retained STOP cleanup and ownership return.
nx_result_t nx_i2c_bus_clear_init(nx_i2c_bus_clear_t *clear, nx_i2c_bus_clear_port_t port, nx_clock_t clock, nx_i2c_bus_clear_timing_t timing)
Bind explicit electrical operations without touching pins.
nx_result_t
Operation result; success at submission means admission only.
An explicitly injected clock; its context outlives all borrowers.
Read-only methods for an authorized two-pin GPIO handoff.
nx_result_t(* sample)(void *context, bool *scl_high, bool *sda_high)
nx_result_t(* drive)(void *context, bool scl_low, bool sda_low)
nx_result_t(* release)(void *context)
nx_result_t(* wait_until)(void *context, nx_time_us_t target)
nx_result_t(* acquire)(void *context)
Explicit immutable GPIO methods and caller-owned adapter state.
const nx_i2c_bus_clear_ops_t * ops
Independent recovery and STOP/ownership-return results.
Caller-owned, zero-initialized single-executor session.
nx_i2c_bus_clear_result_t result
nx_i2c_bus_clear_timing_t timing
nx_i2c_bus_clear_port_t port
Caller-selected electrical timings in microseconds.
Absolute monotonic microsecond deadlines and wrap extension.
uint64_t nx_time_us_t
Microseconds in one boot/clock domain; no wall-clock semantics.