|
Nexus Embedded Platform 1.0.0
Statically assembled reusable embedded mechanisms
|
Explicit open-drain I2C bus clear with retained leases. More...
#include "nexus/core/time.h"Go to the source code of this file.
Data Structures | |
| struct | nx_i2c_bus_clear_ops_t |
| Read-only methods for an authorized two-pin GPIO handoff. More... | |
| struct | nx_i2c_bus_clear_port_t |
| Explicit immutable GPIO methods and caller-owned adapter state. More... | |
| struct | nx_i2c_bus_clear_timing_t |
| Caller-selected electrical timings in microseconds. More... | |
| struct | nx_i2c_bus_clear_result_t |
| Independent recovery and STOP/ownership-return results. More... | |
| struct | nx_i2c_bus_clear_t |
| Caller-owned, zero-initialized single-executor session. More... | |
Macros | |
| #define | NX_I2C_BUS_CLEAR_MAX_PULSES 9U |
| Maximum completed recovery low/high periods per attempt. | |
Functions | |
| 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 | 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. | |
Explicit open-drain I2C bus clear with retained leases.
Definition in file i2c_bus_clear.h.
| #define NX_I2C_BUS_CLEAR_MAX_PULSES 9U |
Maximum completed recovery low/high periods per attempt.
Definition at line 17 of file i2c_bus_clear.h.
| 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.
| [in,out] | clear | Initialized session with a retained lease. |
| [in] | deadline | New finite absolute cleanup deadline. |
| [out] | result | Preserved primary/pulse count and latest cleanup. |
| 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.
| [in,out] | clear | Fresh zeroed session or a session with no lease. |
| [in] | port | All five methods required; caller verifies electrical authorization rather than relying on generic GPIO APIs. |
| [in] | clock | Required bounded monotonic read in one boot domain. |
| [in] | timing | Reviewed nonzero low/high/STOP/poll durations. |
| 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.
| [in,out] | clear | Initialized session with no retained lease. |
| [in] | deadline | Finite absolute primary-operation deadline. |
| [in] | cleanup_deadline | Finite absolute STOP/lease deadline in the same clock domain, at or after deadline. |
| [out] | result | Independent primary/cleanup and retained effects. |