PROTOCOLS
Device
Defined in fuchsia.hardware.i2c/i2c.fidl
GetName
Get the name of this I2C Device. Returns ZX_ERR_NOT_SUPPORTED if the name is unspecified or the empty string.
Request
<EMPTY>
Response
Name | Type |
---|---|
payload |
Device_GetName_Result
|
Transfer
Issue one or more transactions to a particular I2C device.
Each Transaction
is performed in the order in which it appears in transactions
. Data for
read transfers (if there are any) is returned through read_data
, which has one entry for
each read transfer in transactions
. Transaction processing continues until all transfers
have been completed, an error occurs, or the target issues a NACK in response to a write
transfer.
The possible error values are:
ZX_ERR_INVALID_ARGS: transactions
has zero elements, data_transfer
was not specified
for a Transaction
, or there was a zero-length DataTransfer
.
ZX_ERR_OUT_OF_RANGE: A DataTransfer
was too large to be handled by this I2C controller.
ZX_ERR_IO_NOT_PRESENT: The device did not respond to its I2C address.
ZX_ERR_IO_REFUSED: The device issued a NACK before the end of a write transfer.
Request
Name | Type |
---|---|
transactions |
vector<Transaction>:256
|
Response
Name | Type |
---|---|
payload |
Device_Transfer_Result
|
STRUCTS
Device_GetName_Response
Defined in fuchsia.hardware.i2c/i2c.fidl
Field | Type | Description | Default |
---|---|---|---|
name |
string:64
|
No default |
Device_Transfer_Response
Defined in fuchsia.hardware.i2c/i2c.fidl
Field | Type | Description | Default |
---|---|---|---|
read_data |
vector<ReadData>:256
|
No default |
TABLES
Transaction
Defined in fuchsia.hardware.i2c/i2c.fidl
data_transfer
is mandatory, and specifies whether this transaction has a read or a write
transfer (see above).
stop
is optional, and specifies whether this transaction is terminated by a stop condition (if
true) or by a repeated-start (if false or unspecified). If this transaction is the last in the
list then a stop condition is generated regardless of the value of stop
.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
data_transfer |
DataTransfer
|
|
2 |
stop |
bool
|
UNIONS
DataTransfer flexible
Defined in fuchsia.hardware.i2c/i2c.fidl
If read_size
is set: This is a read transfer, and read_size
bytes will be read from the
target.
If write_data
is set: This is a write transfer, and write_data
will be written to the
target.
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
read_size |
uint32
|
|
2 |
write_data |
vector<uint8>:32768
|
Device_GetName_Result strict
Defined in fuchsia.hardware.i2c/i2c.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Device_GetName_Response
|
|
2 |
err |
zx/Status
|
Device_Transfer_Result strict
Defined in fuchsia.hardware.i2c/i2c.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Device_Transfer_Response
|
|
2 |
err |
zx/Status
|
CONSTANTS
Name | Value | Type | Description |
---|---|---|---|
MAX_COUNT_TRANSACTIONS |
256
|
uint32 |
The maximum number of transactions that can be specified in a call to |
MAX_I2C_NAME_LEN |
64
|
uint32 |
Maximum length of the I2C Channel name. Added: 11
|
MAX_TRANSFER_SIZE |
32768
|
uint32 |
Clients should be aware of the max channel message size when using large transfers or many transactions. It is possible to generate a message that uses values less than the limits below but is still too big for the channel. The maximum number of bytes that can be read or written in a single |
ALIASES
Name | Value | Description |
---|---|---|
ReadData |
vector [MAX_TRANSFER_SIZE ] |
Used to return data from read transfers. |
SERVICES
Service
Defined in fuchsia.hardware.i2c/i2c.fidl
Name | Type | Transport |
---|---|---|
device |
fuchsia.hardware.i2c/Device
|
Channel |