I2c — Requirements
Normative
Defines what a conformant I2C driver MUST do. Keywords per Requirement Keywords; conformance per Conformance. Requirements do not carry individual status — the set-level status applies to all of them. Signatures, error codes, and configuration properties are in the API Reference, Errors, and Configuration Reference pages. Cross-module rules (types, error model, naming, memory mapping) are in General.
Mandatory (MUST) - 23 Requirements
The conformance contract — an implementation MUST satisfy every requirement here.
CHI-I2C-MUST-01 — Controller mode
|
The driver MUST support operating a channel as an I2C controller, initiating write and read transactions to a 7-bit-addressed device. |
CHI-I2C-MUST-02 — Target mode
|
The driver MUST support operating a channel as an I2C target, responding to a controller that addresses it with the channel’s configured address. |
CHI-I2C-MUST-03 — Event handling mode
|
For each channel, event handling MUST be statically configurable as interrupt or polling.
In interrupt mode |
CHI-I2C-MUST-04 — State after reset
|
After reset the driver MUST be in |
CHI-I2C-MUST-05 — State after initialization
|
|
CHI-I2C-MUST-06 — State after de-initialization
|
|
CHI-I2C-MUST-07 — Controller channel state transitions
|
A controller channel MUST follow the controller-mode state machine in
Concepts: |
CHI-I2C-MUST-08 — Target channel state transitions
|
A target channel MUST follow the target-mode state machine: |
CHI-I2C-MUST-09 — Initialization
|
|
CHI-I2C-MUST-10 — De-initialization
|
|
CHI-I2C-MUST-11 — Start a transmit transaction
|
|
CHI-I2C-MUST-12 — Start a receive transaction
|
|
CHI-I2C-MUST-13 — Data transfer
|
During interrupt or poll handling the driver MUST transfer the bytes to/from the buffers supplied to the start call. The caller’s buffer MUST remain valid until the matching completion callout fires; the driver MUST NOT rely on it afterwards. |
CHI-I2C-MUST-14 — Controller completion and bus release
|
On completing a controller transfer the driver MUST move the channel to |
CHI-I2C-MUST-15 — Target address and completion notification
|
On an address match the driver MUST report |
CHI-I2C-MUST-16 — Target over-request handling
|
If the integration code stages no response in |
CHI-I2C-MUST-17 — Error handling
|
On a NACK the driver MUST report |
CHI-I2C-MUST-18 — Poll function
|
Where a module provides |
CHI-I2C-MUST-19 — Channel state query
|
|
CHI-I2C-MUST-20 — Development error detection
|
When development error reporting is enabled, each API MUST detect the conditions listed in
Errors and report them via |
CHI-I2C-MUST-21 — Callout notifications
|
The driver MUST call |
CHI-I2C-MUST-22 — Public types and error identifiers
|
The driver MUST provide |
CHI-I2C-MUST-23 — Configuration model
|
The driver MUST support the configuration model in Configuration Reference — a
|