Astra MCU SDK Peripheral Driver Library
Loading...
Searching...
No Matches
Enumerated Types

Enumerated types for I3C driver. More...

Enumerations

enum  i3c_target_type_t {
  I3C_TARGET_TYPE_I3C = 0 ,
  I3C_TARGET_TYPE_I2C = 1
}
 I³C device type. More...
enum  i3c_xfer_speed_en {
  I3C_SPEED_SDR0_FM = 0 ,
  I3C_SPEED_SDR1_FMP = 1 ,
  I3C_SPEED_SDR2 = 2 ,
  I3C_SPEED_SDR3 = 3 ,
  I3C_SPEED_SDR4 = 4 ,
  I3C_SPEED_HDR_TS = 5 ,
  I3C_SPEED_HDR_DDR = 6
}
 I³C bus speed configuration. More...
enum  i3c_sdr_timing_preset_en {
  I3C_SDR_TIMING_PRESET_MANUAL = 0 ,
  I3C_SDR_TIMING_PRESET_SDR0_FM ,
  I3C_SDR_TIMING_PRESET_SDR1_FMP ,
  I3C_SDR_TIMING_PRESET_SDR2 ,
  I3C_SDR_TIMING_PRESET_SDR3 ,
  I3C_SDR_TIMING_PRESET_SDR4
}
 Controller SDR timing preset selection. More...
enum  i3c_hdr_mode_en {
  I3C_HDR_MODE_DISABLED = 0 ,
  I3C_HDR_MODE_TS ,
  I3C_HDR_MODE_DDR
}
 HDR operation mode selection.
enum  i3c_ccc_type_en {
  I3C_CCC_BROADCAST = 0 ,
  I3C_CCC_DIRECT = 1
}
 CCC routing type. More...
enum  i3c_transfer_dir_en {
  I3C_TRANSFER_WRITE = 0 ,
  I3C_TRANSFER_READ = 1
}
 I³C transfer direction. More...
enum  i3c_addr_mode_en {
  I3C_ADDR_MODE_STATIC = 0 ,
  I3C_ADDR_MODE_DYNAMIC = 1 ,
  I3C_ADDR_MODE_DAT = 2 ,
  I3C_ADDR_MODE_BROADCAST = 3
}
 Address selection mode for transfer descriptors. More...
enum  i3c_transfer_flags_en {
  I3C_XFER_FLAG_NONE = 0u ,
  I3C_XFER_FLAG_STOP = (1u << 0) ,
  I3C_XFER_FLAG_RESTART = (1u << 1) ,
  I3C_XFER_FLAG_HDR = (1u << 2) ,
  I3C_XFER_FLAG_CCC = (1u << 3)
}
 Transfer option flags. More...
enum  i3c_status_en {
  I3C_OK = 0 ,
  I3C_ERROR = 1 ,
  I3C_ERROR_PARAMETER = 2 ,
  I3C_ERROR_BUSY = 3 ,
  I3C_ERROR_TIMEOUT = 4 ,
  I3C_ERROR_TRANSFER = 5 ,
  I3C_ERROR_HW_INCAPABLE = 6 ,
  I3C_ERROR_QUEUE_EMPTY = 7 ,
  I3C_ERROR_QUEUE_FULL = 8 ,
  I3C_ERROR_UNSUPPORTED_MODE = 9 ,
  I3C_ERROR_ADDR_NACK = 10 ,
  I3C_ERROR_BROADCAST_ADDR_NACK = 11 ,
  I3C_ERROR_I2C_WR_DATA_NACK = 12 ,
  I3C_ERROR_IBI_NACK = 13 ,
  I3C_ERROR_CCC_ROUTE = 14 ,
  I3C_ERROR_CCC_TARGET = 15 ,
  I3C_ERROR_CRC = 20 ,
  I3C_ERROR_PARITY = 21 ,
  I3C_ERROR_FRAME = 22 ,
  I3C_ERROR_HDR_BUF_OVF_UNF = 23 ,
  I3C_ERROR_PEC = 24 ,
  I3C_ERROR_TRANSFER_TERMINATED = 30 ,
  I3C_ERROR_INVALID_CCC = 40 ,
  I3C_ERROR_RESPONSE = 41 ,
  I3C_ERROR_RESP_TIMEOUT = 42 ,
  I3C_ERROR_RESP_BUFFER_FULL = 43 ,
  I3C_ERROR_RESP_BUFFER_SMALL = 44 ,
  I3C_ERROR_IBI_EARLY_TERMINATE = 50 ,
  I3C_ERROR_IBI_NOT_ATTEMPTED = 51 ,
  I3C_ERROR_NO_DATA = 52 ,
  I3C_ERROR_INVALID_ARGUMENT = I3C_ERROR_PARAMETER ,
  I3C_ERROR_UNAVAILABLE = I3C_ERROR_NO_DATA ,
  I3C_ERROR_BUFFER_TOO_SMALL = I3C_ERROR_RESP_BUFFER_SMALL
}
 I³C driver return status codes. More...
enum  i3c_mode_en {
  I3C_MODE_CONTROLLER = 0 ,
  I3C_MODE_TARGET ,
  I3C_MODE_INVALID
}
 I³C operation modes. More...
enum  i3c_event_type_en {
  I3C_EVENT_TRANSFER_ERR = 0 ,
  I3C_EVENT_TRANSFER_ABORT = 1 ,
  I3C_EVENT_RESP_READY = 2 ,
  I3C_EVENT_IBI_SIR_RECEIVED = 3 ,
  I3C_EVENT_IBI_HJ_REQ_RECEIVED = 4 ,
  I3C_EVENT_READ_COMPLETE = 5 ,
  I3C_EVENT_WRITE_COMPLETE = 6 ,
  I3C_EVENT_MR_RECEIVED = 7 ,
  I3C_EVENT_MR_RESPONSE = 8
}
 I³C callback event types. More...
enum  i3c_event_mask_en {
  I3C_EVENT_MASK_TRANSFER_ERR = (1u << 0) ,
  I3C_EVENT_MASK_TRANSFER_ABORT = (1u << 1) ,
  I3C_EVENT_MASK_RESP_READY = (1u << 2) ,
  I3C_EVENT_MASK_IBI_SIR_RECEIVED = (1u << 3) ,
  I3C_EVENT_MASK_IBI_HJ_REQ_RECEIVED = (1u << 4) ,
  I3C_EVENT_MASK_READ_COMPLETE = (1u << 5) ,
  I3C_EVENT_MASK_WRITE_COMPLETE = (1u << 6) ,
  I3C_EVENT_MASK_MR_RECEIVED = (1u << 7) ,
  I3C_EVENT_MASK_MR_RESPONSE = (1u << 8) ,
  I3C_EVENT_MASK_ALL = 0x1FFu
}
 Event notification mask bits. More...
enum  i3c_transfer_status_en {
  I3C_TRANSFER_STATUS_IDLE = 0 ,
  I3C_TRANSFER_STATUS_IN_PROGRESS = 1 ,
  I3C_TRANSFER_STATUS_READ_PENDING = 2 ,
  I3C_TRANSFER_STATUS_WRITE_PENDING = 3 ,
  I3C_TRANSFER_STATUS_COMPLETE = 4 ,
  I3C_TRANSFER_STATUS_ABORTED = 5 ,
  I3C_TRANSFER_STATUS_ERROR = 6 ,
  I3C_TRANSFER_INVALID_ID = 7 ,
  I3C_TRANSFER_RESPONSE_PENDING = 8 ,
  I3C_TRANSFER_RESPONSE_READY = 9
}
 Status codes for a non-blocking I³C transfer. More...

Detailed Description

Enumerated types for I3C driver.

Enumeration Type Documentation

◆ i3c_target_type_t

I³C device type.

This enumeration defines which type of device (I³C or Legacy I²C) is connected to the bus

Enumerator
I3C_TARGET_TYPE_I3C 

I³C device

I3C_TARGET_TYPE_I2C 

Legacy I²C device

◆ i3c_xfer_speed_en

I³C bus speed configuration.

This enumeration defines user-selectable bus speed configurations for initializing the I³C hardware.

Enumerator
I3C_SPEED_SDR0_FM 

SDR0 for i3c, FM for i2c

I3C_SPEED_SDR1_FMP 

SDR1 for i3c, FMP for i2c

I3C_SPEED_SDR2 

SDR2 speed mode

I3C_SPEED_SDR3 

SDR3 speed mode

I3C_SPEED_SDR4 

SDR4 speed mode

I3C_SPEED_HDR_TS 

HDR Ternary Symbol mode

I3C_SPEED_HDR_DDR 

HDR Double Data Rate mode

◆ i3c_sdr_timing_preset_en

Controller SDR timing preset selection.

Enumerator
I3C_SDR_TIMING_PRESET_MANUAL 

Use explicit i3c_scl_timing_t values

◆ i3c_ccc_type_en

CCC routing type.

Enumerator
I3C_CCC_BROADCAST 

Broadcast CCC on 0x7E

I3C_CCC_DIRECT 

Direct CCC to a specific DAT target

◆ i3c_transfer_dir_en

I³C transfer direction.

This enumeration specifies the direction of an I³C transfer operation, used to distinguish between read and write transfers.

Enumerator
I3C_TRANSFER_WRITE 

Controller sends data to the target

I3C_TRANSFER_READ 

Controller reads data from the target

◆ i3c_addr_mode_en

Address selection mode for transfer descriptors.

Enumerator
I3C_ADDR_MODE_STATIC 

Use static address in transfer descriptor

I3C_ADDR_MODE_DYNAMIC 

Use dynamic address in transfer descriptor

I3C_ADDR_MODE_DAT 

Use DAT index in transfer descriptor

I3C_ADDR_MODE_BROADCAST 

Broadcast address transfer

◆ i3c_transfer_flags_en

Transfer option flags.

These flags can be OR'ed together in i3c_transfer_t::flags.

Enumerator
I3C_XFER_FLAG_NONE 

No optional behavior

I3C_XFER_FLAG_STOP 

Send STOP at end of transfer

I3C_XFER_FLAG_RESTART 

Issue repeated-start before transfer

I3C_XFER_FLAG_HDR 

Perform transfer in HDR mode

I3C_XFER_FLAG_CCC 

Treat transfer as a CCC transaction

◆ i3c_status_en

I³C driver return status codes.

This enumeration defines the various return codes used by the I³C driver to indicate operation results and specific error conditions.

Enumerator
I3C_OK 

Operation completed successfully

I3C_ERROR 

Generic/unspecified error

I3C_ERROR_PARAMETER 

Invalid parameter provided

I3C_ERROR_BUSY 

Bus or driver is busy

I3C_ERROR_TIMEOUT 

Operation timed out

I3C_ERROR_TRANSFER 

Generic transfer error

I3C_ERROR_HW_INCAPABLE 

HW does not support the feature

I3C_ERROR_QUEUE_EMPTY 

Response/FIFO queue empty

I3C_ERROR_QUEUE_FULL 

Response/FIFO queue full

I3C_ERROR_UNSUPPORTED_MODE 

Requested mode not supported

I3C_ERROR_ADDR_NACK 

NACK for target address

I3C_ERROR_BROADCAST_ADDR_NACK 

NACK for broadcast address

I3C_ERROR_I2C_WR_DATA_NACK 

NACK for I²C write data

I3C_ERROR_IBI_NACK 

NACK for IBI request

I3C_ERROR_CCC_ROUTE 

CCC route mismatch (broadcast/direct)

I3C_ERROR_CCC_TARGET 

CCC target selection is invalid

I3C_ERROR_CRC 

CRC error in HDR-DDR transfers

I3C_ERROR_PARITY 

Parity error in HDR transfers

I3C_ERROR_FRAME 

Frame error in HDR-TS transfers

I3C_ERROR_HDR_BUF_OVF_UNF 

RX FIFO overflow/TX FIFO underflow in HDR

I3C_ERROR_PEC 

PEC validation error

I3C_ERROR_TRANSFER_TERMINATED 

Transfer terminated by hardware

I3C_ERROR_INVALID_CCC 

Invalid CCC command

I3C_ERROR_RESPONSE 

CCC response error

I3C_ERROR_RESP_TIMEOUT 

CCC response timeout

I3C_ERROR_RESP_BUFFER_FULL 

Response buffer full

I3C_ERROR_RESP_BUFFER_SMALL 

Response destination buffer too small

I3C_ERROR_IBI_EARLY_TERMINATE 

IBI terminated early

I3C_ERROR_IBI_NOT_ATTEMPTED 

IBI not attempted

I3C_ERROR_NO_DATA 

No IBI data available

I3C_ERROR_INVALID_ARGUMENT 

Backward-compatible alias

I3C_ERROR_UNAVAILABLE 

Backward-compatible alias

I3C_ERROR_BUFFER_TOO_SMALL 

Backward-compatible alias

◆ i3c_mode_en

I³C operation modes.

This enumeration defines whether the device operates as a controller or target in I³C communication.

Enumerator
I3C_MODE_CONTROLLER 

Controller mode

I3C_MODE_TARGET 

Target mode

I3C_MODE_INVALID 

Invalid mode

◆ i3c_event_type_en

I³C callback event types.

This enumeration defines various events reported to the application through a callback mechanism when the I³C driver operates in asynchronous or interrupt-driven mode. These events notify the application about transfer status, buffer thresholds, or protocol-specific occurrences.

Enumerator
I3C_EVENT_TRANSFER_ERR 

Error occurred during a transfer

I3C_EVENT_TRANSFER_ABORT 

Transfer aborted

I3C_EVENT_RESP_READY 

Response queue has reached the threshold value

I3C_EVENT_IBI_SIR_RECEIVED 

A SIR type IBI was received

I3C_EVENT_IBI_HJ_REQ_RECEIVED 

Hot join request received

I3C_EVENT_READ_COMPLETE 

Read transfer completed successfully

I3C_EVENT_WRITE_COMPLETE 

Write transfer completed successfully

I3C_EVENT_MR_RECEIVED 

Master Request received

I3C_EVENT_MR_RESPONSE 

Master Request response available

◆ i3c_event_mask_en

Event notification mask bits.

Applications can OR these bits and pass to i3c_controller_set_interrupt_config to receive only required notifications.

Enumerator
I3C_EVENT_MASK_TRANSFER_ERR 

Notify I3C_EVENT_TRANSFER_ERR

I3C_EVENT_MASK_TRANSFER_ABORT 

Notify I3C_EVENT_TRANSFER_ABORT

I3C_EVENT_MASK_RESP_READY 

Notify I3C_EVENT_RESP_READY

I3C_EVENT_MASK_IBI_SIR_RECEIVED 

Notify I3C_EVENT_IBI_SIR_RECEIVED

I3C_EVENT_MASK_IBI_HJ_REQ_RECEIVED 

Notify I3C_EVENT_IBI_HJ_REQ_RECEIVED

I3C_EVENT_MASK_READ_COMPLETE 

Notify I3C_EVENT_READ_COMPLETE

I3C_EVENT_MASK_WRITE_COMPLETE 

Notify I3C_EVENT_WRITE_COMPLETE

I3C_EVENT_MASK_MR_RECEIVED 

Notify I3C_EVENT_MR_RECEIVED

I3C_EVENT_MASK_MR_RESPONSE 

Notify I3C_EVENT_MR_RESPONSE

I3C_EVENT_MASK_ALL 

Enable all callback events

◆ i3c_transfer_status_en

Status codes for a non-blocking I³C transfer.

This is returned by i3c_get_controller_transfer_status() and i3c_get_target_transfer_status(). These let the application know where in the transfer lifecycle the driver is.

Enumerator
I3C_TRANSFER_STATUS_IDLE 

No transfer is active.

I3C_TRANSFER_STATUS_IN_PROGRESS 

Transfer is currently ongoing.

I3C_TRANSFER_STATUS_READ_PENDING 

Read transfer is pending.

I3C_TRANSFER_STATUS_WRITE_PENDING 

Write transfer is pending.

I3C_TRANSFER_STATUS_COMPLETE 

Transfer completed successfully.

I3C_TRANSFER_STATUS_ABORTED 

Transfer was aborted by the user.

I3C_TRANSFER_STATUS_ERROR 

Transfer failed due to an error.

I3C_TRANSFER_INVALID_ID 

Transfer failed due to invalid id.

I3C_TRANSFER_RESPONSE_PENDING 

Response is pending.

I3C_TRANSFER_RESPONSE_READY 

Response is ready.