Zephyr Project API 4.0.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
I3C Common Command Codes

I3C Common Command Codes. More...

Data Structures

struct  i3c_ccc_target_payload
 Payload structure for Direct CCC to one target. More...
 
struct  i3c_ccc_payload
 Payload structure for one CCC transaction. More...
 
struct  i3c_ccc_events
 Payload for ENEC/DISEC CCC (Target Events Command). More...
 
struct  i3c_ccc_mwl
 Payload for SETMWL/GETMWL CCC (Set/Get Maximum Write Length). More...
 
struct  i3c_ccc_mrl
 Payload for SETMRL/GETMRL CCC (Set/Get Maximum Read Length). More...
 
struct  i3c_ccc_deftgts_active_controller
 The active controller part of payload for DEFTGTS CCC. More...
 
struct  i3c_ccc_deftgts_target
 The target device part of payload for DEFTGTS CCC. More...
 
struct  i3c_ccc_deftgts
 Payload for DEFTGTS CCC (Define List of Targets). More...
 
struct  i3c_ccc_address
 Payload for a single device address. More...
 
struct  i3c_ccc_getpid
 Payload for GETPID CCC (Get Provisioned ID). More...
 
struct  i3c_ccc_getbcr
 Payload for GETBCR CCC (Get Bus Characteristics Register). More...
 
struct  i3c_ccc_getdcr
 Payload for GETDCR CCC (Get Device Characteristics Register). More...
 
union  i3c_ccc_getstatus
 Payload for GETSTATUS CCC (Get Device Status). More...
 
struct  i3c_ccc_setbrgtgt_tgt
 One Bridged Target for SETBRGTGT payload. More...
 
struct  i3c_ccc_setbrgtgt
 Payload for SETBRGTGT CCC (Set Bridge Targets). More...
 
union  i3c_ccc_getmxds
 Payload for GETMXDS CCC (Get Max Data Speed). More...
 
union  i3c_ccc_getcaps
 Payload for GETCAPS CCC (Get Optional Feature Capabilities). More...
 

Macros

#define I3C_CCC_BROADCAST_MAX_ID   0x7FU
 Maximum CCC ID for broadcast.
 
#define I3C_CCC_ENEC(broadcast)   ((broadcast) ? 0x00U : 0x80U)
 Enable Events Command.
 
#define I3C_CCC_DISEC(broadcast)   ((broadcast) ? 0x01U : 0x81U)
 Disable Events Command.
 
#define I3C_CCC_ENTAS(as, broadcast)   (((broadcast) ? 0x02U : 0x82U) + (as))
 Enter Activity State.
 
#define I3C_CCC_ENTAS0(broadcast)   I3C_CCC_ENTAS(0, broadcast)
 Enter Activity State 0.
 
#define I3C_CCC_ENTAS1(broadcast)   I3C_CCC_ENTAS(1, broadcast)
 Enter Activity State 1.
 
#define I3C_CCC_ENTAS2(broadcast)   I3C_CCC_ENTAS(2, broadcast)
 Enter Activity State 2.
 
#define I3C_CCC_ENTAS3(broadcast)   I3C_CCC_ENTAS(3, broadcast)
 Enter Activity State 3.
 
#define I3C_CCC_RSTDAA   0x06U
 Reset Dynamic Address Assignment (Broadcast)
 
#define I3C_CCC_ENTDAA   0x07U
 Enter Dynamic Address Assignment (Broadcast)
 
#define I3C_CCC_DEFTGTS   0x08U
 Define List of Targets (Broadcast)
 
#define I3C_CCC_SETMWL(broadcast)   ((broadcast) ? 0x09U : 0x89U)
 Set Max Write Length (Broadcast or Direct)
 
#define I3C_CCC_SETMRL(broadcast)   ((broadcast) ? 0x0AU : 0x8AU)
 Set Max Read Length (Broadcast or Direct)
 
#define I3C_CCC_ENTTM   0x0BU
 Enter Test Mode (Broadcast)
 
#define I3C_CCC_SETBUSCON   0x0CU
 Set Bus Context (Broadcast)
 
#define I3C_CCC_ENDXFER(broadcast)   ((broadcast) ? 0x12U : 0x92U)
 Data Transfer Ending Procedure Control.
 
#define I3C_CCC_ENTHDR(x)   (0x20U + (x))
 Enter HDR Mode (HDR-DDR) (Broadcast)
 
#define I3C_CCC_ENTHDR0   0x20U
 Enter HDR Mode 0 (HDR-DDR) (Broadcast)
 
#define I3C_CCC_ENTHDR1   0x21U
 Enter HDR Mode 1 (HDR-TSP) (Broadcast)
 
#define I3C_CCC_ENTHDR2   0x22U
 Enter HDR Mode 2 (HDR-TSL) (Broadcast)
 
#define I3C_CCC_ENTHDR3   0x23U
 Enter HDR Mode 3 (HDR-BT) (Broadcast)
 
#define I3C_CCC_ENTHDR4   0x24U
 Enter HDR Mode 4 (Broadcast)
 
#define I3C_CCC_ENTHDR5   0x25U
 Enter HDR Mode 5 (Broadcast)
 
#define I3C_CCC_ENTHDR6   0x26U
 Enter HDR Mode 6 (Broadcast)
 
#define I3C_CCC_ENTHDR7   0x27U
 Enter HDR Mode 7 (Broadcast)
 
#define I3C_CCC_SETXTIME(broadcast)   ((broadcast) ? 0x28U : 0x98U)
 Exchange Timing Information (Broadcast or Direct)
 
#define I3C_CCC_SETAASA   0x29U
 Set All Addresses to Static Addresses (Broadcast)
 
#define I3C_CCC_RSTACT(broadcast)   ((broadcast) ? 0x2AU : 0x9AU)
 Target Reset Action.
 
#define I3C_CCC_DEFGRPA   0x2BU
 Define List of Group Address (Broadcast)
 
#define I3C_CCC_RSTGRPA(broadcast)   ((broadcast) ? 0x2CU : 0x9CU)
 Reset Group Address.
 
#define I3C_CCC_MLANE(broadcast)   ((broadcast) ? 0x2DU : 0x9DU)
 Multi-Lane Data Transfer Control (Broadcast)
 
#define I3C_CCC_VENDOR(broadcast, id)   ((id) + ((broadcast) ? 0x61U : 0xE0U))
 Vendor/Standard Extension.
 
#define I3C_CCC_SETDASA   0x87U
 Set Dynamic Address from Static Address (Direct)
 
#define I3C_CCC_SETNEWDA   0x88U
 Set New Dynamic Address (Direct)
 
#define I3C_CCC_GETMWL   0x8BU
 Get Max Write Length (Direct)
 
#define I3C_CCC_GETMRL   0x8CU
 Get Max Read Length (Direct)
 
#define I3C_CCC_GETPID   0x8DU
 Get Provisioned ID (Direct)
 
#define I3C_CCC_GETBCR   0x8EU
 Get Bus Characteristics Register (Direct)
 
#define I3C_CCC_GETDCR   0x8FU
 Get Device Characteristics Register (Direct)
 
#define I3C_CCC_GETSTATUS   0x90U
 Get Device Status (Direct)
 
#define I3C_CCC_GETACCCR   0x91U
 Get Accept Controller Role (Direct)
 
#define I3C_CCC_SETBRGTGT   0x93U
 Set Bridge Targets (Direct)
 
#define I3C_CCC_GETMXDS   0x94U
 Get Max Data Speed (Direct)
 
#define I3C_CCC_GETCAPS   0x95U
 Get Optional Feature Capabilities (Direct)
 
#define I3C_CCC_SETROUTE   0x96U
 Set Route (Direct)
 
#define I3C_CCC_D2DXFER   0x97U
 Device to Device(s) Tunneling Control (Direct)
 
#define I3C_CCC_GETXTIME   0x99U
 Get Exchange Timing Information (Direct)
 
#define I3C_CCC_SETGRPA   0x9BU
 Set Group Address (Direct)
 
#define I3C_CCC_ENEC_EVT_ENINTR   BIT(0)
 Enable Events (ENEC) - Target Interrupt Requests.
 
#define I3C_CCC_ENEC_EVT_ENCR   BIT(1)
 Enable Events (ENEC) - Controller Role Requests.
 
#define I3C_CCC_ENEC_EVT_ENHJ   BIT(3)
 Enable Events (ENEC) - Hot-Join Event.
 
#define I3C_CCC_ENEC_EVT_ALL    (I3C_CCC_ENEC_EVT_ENINTR | I3C_CCC_ENEC_EVT_ENCR | I3C_CCC_ENEC_EVT_ENHJ)
 
#define I3C_CCC_DISEC_EVT_DISINTR   BIT(0)
 Disable Events (DISEC) - Target Interrupt Requests.
 
#define I3C_CCC_DISEC_EVT_DISCR   BIT(1)
 Disable Events (DISEC) - Controller Role Requests.
 
#define I3C_CCC_DISEC_EVT_DISHJ   BIT(3)
 Disable Events (DISEC) - Hot-Join Event.
 
#define I3C_CCC_DISEC_EVT_ALL    (I3C_CCC_DISEC_EVT_DISINTR | I3C_CCC_DISEC_EVT_DISCR | I3C_CCC_DISEC_EVT_DISHJ)
 
#define I3C_CCC_EVT_INTR   BIT(0)
 Events - Target Interrupt Requests.
 
#define I3C_CCC_EVT_CR   BIT(1)
 Events - Controller Role Requests.
 
#define I3C_CCC_EVT_HJ   BIT(3)
 Events - Hot-Join Event.
 
#define I3C_CCC_EVT_ALL    (I3C_CCC_EVT_INTR | I3C_CCC_EVT_CR | I3C_CCC_EVT_HJ)
 Bitmask for all events.
 
#define I3C_CCC_GETSTATUS_PROTOCOL_ERR   BIT(5)
 GETSTATUS Format 1 - Protocol Error bit.
 
#define I3C_CCC_GETSTATUS_ACTIVITY_MODE_MASK   GENMASK(7U, 6U)
 GETSTATUS Format 1 - Activity Mode bitmask.
 
#define I3C_CCC_GETSTATUS_ACTIVITY_MODE(status)    FIELD_GET(I3C_CCC_GETSTATUS_ACTIVITY_MODE_MASK, (status))
 GETSTATUS Format 1 - Activity Mode.
 
#define I3C_CCC_GETSTATUS_NUM_INT_MASK   GENMASK(3U, 0U)
 GETSTATUS Format 1 - Number of Pending Interrupts bitmask.
 
#define I3C_CCC_GETSTATUS_NUM_INT(status)    FIELD_GET(I3C_CCC_GETSTATUS_NUM_INT_MASK, (status))
 GETSTATUS Format 1 - Number of Pending Interrupts.
 
#define I3C_CCC_GETSTATUS_PRECR_DEEP_SLEEP_DETECTED   BIT(0)
 GETSTATUS Format 2 - PERCR - Deep Sleep Detected bit.
 
#define I3C_CCC_GETSTATUS_PRECR_HANDOFF_DELAY_NACK   BIT(1)
 GETSTATUS Format 2 - PERCR - Handoff Delay NACK.
 
#define I3C_CCC_GETMXDS_MAX_SDR_FSCL_MAX   0
 Get Max Data Speed (GETMXDS) - Default Max Sustained Data Rate.
 
#define I3C_CCC_GETMXDS_MAX_SDR_FSCL_8MHZ   1
 Get Max Data Speed (GETMXDS) - 8MHz Max Sustained Data Rate.
 
#define I3C_CCC_GETMXDS_MAX_SDR_FSCL_6MHZ   2
 Get Max Data Speed (GETMXDS) - 6MHz Max Sustained Data Rate.
 
#define I3C_CCC_GETMXDS_MAX_SDR_FSCL_4MHZ   3
 Get Max Data Speed (GETMXDS) - 4MHz Max Sustained Data Rate.
 
#define I3C_CCC_GETMXDS_MAX_SDR_FSCL_2MHZ   4
 Get Max Data Speed (GETMXDS) - 2MHz Max Sustained Data Rate.
 
#define I3C_CCC_GETMXDS_TSCO_8NS   0
 Get Max Data Speed (GETMXDS) - Clock to Data Turnaround <= 8ns.
 
#define I3C_CCC_GETMXDS_TSCO_9NS   1
 Get Max Data Speed (GETMXDS) - Clock to Data Turnaround <= 9ns.
 
#define I3C_CCC_GETMXDS_TSCO_10NS   2
 Get Max Data Speed (GETMXDS) - Clock to Data Turnaround <= 10ns.
 
#define I3C_CCC_GETMXDS_TSCO_11NS   3
 Get Max Data Speed (GETMXDS) - Clock to Data Turnaround <= 11ns.
 
#define I3C_CCC_GETMXDS_TSCO_12NS   4
 Get Max Data Speed (GETMXDS) - Clock to Data Turnaround <= 12ns.
 
#define I3C_CCC_GETMXDS_TSCO_GT_12NS   7
 Get Max Data Speed (GETMXDS) - Clock to Data Turnaround > 12ns.
 
#define I3C_CCC_GETMXDS_MAXWR_DEFINING_BYTE_SUPPORT   BIT(3)
 Get Max Data Speed (GETMXDS) - maxWr - Optional Defining Byte Support.
 
#define I3C_CCC_GETMXDS_MAXWR_MAX_SDR_FSCL_MASK   GENMASK(2U, 0U)
 Get Max Data Speed (GETMXDS) - Max Sustained Data Rate bitmask.
 
#define I3C_CCC_GETMXDS_MAXWR_MAX_SDR_FSCL(maxwr)    FIELD_GET(I3C_CCC_GETMXDS_MAXWR_MAX_SDR_FSCL_MASK, (maxwr))
 Get Max Data Speed (GETMXDS) - maxWr - Max Sustained Data Rate.
 
#define I3C_CCC_GETMXDS_MAXRD_W2R_PERMITS_STOP_BETWEEN   BIT(6)
 Get Max Data Speed (GETMXDS) - maxRd - Write-to-Read Permits Stop Between.
 
#define I3C_CCC_GETMXDS_MAXRD_TSCO_MASK   GENMASK(5U, 3U)
 Get Max Data Speed (GETMXDS) - maxRd - Clock to Data Turnaround bitmask.
 
#define I3C_CCC_GETMXDS_MAXRD_TSCO(maxrd)    FIELD_GET(I3C_CCC_GETMXDS_MAXRD_TSCO_MASK, (maxrd))
 Get Max Data Speed (GETMXDS) - maxRd - Clock to Data Turnaround.
 
#define I3C_CCC_GETMXDS_MAXRD_MAX_SDR_FSCL_MASK   GENMASK(2U, 0U)
 Get Max Data Speed (GETMXDS) - maxRd - Max Sustained Data Rate bitmask.
 
#define I3C_CCC_GETMXDS_MAXRD_MAX_SDR_FSCL(maxrd)    FIELD_GET(I3C_CCC_GETMXDS_MAXRD_MAX_SDR_FSCL_MASK, (maxrd))
 Get Max Data Speed (GETMXDS) - maxRd - Max Sustained Data Rate.
 
#define I3C_CCC_GETMXDS_CRDHLY1_SET_BUS_ACT_STATE   BIT(2)
 Get Max Data Speed (GETMXDS) - CRDHLY1 - Set Bus Activity State bit shift value.
 
#define I3C_CCC_GETMXDS_CRDHLY1_CTRL_HANDOFF_ACT_STATE_MASK   GENMASK(1U, 0U)
 Get Max Data Speed (GETMXDS) - CRDHLY1 - Controller Handoff Activity State bitmask.
 
#define I3C_CCC_GETMXDS_CRDHLY1_CTRL_HANDOFF_ACT_STATE(crhdly1)    FIELD_GET(I3C_CCC_GETMXDS_CRDHLY1_CTRL_HANDOFF_ACT_STATE_MASK, (chrdly1))
 Get Max Data Speed (GETMXDS) - CRDHLY1 - Controller Handoff Activity State.
 
#define I3C_CCC_GETCAPS1_HDR_DDR   BIT(0)
 Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR-DDR mode bit.
 
#define I3C_CCC_GETCAPS1_HDR_TSP   BIT(1)
 Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR-TSP mode bit.
 
#define I3C_CCC_GETCAPS1_HDR_TSL   BIT(2)
 Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR-TSL mode bit.
 
#define I3C_CCC_GETCAPS1_HDR_BT   BIT(3)
 Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR-BT mode bit.
 
#define I3C_CCC_GETCAPS1_HDR_MODE(x)   BIT(x)
 Get Optional Feature Capabilities Byte 1 (GETCAPS) - HDR Mode.
 
#define I3C_CCC_GETCAPS1_HDR_MODE0   BIT(0)
 Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR Mode 0.
 
#define I3C_CCC_GETCAPS1_HDR_MODE1   BIT(1)
 Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR Mode 1.
 
#define I3C_CCC_GETCAPS1_HDR_MODE2   BIT(2)
 Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR Mode 2.
 
#define I3C_CCC_GETCAPS1_HDR_MODE3   BIT(3)
 Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR Mode 3.
 
#define I3C_CCC_GETCAPS1_HDR_MODE4   BIT(4)
 Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR Mode 4.
 
#define I3C_CCC_GETCAPS1_HDR_MODE5   BIT(5)
 Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR Mode 5.
 
#define I3C_CCC_GETCAPS1_HDR_MODE6   BIT(6)
 Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR Mode 6.
 
#define I3C_CCC_GETCAPS1_HDR_MODE7   BIT(7)
 Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR Mode 7.
 
#define I3C_CCC_GETCAPS2_HDRDDR_WRITE_ABORT   BIT(6)
 Get Optional Feature Capabilities Byte 2 (GETCAPS) Format 1 - HDR-DDR Write Abort bit.
 
#define I3C_CCC_GETCAPS2_HDRDDR_ABORT_CRC   BIT(7)
 Get Optional Feature Capabilities Byte 2 (GETCAPS) Format 1 - HDR-DDR Abort CRC bit.
 
#define I3C_CCC_GETCAPS2_GRPADDR_CAP_MASK   GENMASK(5U, 4U)
 Get Optional Feature Capabilities Byte 2 (GETCAPS) Format 1 - Group Address Capabilities bitmask.
 
#define I3C_CCC_GETCAPS2_GRPADDR_CAP(getcaps2)    FIELD_GET(I3C_CCC_GETCAPS2_GRPADDR_CAP_MASK, (getcaps2))
 Get Optional Feature Capabilities Byte 2 (GETCAPS) Format 1 - Group Address Capabilities.
 
#define I3C_CCC_GETCAPS2_SPEC_VER_MASK   GENMASK(3U, 0U)
 Get Optional Feature Capabilities Byte 2 (GETCAPS) Format 1 - I3C 1.x Specification Version bitmask.
 
#define I3C_CCC_GETCAPS2_SPEC_VER(getcaps2)    FIELD_GET(I3C_CCC_GETCAPS2_SPEC_VER_MASK, (getcaps2))
 Get Optional Feature Capabilities Byte 2 (GETCAPS) Format 1 - I3C 1.x Specification Version.
 
#define I3C_CCC_GETCAPS3_MLANE_SUPPORT   BIT(0)
 Get Optional Feature Capabilities Byte 3 (GETCAPS) Format 1 - Multi-Lane Data Transfer Support bit.
 
#define I3C_CCC_GETCAPS3_D2DXFER_SUPPORT   BIT(1)
 Get Optional Feature Capabilities Byte 3 (GETCAPS) Format 1 - Device to Device Transfer (D2DXFER) Support bit.
 
#define I3C_CCC_GETCAPS3_D2DXFER_IBI_CAPABLE   BIT(2)
 Get Optional Feature Capabilities Byte 3 (GETCAPS) Format 1 - Device to Device Transfer (D2DXFER) IBI Capable bit.
 
#define I3C_CCC_GETCAPS3_GETCAPS_DEFINING_BYTE_SUPPORT   BIT(3)
 Get Optional Feature Capabilities Byte 3 (GETCAPS) Format 1 - Defining Byte Support in GETCAPS bit.
 
#define I3C_CCC_GETCAPS3_GETSTATUS_DEFINING_BYTE_SUPPORT   BIT(4)
 Get Optional Feature Capabilities Byte 3 (GETCAPS) Format 1 - Defining Byte Support in GETSTATUS bit.
 
#define I3C_CCC_GETCAPS3_HDRBT_CRC32_SUPPORT   BIT(5)
 Get Optional Feature Capabilities Byte 3 (GETCAPS) Format 1 - HDR-BT CRC-32 Support bit.
 
#define I3C_CCC_GETCAPS3_IBI_MDR_PENDING_READ_NOTIFICATION   BIT(6)
 Get Optional Feature Capabilities Byte 3 (GETCAPS) Format 1 - IBI MDB Support for Pending Read Notification bit.
 
#define I3C_CCC_GETCAPS_TESTPAT1   0xA5
 Get Fixed Test Pattern (GETCAPS) Format 2 - Fixed Test Pattern Byte 1.
 
#define I3C_CCC_GETCAPS_TESTPAT2   0x5A
 Get Fixed Test Pattern (GETCAPS) Format 2 - Fixed Test Pattern Byte 2.
 
#define I3C_CCC_GETCAPS_TESTPAT3   0xA5
 Get Fixed Test Pattern (GETCAPS) Format 2 - Fixed Test Pattern Byte 3.
 
#define I3C_CCC_GETCAPS_TESTPAT4   0x5A
 Get Fixed Test Pattern (GETCAPS) Format 2 - Fixed Test Pattern Byte 4.
 
#define I3C_CCC_GETCAPS_TESTPAT   0xA55AA55A
 Get Fixed Test Pattern (GETCAPS) Format 2 - Fixed Test Pattern Word in Big Endian.
 
#define I3C_CCC_GETCAPS_CRCAPS1_HJ_SUPPORT   BIT(0)
 Get Controller Handoff Capabilities Byte 1 (GETCAPS) Format 2 - Hot-Join Support.
 
#define I3C_CCC_GETCAPS_CRCAPS1_GRP_MANAGEMENT_SUPPORT   BIT(1)
 Get Controller Handoff Capabilities Byte 1 (GETCAPS) Format 2 - Group Management Support.
 
#define I3C_CCC_GETCAPS_CRCAPS1_ML_SUPPORT   BIT(2)
 Get Controller Handoff Capabilities Byte 1 (GETCAPS) Format 2 - Multi-Lane Support.
 
#define I3C_CCC_GETCAPS_CRCAPS2_IBI_TIR_SUPPORT   BIT(0)
 Get Controller Handoff Capabilities Byte 2 (GETCAPS) Format 2 - In-Band Interrupt Support.
 
#define I3C_CCC_GETCAPS_CRCAPS2_CONTROLLER_PASSBACK   BIT(1)
 Get Controller Handoff Capabilities Byte 2 (GETCAPS) Format 2 - Controller Pass-Back.
 
#define I3C_CCC_GETCAPS_CRCAPS2_DEEP_SLEEP_CAPABLE   BIT(2)
 Get Controller Handoff Capabilities Byte 2 (GETCAPS) Format 2 - Deep Sleep Capable.
 
#define I3C_CCC_GETCAPS_CRCAPS2_DELAYED_CONTROLLER_HANDOFF   BIT(3)
 Get Controller Handoff Capabilities Byte 2 (GETCAPS) Format 2 - Deep Sleep Capable.
 
#define I3C_CCC_GETCAPS_VTCAP1_VITRUAL_TARGET_TYPE_MASK   GENMASK(2U, 0U)
 Get Capabilities (GETCAPS) - VTCAP1 - Virtual Target Type bitmask.
 
#define I3C_CCC_GETCAPS_VTCAP1_VITRUAL_TARGET_TYPE(vtcap1)    FIELD_GET(I3C_CCC_GETCAPS_VTCAP1_VITRUAL_TARGET_TYPE_MASK, (vtcap1))
 Get Capabilities (GETCAPS) - VTCAP1 - Virtual Target Type.
 
#define I3C_CCC_GETCAPS_VTCAP1_SIDE_EFFECTS   BIT(4)
 Get Virtual Target Capabilities Byte 1 (GETCAPS) Format 2 - Side Effects.
 
#define I3C_CCC_GETCAPS_VTCAP1_SHARED_PERIPH_DETECT   BIT(5)
 Get Virtual Target Capabilities Byte 1 (GETCAPS) Format 2 - Shared Peripheral Detect.
 
#define I3C_CCC_GETCAPS_VTCAP2_INTERRUPT_REQUESTS_MASK   GENMASK(1U, 0U)
 Get Capabilities (GETCAPS) - VTCAP2 - Interrupt Requests bitmask.
 
#define I3C_CCC_GETCAPS_VTCAP2_INTERRUPT_REQUESTS(vtcap2)    FIELD_GET(I3C_CCC_GETCAPS_VTCAP2_INTERRUPT_REQUESTS_MASK, (vtcap2))
 Get Capabilities (GETCAPS) - VTCAP2 - Interrupt Requests.
 
#define I3C_CCC_GETCAPS_VTCAP2_ADDRESS_REMAPPING   BIT(2)
 Get Virtual Target Capabilities Byte 2 (GETCAPS) Format 2 - Address Remapping.
 
#define I3C_CCC_GETCAPS_VTCAP2_BUS_CONTEXT_AND_COND_MASK   GENMASK(4U, 3U)
 Get Capabilities (GETCAPS) - VTCAP2 - Bus Context and Condition bitmask.
 
#define I3C_CCC_GETCAPS_VTCAP2_BUS_CONTEXT_AND_COND(vtcap2)    FIELD_GET(I3C_CCC_GETCAPS_VTCAP2_BUS_CONTEXT_AND_COND_MASK, (vtcap2))
 Get Capabilities (GETCAPS) - VTCAP2 - Bus Context and Condition.
 

Enumerations

enum  i3c_ccc_enttm_defbyte { ENTTM_EXIT_TEST_MODE = 0x00U , ENTTM_VENDOR_TEST_MODE = 0x01U }
 Defining byte values for ENTTM. More...
 
enum  i3c_ccc_getstatus_fmt { GETSTATUS_FORMAT_1 , GETSTATUS_FORMAT_2 }
 Indicate which format of GETSTATUS to use. More...
 
enum  i3c_ccc_getstatus_defbyte { GETSTATUS_FORMAT_2_TGTSTAT = 0x00U , GETSTATUS_FORMAT_2_PRECR = 0x91U , GETSTATUS_FORMAT_2_INVALID = 0x100U }
 Defining byte values for GETSTATUS Format 2. More...
 
enum  i3c_ccc_getmxds_fmt { GETMXDS_FORMAT_1 , GETMXDS_FORMAT_2 , GETMXDS_FORMAT_3 }
 Indicate which format of getmxds to use. More...
 
enum  i3c_ccc_getmxds_defbyte { GETMXDS_FORMAT_3_WRRDTURN = 0x00U , GETMXDS_FORMAT_3_CRHDLY = 0x91U , GETMXDS_FORMAT_3_INVALID = 0x100 }
 Enum for I3C Get Max Data Speed (GETMXDS) Format 3 Defining Byte Values. More...
 
enum  i3c_ccc_getcaps_fmt { GETCAPS_FORMAT_1 , GETCAPS_FORMAT_2 }
 Indicate which format of GETCAPS to use. More...
 
enum  i3c_ccc_getcaps_defbyte {
  GETCAPS_FORMAT_2_TGTCAPS = 0x00U , GETCAPS_FORMAT_2_TESTPAT = 0x5AU , GETCAPS_FORMAT_2_CRCAPS = 0x91U , GETCAPS_FORMAT_2_VTCAPS = 0x93U ,
  GETCAPS_FORMAT_2_DBGCAPS = 0xD7U , GETCAPS_FORMAT_2_INVALID = 0x100
}
 Enum for I3C Get Capabilities (GETCAPS) Format 2 Defining Byte Values. More...
 
enum  i3c_ccc_rstact_defining_byte {
  I3C_CCC_RSTACT_NO_RESET = 0x00U , I3C_CCC_RSTACT_PERIPHERAL_ONLY = 0x01U , I3C_CCC_RSTACT_RESET_WHOLE_TARGET = 0x02U , I3C_CCC_RSTACT_DEBUG_NETWORK_ADAPTER = 0x03U ,
  I3C_CCC_RSTACT_VIRTUAL_TARGET_DETECT = 0x04U , I3C_CCC_RSTACT_RETURN_TIME_TO_RESET_PERIPHERAL = 0x81U , I3C_CCC_RSTACT_RETURN_TIME_TO_WHOLE_TARGET = 0x82U , I3C_CCC_RSTACT_RETURN_TIME_FOR_DEBUG_NETWORK_ADAPTER_RESET = 0x83U ,
  I3C_CCC_RSTACT_RETURN_VIRTUAL_TARGET_INDICATION = 0x84U
}
 Enum for I3C Reset Action (RSTACT) Defining Byte Values. More...
 

Functions

static bool i3c_ccc_is_payload_broadcast (const struct i3c_ccc_payload *payload)
 Test if I3C CCC payload is for broadcast.
 
int i3c_ccc_do_getbcr (struct i3c_device_desc *target, struct i3c_ccc_getbcr *bcr)
 Get BCR from a target.
 
int i3c_ccc_do_getdcr (struct i3c_device_desc *target, struct i3c_ccc_getdcr *dcr)
 Get DCR from a target.
 
int i3c_ccc_do_getpid (struct i3c_device_desc *target, struct i3c_ccc_getpid *pid)
 Get PID from a target.
 
int i3c_ccc_do_rstact_all (const struct device *controller, enum i3c_ccc_rstact_defining_byte action)
 Broadcast RSTACT to reset I3C Peripheral (Format 1).
 
int i3c_ccc_do_rstact (const struct i3c_device_desc *target, enum i3c_ccc_rstact_defining_byte action, bool get, uint8_t *data)
 Single target RSTACT to reset I3C Peripheral.
 
static int i3c_ccc_do_rstact_fmt2 (const struct i3c_device_desc *target, enum i3c_ccc_rstact_defining_byte action)
 Single target RSTACT to reset I3C Peripheral (Format 2).
 
static int i3c_ccc_do_rstact_fmt3 (const struct i3c_device_desc *target, enum i3c_ccc_rstact_defining_byte action, uint8_t *data)
 Single target RSTACT to reset I3C Peripheral (Format 3).
 
int i3c_ccc_do_rstdaa_all (const struct device *controller)
 Broadcast RSTDAA to reset dynamic addresses for all targets.
 
int i3c_ccc_do_setdasa (const struct i3c_device_desc *target, struct i3c_ccc_address da)
 Set Dynamic Address from Static Address for a target.
 
int i3c_ccc_do_setnewda (const struct i3c_device_desc *target, struct i3c_ccc_address new_da)
 Set New Dynamic Address for a target.
 
int i3c_ccc_do_events_all_set (const struct device *controller, bool enable, struct i3c_ccc_events *events)
 Broadcast ENEC/DISEC to enable/disable target events.
 
int i3c_ccc_do_events_set (struct i3c_device_desc *target, bool enable, struct i3c_ccc_events *events)
 Direct CCC ENEC/DISEC to enable/disable target events.
 
int i3c_ccc_do_entas (const struct i3c_device_desc *target, uint8_t as)
 Direct ENTAS to set the Activity State.
 
static int i3c_ccc_do_entas0 (const struct i3c_device_desc *target)
 Direct ENTAS0.
 
static int i3c_ccc_do_entas1 (const struct i3c_device_desc *target)
 Direct ENTAS1.
 
static int i3c_ccc_do_entas2 (const struct i3c_device_desc *target)
 Direct ENTAS2.
 
static int i3c_ccc_do_entas3 (const struct i3c_device_desc *target)
 Direct ENTAS3.
 
int i3c_ccc_do_entas_all (const struct device *controller, uint8_t as)
 Broadcast ENTAS to set the Activity State.
 
static int i3c_ccc_do_entas0_all (const struct device *controller)
 Broadcast ENTAS0.
 
static int i3c_ccc_do_entas1_all (const struct device *controller)
 Broadcast ENTAS1.
 
static int i3c_ccc_do_entas2_all (const struct device *controller)
 Broadcast ENTAS2.
 
static int i3c_ccc_do_entas3_all (const struct device *controller)
 Broadcast ENTAS3.
 
int i3c_ccc_do_setmwl_all (const struct device *controller, const struct i3c_ccc_mwl *mwl)
 Broadcast SETMWL to Set Maximum Write Length.
 
int i3c_ccc_do_setmwl (const struct i3c_device_desc *target, const struct i3c_ccc_mwl *mwl)
 Single target SETMWL to Set Maximum Write Length.
 
int i3c_ccc_do_getmwl (const struct i3c_device_desc *target, struct i3c_ccc_mwl *mwl)
 Single target GETMWL to Get Maximum Write Length.
 
int i3c_ccc_do_setmrl_all (const struct device *controller, const struct i3c_ccc_mrl *mrl, bool has_ibi_size)
 Broadcast SETMRL to Set Maximum Read Length.
 
int i3c_ccc_do_setmrl (const struct i3c_device_desc *target, const struct i3c_ccc_mrl *mrl)
 Single target SETMRL to Set Maximum Read Length.
 
int i3c_ccc_do_getmrl (const struct i3c_device_desc *target, struct i3c_ccc_mrl *mrl)
 Single target GETMRL to Get Maximum Read Length.
 
int i3c_ccc_do_enttm (const struct device *controller, enum i3c_ccc_enttm_defbyte defbyte)
 Broadcast ENTTM.
 
int i3c_ccc_do_getstatus (const struct i3c_device_desc *target, union i3c_ccc_getstatus *status, enum i3c_ccc_getstatus_fmt fmt, enum i3c_ccc_getstatus_defbyte defbyte)
 Single target GETSTATUS to Get Target Status.
 
static int i3c_ccc_do_getstatus_fmt1 (const struct i3c_device_desc *target, union i3c_ccc_getstatus *status)
 Single target GETSTATUS to Get Target Status (Format 1).
 
static int i3c_ccc_do_getstatus_fmt2 (const struct i3c_device_desc *target, union i3c_ccc_getstatus *status, enum i3c_ccc_getstatus_defbyte defbyte)
 Single target GETSTATUS to Get Target Status (Format 2).
 
int i3c_ccc_do_getcaps (const struct i3c_device_desc *target, union i3c_ccc_getcaps *caps, enum i3c_ccc_getcaps_fmt fmt, enum i3c_ccc_getcaps_defbyte defbyte)
 Single target GETCAPS to Get Target Status.
 
static int i3c_ccc_do_getcaps_fmt1 (const struct i3c_device_desc *target, union i3c_ccc_getcaps *caps)
 Single target GETCAPS to Get Capabilities (Format 1).
 
static int i3c_ccc_do_getcaps_fmt2 (const struct i3c_device_desc *target, union i3c_ccc_getcaps *caps, enum i3c_ccc_getcaps_defbyte defbyte)
 Single target GETCAPS to Get Capabilities (Format 2).
 
int i3c_ccc_do_setvendor (const struct i3c_device_desc *target, uint8_t id, uint8_t *payload, size_t len)
 Single target to Set Vendor / Standard Extension CCC.
 
int i3c_ccc_do_getvendor (const struct i3c_device_desc *target, uint8_t id, uint8_t *payload, size_t len, size_t *num_xfer)
 Single target to Get Vendor / Standard Extension CCC.
 
int i3c_ccc_do_getvendor_defbyte (const struct i3c_device_desc *target, uint8_t id, uint8_t defbyte, uint8_t *payload, size_t len, size_t *num_xfer)
 Single target to Get Vendor / Standard Extension CCC with a defining byte.
 
int i3c_ccc_do_setvendor_all (const struct device *controller, uint8_t id, uint8_t *payload, size_t len)
 Broadcast Set Vendor / Standard Extension CCC.
 
int i3c_ccc_do_setaasa_all (const struct device *controller)
 Broadcast SETAASA to set all target's dynamic address to their static address.
 
int i3c_ccc_do_getmxds (const struct i3c_device_desc *target, union i3c_ccc_getmxds *caps, enum i3c_ccc_getmxds_fmt fmt, enum i3c_ccc_getmxds_defbyte defbyte)
 Single target GETMXDS to Get Max Data Speed.
 
static int i3c_ccc_do_getmxds_fmt1 (const struct i3c_device_desc *target, union i3c_ccc_getmxds *caps)
 Single target GETMXDS to Get Max Data Speed (Format 1).
 
static int i3c_ccc_do_getmxds_fmt2 (const struct i3c_device_desc *target, union i3c_ccc_getmxds *caps)
 Single target GETMXDS to Get Max Data Speed (Format 2).
 
static int i3c_ccc_do_getmxds_fmt3 (const struct i3c_device_desc *target, union i3c_ccc_getmxds *caps, enum i3c_ccc_getmxds_defbyte defbyte)
 Single target GETMXDS to Get Max Data Speed (Format 3).
 
int i3c_ccc_do_deftgts_all (const struct device *controller, struct i3c_ccc_deftgts *deftgts)
 Broadcast DEFTGTS.
 
int i3c_ccc_do_setbuscon (const struct device *controller, uint8_t *context, uint16_t length)
 Broadcast SETBUSCON to set the bus context.
 

Set Bus Context MIPI I3C Specification v1.Y Minor Version (SETBUSCON)

  • CONTEXT[7:6]: 2'b00
  • CONTEXT[5]: I3C Specification Editorial Revision (within Minor Version)
    • 0: Version 1.Y.0
    • 1: Version 1.Y.1 or greater
  • CONTEXT[4]: I3C Specification Family
    • 0: MIPI I3C Specification
    • 1: MIPI I3C Basic Specification
  • CONTEXT[3:0]: I3C Specification Minor Version (v1.Y)
    • 0: Illegal, do not use (see Note below) (It would encode v1.0, but SETBUSCON was not available in I3C Basic v1.0)
    • 1-15: Version 1.1 - Version 1.15

Examples: Bit[5] Bit[4] Bits[3:0] I3C Basic v1.1.0: 1’b0 || 1’b1 || 4’b0001 or 8’b00010001 I3C Basic v1.1.1: 1’b1 || 1’b1 || 4’b0001 or 8’b00110001 I3C Basic v1.2.0: 1’b0 || 1’b1 || 4’b0010 or 8’b00010010

#define I3C_CCC_SETBUSCON_I3C_SPEC_MINOR_VER_MASK   GENMASK(3U, 0U)
 I3C Specification Minor Version shift mask.
 
#define I3C_CCC_SETBUSCON_I3C_SPEC_MINOR_VER(y)    FIELD_PREP(I3C_CCC_SETBUSCON_I3C_SPEC_MINOR_VER_MASK, (y))
 I3C Specification Minor Version (v1.Y)
 
#define I3C_CCC_SETBUSCON_I3C_SPEC_I3C_SPEC   0
 MIPI I3C Specification.
 
#define I3C_CCC_SETBUSCON_I3C_SPEC_I3C_BASIC_SPEC   BIT(4)
 MIPI I3C Basic Specification.
 
#define I3C_CCC_SETBUSCON_I3C_SPEC_I3C_SPEC_EDITORIAL_1_Y_0   0
 Version 1.Y.0.
 
#define I3C_CCC_SETBUSCON_I3C_SPEC_I3C_SPEC_EDITORIAL_1_Y_1   BIT(5)
 Version 1.Y.1 or greater.
 

Set Bus Context Other Standards Organizations (SETBUSCON)

#define I3C_CCC_SETBUSCON_OTHER_STANDARDS_JEDEC_SIDEBAND   128
 JEDEC Sideband.
 
#define I3C_CCC_SETBUSCON_OTHER_STANDARDS_MCTP   129
 MCTP.
 
#define I3C_CCC_SETBUSCON_OTHER_STANDARDS_ETSI   130
 ETSI.
 

Detailed Description

I3C Common Command Codes.

Macro Definition Documentation

◆ I3C_CCC_BROADCAST_MAX_ID

#define I3C_CCC_BROADCAST_MAX_ID   0x7FU

#include <include/zephyr/drivers/i3c/ccc.h>

Maximum CCC ID for broadcast.

◆ I3C_CCC_D2DXFER

#define I3C_CCC_D2DXFER   0x97U

#include <include/zephyr/drivers/i3c/ccc.h>

Device to Device(s) Tunneling Control (Direct)

◆ I3C_CCC_DEFGRPA

#define I3C_CCC_DEFGRPA   0x2BU

#include <include/zephyr/drivers/i3c/ccc.h>

Define List of Group Address (Broadcast)

◆ I3C_CCC_DEFTGTS

#define I3C_CCC_DEFTGTS   0x08U

#include <include/zephyr/drivers/i3c/ccc.h>

Define List of Targets (Broadcast)

◆ I3C_CCC_DISEC

#define I3C_CCC_DISEC (   broadcast)    ((broadcast) ? 0x01U : 0x81U)

#include <include/zephyr/drivers/i3c/ccc.h>

Disable Events Command.

Parameters
broadcastTrue if broadcast, false if direct.

◆ I3C_CCC_DISEC_EVT_ALL

◆ I3C_CCC_DISEC_EVT_DISCR

#define I3C_CCC_DISEC_EVT_DISCR   BIT(1)

#include <include/zephyr/drivers/i3c/ccc.h>

Disable Events (DISEC) - Controller Role Requests.

◆ I3C_CCC_DISEC_EVT_DISHJ

#define I3C_CCC_DISEC_EVT_DISHJ   BIT(3)

#include <include/zephyr/drivers/i3c/ccc.h>

Disable Events (DISEC) - Hot-Join Event.

◆ I3C_CCC_DISEC_EVT_DISINTR

#define I3C_CCC_DISEC_EVT_DISINTR   BIT(0)

#include <include/zephyr/drivers/i3c/ccc.h>

Disable Events (DISEC) - Target Interrupt Requests.

◆ I3C_CCC_ENDXFER

#define I3C_CCC_ENDXFER (   broadcast)    ((broadcast) ? 0x12U : 0x92U)

#include <include/zephyr/drivers/i3c/ccc.h>

Data Transfer Ending Procedure Control.

Parameters
broadcastTrue if broadcast, false if direct.

◆ I3C_CCC_ENEC

#define I3C_CCC_ENEC (   broadcast)    ((broadcast) ? 0x00U : 0x80U)

#include <include/zephyr/drivers/i3c/ccc.h>

Enable Events Command.

Parameters
broadcastTrue if broadcast, false if direct.

◆ I3C_CCC_ENEC_EVT_ALL

◆ I3C_CCC_ENEC_EVT_ENCR

#define I3C_CCC_ENEC_EVT_ENCR   BIT(1)

#include <include/zephyr/drivers/i3c/ccc.h>

Enable Events (ENEC) - Controller Role Requests.

◆ I3C_CCC_ENEC_EVT_ENHJ

#define I3C_CCC_ENEC_EVT_ENHJ   BIT(3)

#include <include/zephyr/drivers/i3c/ccc.h>

Enable Events (ENEC) - Hot-Join Event.

◆ I3C_CCC_ENEC_EVT_ENINTR

#define I3C_CCC_ENEC_EVT_ENINTR   BIT(0)

#include <include/zephyr/drivers/i3c/ccc.h>

Enable Events (ENEC) - Target Interrupt Requests.

◆ I3C_CCC_ENTAS

#define I3C_CCC_ENTAS (   as,
  broadcast 
)    (((broadcast) ? 0x02U : 0x82U) + (as))

#include <include/zephyr/drivers/i3c/ccc.h>

Enter Activity State.

Parameters
asDesired activity state
broadcastTrue if broadcast, false if direct.

◆ I3C_CCC_ENTAS0

#define I3C_CCC_ENTAS0 (   broadcast)    I3C_CCC_ENTAS(0, broadcast)

#include <include/zephyr/drivers/i3c/ccc.h>

Enter Activity State 0.

Parameters
broadcastTrue if broadcast, false if direct.

◆ I3C_CCC_ENTAS1

#define I3C_CCC_ENTAS1 (   broadcast)    I3C_CCC_ENTAS(1, broadcast)

#include <include/zephyr/drivers/i3c/ccc.h>

Enter Activity State 1.

Parameters
broadcastTrue if broadcast, false if direct.

◆ I3C_CCC_ENTAS2

#define I3C_CCC_ENTAS2 (   broadcast)    I3C_CCC_ENTAS(2, broadcast)

#include <include/zephyr/drivers/i3c/ccc.h>

Enter Activity State 2.

Parameters
broadcastTrue if broadcast, false if direct.

◆ I3C_CCC_ENTAS3

#define I3C_CCC_ENTAS3 (   broadcast)    I3C_CCC_ENTAS(3, broadcast)

#include <include/zephyr/drivers/i3c/ccc.h>

Enter Activity State 3.

Parameters
broadcastTrue if broadcast, false if direct.

◆ I3C_CCC_ENTDAA

#define I3C_CCC_ENTDAA   0x07U

#include <include/zephyr/drivers/i3c/ccc.h>

Enter Dynamic Address Assignment (Broadcast)

◆ I3C_CCC_ENTHDR

#define I3C_CCC_ENTHDR (   x)    (0x20U + (x))

#include <include/zephyr/drivers/i3c/ccc.h>

Enter HDR Mode (HDR-DDR) (Broadcast)

◆ I3C_CCC_ENTHDR0

#define I3C_CCC_ENTHDR0   0x20U

#include <include/zephyr/drivers/i3c/ccc.h>

Enter HDR Mode 0 (HDR-DDR) (Broadcast)

◆ I3C_CCC_ENTHDR1

#define I3C_CCC_ENTHDR1   0x21U

#include <include/zephyr/drivers/i3c/ccc.h>

Enter HDR Mode 1 (HDR-TSP) (Broadcast)

◆ I3C_CCC_ENTHDR2

#define I3C_CCC_ENTHDR2   0x22U

#include <include/zephyr/drivers/i3c/ccc.h>

Enter HDR Mode 2 (HDR-TSL) (Broadcast)

◆ I3C_CCC_ENTHDR3

#define I3C_CCC_ENTHDR3   0x23U

#include <include/zephyr/drivers/i3c/ccc.h>

Enter HDR Mode 3 (HDR-BT) (Broadcast)

◆ I3C_CCC_ENTHDR4

#define I3C_CCC_ENTHDR4   0x24U

#include <include/zephyr/drivers/i3c/ccc.h>

Enter HDR Mode 4 (Broadcast)

◆ I3C_CCC_ENTHDR5

#define I3C_CCC_ENTHDR5   0x25U

#include <include/zephyr/drivers/i3c/ccc.h>

Enter HDR Mode 5 (Broadcast)

◆ I3C_CCC_ENTHDR6

#define I3C_CCC_ENTHDR6   0x26U

#include <include/zephyr/drivers/i3c/ccc.h>

Enter HDR Mode 6 (Broadcast)

◆ I3C_CCC_ENTHDR7

#define I3C_CCC_ENTHDR7   0x27U

#include <include/zephyr/drivers/i3c/ccc.h>

Enter HDR Mode 7 (Broadcast)

◆ I3C_CCC_ENTTM

#define I3C_CCC_ENTTM   0x0BU

#include <include/zephyr/drivers/i3c/ccc.h>

Enter Test Mode (Broadcast)

◆ I3C_CCC_EVT_ALL

#define I3C_CCC_EVT_ALL    (I3C_CCC_EVT_INTR | I3C_CCC_EVT_CR | I3C_CCC_EVT_HJ)

#include <include/zephyr/drivers/i3c/ccc.h>

Bitmask for all events.

◆ I3C_CCC_EVT_CR

#define I3C_CCC_EVT_CR   BIT(1)

#include <include/zephyr/drivers/i3c/ccc.h>

Events - Controller Role Requests.

◆ I3C_CCC_EVT_HJ

#define I3C_CCC_EVT_HJ   BIT(3)

#include <include/zephyr/drivers/i3c/ccc.h>

Events - Hot-Join Event.

◆ I3C_CCC_EVT_INTR

#define I3C_CCC_EVT_INTR   BIT(0)

#include <include/zephyr/drivers/i3c/ccc.h>

Events - Target Interrupt Requests.

◆ I3C_CCC_GETACCCR

#define I3C_CCC_GETACCCR   0x91U

#include <include/zephyr/drivers/i3c/ccc.h>

Get Accept Controller Role (Direct)

◆ I3C_CCC_GETBCR

#define I3C_CCC_GETBCR   0x8EU

#include <include/zephyr/drivers/i3c/ccc.h>

Get Bus Characteristics Register (Direct)

◆ I3C_CCC_GETCAPS

#define I3C_CCC_GETCAPS   0x95U

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities (Direct)

◆ I3C_CCC_GETCAPS1_HDR_BT

#define I3C_CCC_GETCAPS1_HDR_BT   BIT(3)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR-BT mode bit.

◆ I3C_CCC_GETCAPS1_HDR_DDR

#define I3C_CCC_GETCAPS1_HDR_DDR   BIT(0)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR-DDR mode bit.

◆ I3C_CCC_GETCAPS1_HDR_MODE

#define I3C_CCC_GETCAPS1_HDR_MODE (   x)    BIT(x)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 1 (GETCAPS) - HDR Mode.

Get the bit corresponding to HDR mode.

Parameters
xHDR mode

◆ I3C_CCC_GETCAPS1_HDR_MODE0

#define I3C_CCC_GETCAPS1_HDR_MODE0   BIT(0)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR Mode 0.

◆ I3C_CCC_GETCAPS1_HDR_MODE1

#define I3C_CCC_GETCAPS1_HDR_MODE1   BIT(1)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR Mode 1.

◆ I3C_CCC_GETCAPS1_HDR_MODE2

#define I3C_CCC_GETCAPS1_HDR_MODE2   BIT(2)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR Mode 2.

◆ I3C_CCC_GETCAPS1_HDR_MODE3

#define I3C_CCC_GETCAPS1_HDR_MODE3   BIT(3)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR Mode 3.

◆ I3C_CCC_GETCAPS1_HDR_MODE4

#define I3C_CCC_GETCAPS1_HDR_MODE4   BIT(4)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR Mode 4.

◆ I3C_CCC_GETCAPS1_HDR_MODE5

#define I3C_CCC_GETCAPS1_HDR_MODE5   BIT(5)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR Mode 5.

◆ I3C_CCC_GETCAPS1_HDR_MODE6

#define I3C_CCC_GETCAPS1_HDR_MODE6   BIT(6)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR Mode 6.

◆ I3C_CCC_GETCAPS1_HDR_MODE7

#define I3C_CCC_GETCAPS1_HDR_MODE7   BIT(7)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR Mode 7.

◆ I3C_CCC_GETCAPS1_HDR_TSL

#define I3C_CCC_GETCAPS1_HDR_TSL   BIT(2)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR-TSL mode bit.

◆ I3C_CCC_GETCAPS1_HDR_TSP

#define I3C_CCC_GETCAPS1_HDR_TSP   BIT(1)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 1 (GETCAPS) Format 1 - HDR-TSP mode bit.

◆ I3C_CCC_GETCAPS2_GRPADDR_CAP

#define I3C_CCC_GETCAPS2_GRPADDR_CAP (   getcaps2)     FIELD_GET(I3C_CCC_GETCAPS2_GRPADDR_CAP_MASK, (getcaps2))

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 2 (GETCAPS) Format 1 - Group Address Capabilities.

Obtain Group Address Capabilities value from GETCAPS Format 1 value obtained via GETCAPS.

Parameters
getcaps2GETCAPS2 value.

◆ I3C_CCC_GETCAPS2_GRPADDR_CAP_MASK

#define I3C_CCC_GETCAPS2_GRPADDR_CAP_MASK   GENMASK(5U, 4U)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 2 (GETCAPS) Format 1 - Group Address Capabilities bitmask.

◆ I3C_CCC_GETCAPS2_HDRDDR_ABORT_CRC

#define I3C_CCC_GETCAPS2_HDRDDR_ABORT_CRC   BIT(7)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 2 (GETCAPS) Format 1 - HDR-DDR Abort CRC bit.

◆ I3C_CCC_GETCAPS2_HDRDDR_WRITE_ABORT

#define I3C_CCC_GETCAPS2_HDRDDR_WRITE_ABORT   BIT(6)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 2 (GETCAPS) Format 1 - HDR-DDR Write Abort bit.

◆ I3C_CCC_GETCAPS2_SPEC_VER

#define I3C_CCC_GETCAPS2_SPEC_VER (   getcaps2)     FIELD_GET(I3C_CCC_GETCAPS2_SPEC_VER_MASK, (getcaps2))

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 2 (GETCAPS) Format 1 - I3C 1.x Specification Version.

Obtain I3C 1.x Specification Version value from GETCAPS Format 1 value obtained via GETCAPS.

Parameters
getcaps2GETCAPS2 value.

◆ I3C_CCC_GETCAPS2_SPEC_VER_MASK

#define I3C_CCC_GETCAPS2_SPEC_VER_MASK   GENMASK(3U, 0U)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 2 (GETCAPS) Format 1 - I3C 1.x Specification Version bitmask.

◆ I3C_CCC_GETCAPS3_D2DXFER_IBI_CAPABLE

#define I3C_CCC_GETCAPS3_D2DXFER_IBI_CAPABLE   BIT(2)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 3 (GETCAPS) Format 1 - Device to Device Transfer (D2DXFER) IBI Capable bit.

◆ I3C_CCC_GETCAPS3_D2DXFER_SUPPORT

#define I3C_CCC_GETCAPS3_D2DXFER_SUPPORT   BIT(1)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 3 (GETCAPS) Format 1 - Device to Device Transfer (D2DXFER) Support bit.

◆ I3C_CCC_GETCAPS3_GETCAPS_DEFINING_BYTE_SUPPORT

#define I3C_CCC_GETCAPS3_GETCAPS_DEFINING_BYTE_SUPPORT   BIT(3)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 3 (GETCAPS) Format 1 - Defining Byte Support in GETCAPS bit.

◆ I3C_CCC_GETCAPS3_GETSTATUS_DEFINING_BYTE_SUPPORT

#define I3C_CCC_GETCAPS3_GETSTATUS_DEFINING_BYTE_SUPPORT   BIT(4)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 3 (GETCAPS) Format 1 - Defining Byte Support in GETSTATUS bit.

◆ I3C_CCC_GETCAPS3_HDRBT_CRC32_SUPPORT

#define I3C_CCC_GETCAPS3_HDRBT_CRC32_SUPPORT   BIT(5)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 3 (GETCAPS) Format 1 - HDR-BT CRC-32 Support bit.

◆ I3C_CCC_GETCAPS3_IBI_MDR_PENDING_READ_NOTIFICATION

#define I3C_CCC_GETCAPS3_IBI_MDR_PENDING_READ_NOTIFICATION   BIT(6)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 3 (GETCAPS) Format 1 - IBI MDB Support for Pending Read Notification bit.

◆ I3C_CCC_GETCAPS3_MLANE_SUPPORT

#define I3C_CCC_GETCAPS3_MLANE_SUPPORT   BIT(0)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Optional Feature Capabilities Byte 3 (GETCAPS) Format 1 - Multi-Lane Data Transfer Support bit.

◆ I3C_CCC_GETCAPS_CRCAPS1_GRP_MANAGEMENT_SUPPORT

#define I3C_CCC_GETCAPS_CRCAPS1_GRP_MANAGEMENT_SUPPORT   BIT(1)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Controller Handoff Capabilities Byte 1 (GETCAPS) Format 2 - Group Management Support.

◆ I3C_CCC_GETCAPS_CRCAPS1_HJ_SUPPORT

#define I3C_CCC_GETCAPS_CRCAPS1_HJ_SUPPORT   BIT(0)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Controller Handoff Capabilities Byte 1 (GETCAPS) Format 2 - Hot-Join Support.

◆ I3C_CCC_GETCAPS_CRCAPS1_ML_SUPPORT

#define I3C_CCC_GETCAPS_CRCAPS1_ML_SUPPORT   BIT(2)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Controller Handoff Capabilities Byte 1 (GETCAPS) Format 2 - Multi-Lane Support.

◆ I3C_CCC_GETCAPS_CRCAPS2_CONTROLLER_PASSBACK

#define I3C_CCC_GETCAPS_CRCAPS2_CONTROLLER_PASSBACK   BIT(1)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Controller Handoff Capabilities Byte 2 (GETCAPS) Format 2 - Controller Pass-Back.

◆ I3C_CCC_GETCAPS_CRCAPS2_DEEP_SLEEP_CAPABLE

#define I3C_CCC_GETCAPS_CRCAPS2_DEEP_SLEEP_CAPABLE   BIT(2)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Controller Handoff Capabilities Byte 2 (GETCAPS) Format 2 - Deep Sleep Capable.

◆ I3C_CCC_GETCAPS_CRCAPS2_DELAYED_CONTROLLER_HANDOFF

#define I3C_CCC_GETCAPS_CRCAPS2_DELAYED_CONTROLLER_HANDOFF   BIT(3)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Controller Handoff Capabilities Byte 2 (GETCAPS) Format 2 - Deep Sleep Capable.

◆ I3C_CCC_GETCAPS_CRCAPS2_IBI_TIR_SUPPORT

#define I3C_CCC_GETCAPS_CRCAPS2_IBI_TIR_SUPPORT   BIT(0)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Controller Handoff Capabilities Byte 2 (GETCAPS) Format 2 - In-Band Interrupt Support.

◆ I3C_CCC_GETCAPS_TESTPAT

#define I3C_CCC_GETCAPS_TESTPAT   0xA55AA55A

#include <include/zephyr/drivers/i3c/ccc.h>

Get Fixed Test Pattern (GETCAPS) Format 2 - Fixed Test Pattern Word in Big Endian.

◆ I3C_CCC_GETCAPS_TESTPAT1

#define I3C_CCC_GETCAPS_TESTPAT1   0xA5

#include <include/zephyr/drivers/i3c/ccc.h>

Get Fixed Test Pattern (GETCAPS) Format 2 - Fixed Test Pattern Byte 1.

◆ I3C_CCC_GETCAPS_TESTPAT2

#define I3C_CCC_GETCAPS_TESTPAT2   0x5A

#include <include/zephyr/drivers/i3c/ccc.h>

Get Fixed Test Pattern (GETCAPS) Format 2 - Fixed Test Pattern Byte 2.

◆ I3C_CCC_GETCAPS_TESTPAT3

#define I3C_CCC_GETCAPS_TESTPAT3   0xA5

#include <include/zephyr/drivers/i3c/ccc.h>

Get Fixed Test Pattern (GETCAPS) Format 2 - Fixed Test Pattern Byte 3.

◆ I3C_CCC_GETCAPS_TESTPAT4

#define I3C_CCC_GETCAPS_TESTPAT4   0x5A

#include <include/zephyr/drivers/i3c/ccc.h>

Get Fixed Test Pattern (GETCAPS) Format 2 - Fixed Test Pattern Byte 4.

◆ I3C_CCC_GETCAPS_VTCAP1_SHARED_PERIPH_DETECT

#define I3C_CCC_GETCAPS_VTCAP1_SHARED_PERIPH_DETECT   BIT(5)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Virtual Target Capabilities Byte 1 (GETCAPS) Format 2 - Shared Peripheral Detect.

◆ I3C_CCC_GETCAPS_VTCAP1_SIDE_EFFECTS

#define I3C_CCC_GETCAPS_VTCAP1_SIDE_EFFECTS   BIT(4)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Virtual Target Capabilities Byte 1 (GETCAPS) Format 2 - Side Effects.

◆ I3C_CCC_GETCAPS_VTCAP1_VITRUAL_TARGET_TYPE

#define I3C_CCC_GETCAPS_VTCAP1_VITRUAL_TARGET_TYPE (   vtcap1)     FIELD_GET(I3C_CCC_GETCAPS_VTCAP1_VITRUAL_TARGET_TYPE_MASK, (vtcap1))

#include <include/zephyr/drivers/i3c/ccc.h>

Get Capabilities (GETCAPS) - VTCAP1 - Virtual Target Type.

Obtain Virtual Target Type value from VTCAP1 value obtained via GETCAPS format 2 VTCAP def byte.

Parameters
vtcap1VTCAP1 value.

◆ I3C_CCC_GETCAPS_VTCAP1_VITRUAL_TARGET_TYPE_MASK

#define I3C_CCC_GETCAPS_VTCAP1_VITRUAL_TARGET_TYPE_MASK   GENMASK(2U, 0U)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Capabilities (GETCAPS) - VTCAP1 - Virtual Target Type bitmask.

◆ I3C_CCC_GETCAPS_VTCAP2_ADDRESS_REMAPPING

#define I3C_CCC_GETCAPS_VTCAP2_ADDRESS_REMAPPING   BIT(2)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Virtual Target Capabilities Byte 2 (GETCAPS) Format 2 - Address Remapping.

◆ I3C_CCC_GETCAPS_VTCAP2_BUS_CONTEXT_AND_COND

#define I3C_CCC_GETCAPS_VTCAP2_BUS_CONTEXT_AND_COND (   vtcap2)     FIELD_GET(I3C_CCC_GETCAPS_VTCAP2_BUS_CONTEXT_AND_COND_MASK, (vtcap2))

#include <include/zephyr/drivers/i3c/ccc.h>

Get Capabilities (GETCAPS) - VTCAP2 - Bus Context and Condition.

Obtain Bus Context and Condition value from VTCAP2 value obtained via GETCAPS format 2 VTCAP def byte.

Parameters
vtcap2VTCAP2 value.

◆ I3C_CCC_GETCAPS_VTCAP2_BUS_CONTEXT_AND_COND_MASK

#define I3C_CCC_GETCAPS_VTCAP2_BUS_CONTEXT_AND_COND_MASK   GENMASK(4U, 3U)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Capabilities (GETCAPS) - VTCAP2 - Bus Context and Condition bitmask.

◆ I3C_CCC_GETCAPS_VTCAP2_INTERRUPT_REQUESTS

#define I3C_CCC_GETCAPS_VTCAP2_INTERRUPT_REQUESTS (   vtcap2)     FIELD_GET(I3C_CCC_GETCAPS_VTCAP2_INTERRUPT_REQUESTS_MASK, (vtcap2))

#include <include/zephyr/drivers/i3c/ccc.h>

Get Capabilities (GETCAPS) - VTCAP2 - Interrupt Requests.

Obtain Interrupt Requests value from VTCAP2 value obtained via GETCAPS format 2 VTCAP def byte.

Parameters
vtcap2VTCAP2 value.

◆ I3C_CCC_GETCAPS_VTCAP2_INTERRUPT_REQUESTS_MASK

#define I3C_CCC_GETCAPS_VTCAP2_INTERRUPT_REQUESTS_MASK   GENMASK(1U, 0U)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Capabilities (GETCAPS) - VTCAP2 - Interrupt Requests bitmask.

◆ I3C_CCC_GETDCR

#define I3C_CCC_GETDCR   0x8FU

#include <include/zephyr/drivers/i3c/ccc.h>

Get Device Characteristics Register (Direct)

◆ I3C_CCC_GETMRL

#define I3C_CCC_GETMRL   0x8CU

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Read Length (Direct)

◆ I3C_CCC_GETMWL

#define I3C_CCC_GETMWL   0x8BU

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Write Length (Direct)

◆ I3C_CCC_GETMXDS

#define I3C_CCC_GETMXDS   0x94U

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (Direct)

◆ I3C_CCC_GETMXDS_CRDHLY1_CTRL_HANDOFF_ACT_STATE

#define I3C_CCC_GETMXDS_CRDHLY1_CTRL_HANDOFF_ACT_STATE (   crhdly1)     FIELD_GET(I3C_CCC_GETMXDS_CRDHLY1_CTRL_HANDOFF_ACT_STATE_MASK, (chrdly1))

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - CRDHLY1 - Controller Handoff Activity State.

Obtain Controller Handoff Activity State value from GETMXDS value obtained via GETMXDS.

Parameters
crhdly1GETMXDS value.

◆ I3C_CCC_GETMXDS_CRDHLY1_CTRL_HANDOFF_ACT_STATE_MASK

#define I3C_CCC_GETMXDS_CRDHLY1_CTRL_HANDOFF_ACT_STATE_MASK   GENMASK(1U, 0U)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - CRDHLY1 - Controller Handoff Activity State bitmask.

◆ I3C_CCC_GETMXDS_CRDHLY1_SET_BUS_ACT_STATE

#define I3C_CCC_GETMXDS_CRDHLY1_SET_BUS_ACT_STATE   BIT(2)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - CRDHLY1 - Set Bus Activity State bit shift value.

◆ I3C_CCC_GETMXDS_MAX_SDR_FSCL_2MHZ

#define I3C_CCC_GETMXDS_MAX_SDR_FSCL_2MHZ   4

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - 2MHz Max Sustained Data Rate.

◆ I3C_CCC_GETMXDS_MAX_SDR_FSCL_4MHZ

#define I3C_CCC_GETMXDS_MAX_SDR_FSCL_4MHZ   3

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - 4MHz Max Sustained Data Rate.

◆ I3C_CCC_GETMXDS_MAX_SDR_FSCL_6MHZ

#define I3C_CCC_GETMXDS_MAX_SDR_FSCL_6MHZ   2

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - 6MHz Max Sustained Data Rate.

◆ I3C_CCC_GETMXDS_MAX_SDR_FSCL_8MHZ

#define I3C_CCC_GETMXDS_MAX_SDR_FSCL_8MHZ   1

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - 8MHz Max Sustained Data Rate.

◆ I3C_CCC_GETMXDS_MAX_SDR_FSCL_MAX

#define I3C_CCC_GETMXDS_MAX_SDR_FSCL_MAX   0

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - Default Max Sustained Data Rate.

◆ I3C_CCC_GETMXDS_MAXRD_MAX_SDR_FSCL

#define I3C_CCC_GETMXDS_MAXRD_MAX_SDR_FSCL (   maxrd)     FIELD_GET(I3C_CCC_GETMXDS_MAXRD_MAX_SDR_FSCL_MASK, (maxrd))

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - maxRd - Max Sustained Data Rate.

Obtain Max Sustained Data Rate value from GETMXDS maxRd value obtained via GETMXDS.

Parameters
maxrdGETMXDS maxRd value.

◆ I3C_CCC_GETMXDS_MAXRD_MAX_SDR_FSCL_MASK

#define I3C_CCC_GETMXDS_MAXRD_MAX_SDR_FSCL_MASK   GENMASK(2U, 0U)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - maxRd - Max Sustained Data Rate bitmask.

◆ I3C_CCC_GETMXDS_MAXRD_TSCO

#define I3C_CCC_GETMXDS_MAXRD_TSCO (   maxrd)     FIELD_GET(I3C_CCC_GETMXDS_MAXRD_TSCO_MASK, (maxrd))

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - maxRd - Clock to Data Turnaround.

Obtain Clock to Data Turnaround value from GETMXDS maxRd value obtained via GETMXDS.

Parameters
maxrdGETMXDS maxRd value.

◆ I3C_CCC_GETMXDS_MAXRD_TSCO_MASK

#define I3C_CCC_GETMXDS_MAXRD_TSCO_MASK   GENMASK(5U, 3U)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - maxRd - Clock to Data Turnaround bitmask.

◆ I3C_CCC_GETMXDS_MAXRD_W2R_PERMITS_STOP_BETWEEN

#define I3C_CCC_GETMXDS_MAXRD_W2R_PERMITS_STOP_BETWEEN   BIT(6)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - maxRd - Write-to-Read Permits Stop Between.

◆ I3C_CCC_GETMXDS_MAXWR_DEFINING_BYTE_SUPPORT

#define I3C_CCC_GETMXDS_MAXWR_DEFINING_BYTE_SUPPORT   BIT(3)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - maxWr - Optional Defining Byte Support.

◆ I3C_CCC_GETMXDS_MAXWR_MAX_SDR_FSCL

#define I3C_CCC_GETMXDS_MAXWR_MAX_SDR_FSCL (   maxwr)     FIELD_GET(I3C_CCC_GETMXDS_MAXWR_MAX_SDR_FSCL_MASK, (maxwr))

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - maxWr - Max Sustained Data Rate.

Obtain Max Sustained Data Rate value from GETMXDS maxWr value obtained via GETMXDS.

Parameters
maxwrGETMXDS maxWr value.

◆ I3C_CCC_GETMXDS_MAXWR_MAX_SDR_FSCL_MASK

#define I3C_CCC_GETMXDS_MAXWR_MAX_SDR_FSCL_MASK   GENMASK(2U, 0U)

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - Max Sustained Data Rate bitmask.

◆ I3C_CCC_GETMXDS_TSCO_10NS

#define I3C_CCC_GETMXDS_TSCO_10NS   2

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - Clock to Data Turnaround <= 10ns.

◆ I3C_CCC_GETMXDS_TSCO_11NS

#define I3C_CCC_GETMXDS_TSCO_11NS   3

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - Clock to Data Turnaround <= 11ns.

◆ I3C_CCC_GETMXDS_TSCO_12NS

#define I3C_CCC_GETMXDS_TSCO_12NS   4

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - Clock to Data Turnaround <= 12ns.

◆ I3C_CCC_GETMXDS_TSCO_8NS

#define I3C_CCC_GETMXDS_TSCO_8NS   0

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - Clock to Data Turnaround <= 8ns.

◆ I3C_CCC_GETMXDS_TSCO_9NS

#define I3C_CCC_GETMXDS_TSCO_9NS   1

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - Clock to Data Turnaround <= 9ns.

◆ I3C_CCC_GETMXDS_TSCO_GT_12NS

#define I3C_CCC_GETMXDS_TSCO_GT_12NS   7

#include <include/zephyr/drivers/i3c/ccc.h>

Get Max Data Speed (GETMXDS) - Clock to Data Turnaround > 12ns.

◆ I3C_CCC_GETPID

#define I3C_CCC_GETPID   0x8DU

#include <include/zephyr/drivers/i3c/ccc.h>

Get Provisioned ID (Direct)

◆ I3C_CCC_GETSTATUS

#define I3C_CCC_GETSTATUS   0x90U

#include <include/zephyr/drivers/i3c/ccc.h>

Get Device Status (Direct)

◆ I3C_CCC_GETSTATUS_ACTIVITY_MODE

#define I3C_CCC_GETSTATUS_ACTIVITY_MODE (   status)     FIELD_GET(I3C_CCC_GETSTATUS_ACTIVITY_MODE_MASK, (status))

#include <include/zephyr/drivers/i3c/ccc.h>

GETSTATUS Format 1 - Activity Mode.

Obtain Activity Mode from GETSTATUS Format 1 value obtained via GETSTATUS.

Parameters
statusGETSTATUS Format 1 value

◆ I3C_CCC_GETSTATUS_ACTIVITY_MODE_MASK

#define I3C_CCC_GETSTATUS_ACTIVITY_MODE_MASK   GENMASK(7U, 6U)

#include <include/zephyr/drivers/i3c/ccc.h>

GETSTATUS Format 1 - Activity Mode bitmask.

◆ I3C_CCC_GETSTATUS_NUM_INT

#define I3C_CCC_GETSTATUS_NUM_INT (   status)     FIELD_GET(I3C_CCC_GETSTATUS_NUM_INT_MASK, (status))

#include <include/zephyr/drivers/i3c/ccc.h>

GETSTATUS Format 1 - Number of Pending Interrupts.

Obtain Number of Pending Interrupts from GETSTATUS Format 1 value obtained via GETSTATUS.

Parameters
statusGETSTATUS Format 1 value

◆ I3C_CCC_GETSTATUS_NUM_INT_MASK

#define I3C_CCC_GETSTATUS_NUM_INT_MASK   GENMASK(3U, 0U)

#include <include/zephyr/drivers/i3c/ccc.h>

GETSTATUS Format 1 - Number of Pending Interrupts bitmask.

◆ I3C_CCC_GETSTATUS_PRECR_DEEP_SLEEP_DETECTED

#define I3C_CCC_GETSTATUS_PRECR_DEEP_SLEEP_DETECTED   BIT(0)

#include <include/zephyr/drivers/i3c/ccc.h>

GETSTATUS Format 2 - PERCR - Deep Sleep Detected bit.

◆ I3C_CCC_GETSTATUS_PRECR_HANDOFF_DELAY_NACK

#define I3C_CCC_GETSTATUS_PRECR_HANDOFF_DELAY_NACK   BIT(1)

#include <include/zephyr/drivers/i3c/ccc.h>

GETSTATUS Format 2 - PERCR - Handoff Delay NACK.

◆ I3C_CCC_GETSTATUS_PROTOCOL_ERR

#define I3C_CCC_GETSTATUS_PROTOCOL_ERR   BIT(5)

#include <include/zephyr/drivers/i3c/ccc.h>

GETSTATUS Format 1 - Protocol Error bit.

◆ I3C_CCC_GETXTIME

#define I3C_CCC_GETXTIME   0x99U

#include <include/zephyr/drivers/i3c/ccc.h>

Get Exchange Timing Information (Direct)

◆ I3C_CCC_MLANE

#define I3C_CCC_MLANE (   broadcast)    ((broadcast) ? 0x2DU : 0x9DU)

#include <include/zephyr/drivers/i3c/ccc.h>

Multi-Lane Data Transfer Control (Broadcast)

◆ I3C_CCC_RSTACT

#define I3C_CCC_RSTACT (   broadcast)    ((broadcast) ? 0x2AU : 0x9AU)

#include <include/zephyr/drivers/i3c/ccc.h>

Target Reset Action.

Parameters
broadcastTrue if broadcast, false if direct.

◆ I3C_CCC_RSTDAA

#define I3C_CCC_RSTDAA   0x06U

#include <include/zephyr/drivers/i3c/ccc.h>

Reset Dynamic Address Assignment (Broadcast)

◆ I3C_CCC_RSTGRPA

#define I3C_CCC_RSTGRPA (   broadcast)    ((broadcast) ? 0x2CU : 0x9CU)

#include <include/zephyr/drivers/i3c/ccc.h>

Reset Group Address.

Parameters
broadcastTrue if broadcast, false if direct.

◆ I3C_CCC_SETAASA

#define I3C_CCC_SETAASA   0x29U

#include <include/zephyr/drivers/i3c/ccc.h>

Set All Addresses to Static Addresses (Broadcast)

◆ I3C_CCC_SETBRGTGT

#define I3C_CCC_SETBRGTGT   0x93U

#include <include/zephyr/drivers/i3c/ccc.h>

Set Bridge Targets (Direct)

◆ I3C_CCC_SETBUSCON

#define I3C_CCC_SETBUSCON   0x0CU

#include <include/zephyr/drivers/i3c/ccc.h>

Set Bus Context (Broadcast)

◆ I3C_CCC_SETBUSCON_I3C_SPEC_I3C_BASIC_SPEC

#define I3C_CCC_SETBUSCON_I3C_SPEC_I3C_BASIC_SPEC   BIT(4)

#include <include/zephyr/drivers/i3c/ccc.h>

MIPI I3C Basic Specification.

◆ I3C_CCC_SETBUSCON_I3C_SPEC_I3C_SPEC

#define I3C_CCC_SETBUSCON_I3C_SPEC_I3C_SPEC   0

#include <include/zephyr/drivers/i3c/ccc.h>

MIPI I3C Specification.

◆ I3C_CCC_SETBUSCON_I3C_SPEC_I3C_SPEC_EDITORIAL_1_Y_0

#define I3C_CCC_SETBUSCON_I3C_SPEC_I3C_SPEC_EDITORIAL_1_Y_0   0

#include <include/zephyr/drivers/i3c/ccc.h>

Version 1.Y.0.

◆ I3C_CCC_SETBUSCON_I3C_SPEC_I3C_SPEC_EDITORIAL_1_Y_1

#define I3C_CCC_SETBUSCON_I3C_SPEC_I3C_SPEC_EDITORIAL_1_Y_1   BIT(5)

#include <include/zephyr/drivers/i3c/ccc.h>

Version 1.Y.1 or greater.

◆ I3C_CCC_SETBUSCON_I3C_SPEC_MINOR_VER

#define I3C_CCC_SETBUSCON_I3C_SPEC_MINOR_VER (   y)     FIELD_PREP(I3C_CCC_SETBUSCON_I3C_SPEC_MINOR_VER_MASK, (y))

#include <include/zephyr/drivers/i3c/ccc.h>

I3C Specification Minor Version (v1.Y)

Set the context bits for SETBUSCON

Parameters
yI3C Specification Minor Version Number

◆ I3C_CCC_SETBUSCON_I3C_SPEC_MINOR_VER_MASK

#define I3C_CCC_SETBUSCON_I3C_SPEC_MINOR_VER_MASK   GENMASK(3U, 0U)

#include <include/zephyr/drivers/i3c/ccc.h>

I3C Specification Minor Version shift mask.

◆ I3C_CCC_SETBUSCON_OTHER_STANDARDS_ETSI

#define I3C_CCC_SETBUSCON_OTHER_STANDARDS_ETSI   130

#include <include/zephyr/drivers/i3c/ccc.h>

ETSI.

ETSI for Secure Smart Platform Devices used for mobile networks authentication and other ETSI security functions in mobile ecosystem

◆ I3C_CCC_SETBUSCON_OTHER_STANDARDS_JEDEC_SIDEBAND

#define I3C_CCC_SETBUSCON_OTHER_STANDARDS_JEDEC_SIDEBAND   128

#include <include/zephyr/drivers/i3c/ccc.h>

JEDEC Sideband.

JEDEC SideBand Bus device, compliant to JESD403 Specification v1.0 or later.

◆ I3C_CCC_SETBUSCON_OTHER_STANDARDS_MCTP

#define I3C_CCC_SETBUSCON_OTHER_STANDARDS_MCTP   129

#include <include/zephyr/drivers/i3c/ccc.h>

MCTP.

MCTP for system manageability (conforming to the content protocol defined in the MCTP I3C Transport Binding Specification, released by DMTF, version 1.0 or newer)

◆ I3C_CCC_SETDASA

#define I3C_CCC_SETDASA   0x87U

#include <include/zephyr/drivers/i3c/ccc.h>

Set Dynamic Address from Static Address (Direct)

◆ I3C_CCC_SETGRPA

#define I3C_CCC_SETGRPA   0x9BU

#include <include/zephyr/drivers/i3c/ccc.h>

Set Group Address (Direct)

◆ I3C_CCC_SETMRL

#define I3C_CCC_SETMRL (   broadcast)    ((broadcast) ? 0x0AU : 0x8AU)

#include <include/zephyr/drivers/i3c/ccc.h>

Set Max Read Length (Broadcast or Direct)

Parameters
broadcastTrue if broadcast, false if direct.

◆ I3C_CCC_SETMWL

#define I3C_CCC_SETMWL (   broadcast)    ((broadcast) ? 0x09U : 0x89U)

#include <include/zephyr/drivers/i3c/ccc.h>

Set Max Write Length (Broadcast or Direct)

Parameters
broadcastTrue if broadcast, false if direct.

◆ I3C_CCC_SETNEWDA

#define I3C_CCC_SETNEWDA   0x88U

#include <include/zephyr/drivers/i3c/ccc.h>

Set New Dynamic Address (Direct)

◆ I3C_CCC_SETROUTE

#define I3C_CCC_SETROUTE   0x96U

#include <include/zephyr/drivers/i3c/ccc.h>

Set Route (Direct)

◆ I3C_CCC_SETXTIME

#define I3C_CCC_SETXTIME (   broadcast)    ((broadcast) ? 0x28U : 0x98U)

#include <include/zephyr/drivers/i3c/ccc.h>

Exchange Timing Information (Broadcast or Direct)

Parameters
broadcastTrue if broadcast, false if direct.

◆ I3C_CCC_VENDOR

#define I3C_CCC_VENDOR (   broadcast,
  id 
)    ((id) + ((broadcast) ? 0x61U : 0xE0U))

#include <include/zephyr/drivers/i3c/ccc.h>

Vendor/Standard Extension.

Parameters
broadcastTrue if broadcast, false if direct.
idExtension ID.

Enumeration Type Documentation

◆ i3c_ccc_enttm_defbyte

#include <include/zephyr/drivers/i3c/ccc.h>

Defining byte values for ENTTM.

Enumerator
ENTTM_EXIT_TEST_MODE 

Remove all I3C Devices from Test Mode.

ENTTM_VENDOR_TEST_MODE 

Indicates that I3C Devices shall return a random 32-bit value in the PID during the Dynamic Address Assignment procedure.

◆ i3c_ccc_getcaps_defbyte

#include <include/zephyr/drivers/i3c/ccc.h>

Enum for I3C Get Capabilities (GETCAPS) Format 2 Defining Byte Values.

Enumerator
GETCAPS_FORMAT_2_TGTCAPS 

Standard Target capabilities and features.

GETCAPS_FORMAT_2_TESTPAT 

Fixed 32b test pattern.

GETCAPS_FORMAT_2_CRCAPS 

Controller handoff capabilities and features.

GETCAPS_FORMAT_2_VTCAPS 

Virtual Target capabilities and features.

GETCAPS_FORMAT_2_DBGCAPS 

Debug-capable Device capabilities and features.

GETCAPS_FORMAT_2_INVALID 

Invalid defining byte.

◆ i3c_ccc_getcaps_fmt

#include <include/zephyr/drivers/i3c/ccc.h>

Indicate which format of GETCAPS to use.

Enumerator
GETCAPS_FORMAT_1 

GETCAPS Format 1.

GETCAPS_FORMAT_2 

GETCAPS Format 2.

◆ i3c_ccc_getmxds_defbyte

#include <include/zephyr/drivers/i3c/ccc.h>

Enum for I3C Get Max Data Speed (GETMXDS) Format 3 Defining Byte Values.

Enumerator
GETMXDS_FORMAT_3_WRRDTURN 

Standard Target Write/Read speed parameters, and optional Maximum Read Turnaround Time.

GETMXDS_FORMAT_3_CRHDLY 

Delay parameters for a Controller-capable Device, and it's expected Activity State during a Controller Handoff.

GETMXDS_FORMAT_3_INVALID 

Invalid defining byte.

◆ i3c_ccc_getmxds_fmt

#include <include/zephyr/drivers/i3c/ccc.h>

Indicate which format of getmxds to use.

Enumerator
GETMXDS_FORMAT_1 

GETMXDS Format 1.

GETMXDS_FORMAT_2 

GETMXDS Format 2.

GETMXDS_FORMAT_3 

GETMXDS Format 3.

◆ i3c_ccc_getstatus_defbyte

#include <include/zephyr/drivers/i3c/ccc.h>

Defining byte values for GETSTATUS Format 2.

Enumerator
GETSTATUS_FORMAT_2_TGTSTAT 

Target status.

GETSTATUS_FORMAT_2_PRECR 

PRECR - Alternate status format describing Controller-capable device.

GETSTATUS_FORMAT_2_INVALID 

Invalid defining byte.

◆ i3c_ccc_getstatus_fmt

#include <include/zephyr/drivers/i3c/ccc.h>

Indicate which format of GETSTATUS to use.

Enumerator
GETSTATUS_FORMAT_1 

GETSTATUS Format 1.

GETSTATUS_FORMAT_2 

GETSTATUS Format 2.

◆ i3c_ccc_rstact_defining_byte

#include <include/zephyr/drivers/i3c/ccc.h>

Enum for I3C Reset Action (RSTACT) Defining Byte Values.

Enumerator
I3C_CCC_RSTACT_NO_RESET 

No Reset on Target Reset Pattern.

I3C_CCC_RSTACT_PERIPHERAL_ONLY 

Reset the I3C Peripheral Only.

I3C_CCC_RSTACT_RESET_WHOLE_TARGET 

Reset the Whole Target.

I3C_CCC_RSTACT_DEBUG_NETWORK_ADAPTER 

Debug Network Adapter Reset.

I3C_CCC_RSTACT_VIRTUAL_TARGET_DETECT 

Virtual Target Detect.

I3C_CCC_RSTACT_RETURN_TIME_TO_RESET_PERIPHERAL 

Return Time to Reset Peripheral.

I3C_CCC_RSTACT_RETURN_TIME_TO_WHOLE_TARGET 

Return Time to Reset Whole Target.

I3C_CCC_RSTACT_RETURN_TIME_FOR_DEBUG_NETWORK_ADAPTER_RESET 

Return Time for Debug Network Adapter Reset.

I3C_CCC_RSTACT_RETURN_VIRTUAL_TARGET_INDICATION 

Return Virtual Target Indication.

Function Documentation

◆ i3c_ccc_do_deftgts_all()

int i3c_ccc_do_deftgts_all ( const struct device controller,
struct i3c_ccc_deftgts deftgts 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Broadcast DEFTGTS.

Parameters
[in]controllerPointer to the controller device driver instance.
[in]deftgtsPointer to the deftgts payload.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_entas()

int i3c_ccc_do_entas ( const struct i3c_device_desc target,
uint8_t  as 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Direct ENTAS to set the Activity State.

Helper function to broadcast Activity State Command on a single target.

Parameters
[in]targetPointer to the target device descriptor.
[in]asActivity State level
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_entas0()

static int i3c_ccc_do_entas0 ( const struct i3c_device_desc target)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Direct ENTAS0.

Helper function to do ENTAS0 setting the minimum bus activity level to 1us on a single target.

Parameters
[in]targetPointer to the target device descriptor.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_entas0_all()

static int i3c_ccc_do_entas0_all ( const struct device controller)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Broadcast ENTAS0.

Helper function to do ENTAS0 setting the minimum bus activity level to 1us

Parameters
[in]controllerPointer to the controller device driver instance.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_entas1()

static int i3c_ccc_do_entas1 ( const struct i3c_device_desc target)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Direct ENTAS1.

Helper function to do ENTAS1 setting the minimum bus activity level to 100us on a single target.

Parameters
[in]targetPointer to the target device descriptor.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_entas1_all()

static int i3c_ccc_do_entas1_all ( const struct device controller)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Broadcast ENTAS1.

Helper function to do ENTAS1 setting the minimum bus activity level to 100us

Parameters
[in]controllerPointer to the controller device driver instance.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_entas2()

static int i3c_ccc_do_entas2 ( const struct i3c_device_desc target)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Direct ENTAS2.

Helper function to do ENTAS2 setting the minimum bus activity level to 2ms on a single target.

Parameters
[in]targetPointer to the target device descriptor.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_entas2_all()

static int i3c_ccc_do_entas2_all ( const struct device controller)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Broadcast ENTAS2.

Helper function to do ENTAS2 setting the minimum bus activity level to 2ms

Parameters
[in]controllerPointer to the controller device driver instance.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_entas3()

static int i3c_ccc_do_entas3 ( const struct i3c_device_desc target)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Direct ENTAS3.

Helper function to do ENTAS3 setting the minimum bus activity level to 50ms on a single target.

Parameters
[in]targetPointer to the target device descriptor.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_entas3_all()

static int i3c_ccc_do_entas3_all ( const struct device controller)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Broadcast ENTAS3.

Helper function to do ENTAS3 setting the minimum bus activity level to 50ms

Parameters
[in]controllerPointer to the controller device driver instance.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_entas_all()

int i3c_ccc_do_entas_all ( const struct device controller,
uint8_t  as 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Broadcast ENTAS to set the Activity State.

Helper function to broadcast Activity State Command.

Parameters
[in]controllerPointer to the controller device driver instance.
[in]asActivity State level
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_enttm()

int i3c_ccc_do_enttm ( const struct device controller,
enum i3c_ccc_enttm_defbyte  defbyte 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Broadcast ENTTM.

Helper function to do ENTTM (Enter Test Mode) to all devices

Parameters
[in]controllerPointer to the controller device driver instance.
[in]defbyteDefining Byte for ENTTM.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_events_all_set()

int i3c_ccc_do_events_all_set ( const struct device controller,
bool  enable,
struct i3c_ccc_events events 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Broadcast ENEC/DISEC to enable/disable target events.

Helper function to broadcast Target Events Command to enable or disable target events (ENEC/DISEC).

Parameters
[in]controllerPointer to the controller device driver instance.
[in]enableENEC if true, DISEC if false.
[in]eventsPointer to the event struct.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_events_set()

int i3c_ccc_do_events_set ( struct i3c_device_desc target,
bool  enable,
struct i3c_ccc_events events 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Direct CCC ENEC/DISEC to enable/disable target events.

Helper function to send Target Events Command to enable or disable target events (ENEC/DISEC) on a single target.

Parameters
[in]targetPointer to the target device descriptor.
[in]enableENEC if true, DISEC if false.
[in]eventsPointer to the event struct.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getbcr()

int i3c_ccc_do_getbcr ( struct i3c_device_desc target,
struct i3c_ccc_getbcr bcr 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Get BCR from a target.

Helper function to get BCR (Bus Characteristic Register) from target device.

Parameters
[in]targetPointer to the target device descriptor.
[out]bcrPointer to the BCR payload structure.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getcaps()

int i3c_ccc_do_getcaps ( const struct i3c_device_desc target,
union i3c_ccc_getcaps caps,
enum i3c_ccc_getcaps_fmt  fmt,
enum i3c_ccc_getcaps_defbyte  defbyte 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Single target GETCAPS to Get Target Status.

Helper function to do GETCAPS (Get Capabilities) of one target.

This should only be supported if Advanced Capabilities Bit of the BCR is set

Parameters
[in]targetPointer to the target device descriptor.
[out]capsPointer to GETCAPS payload.
[in]fmtWhich GETCAPS to use.
[in]defbyteDefining Byte if using format 2.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getcaps_fmt1()

static int i3c_ccc_do_getcaps_fmt1 ( const struct i3c_device_desc target,
union i3c_ccc_getcaps caps 
)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Single target GETCAPS to Get Capabilities (Format 1).

Helper function to do GETCAPS (Get Capabilities, format 1) of one target.

Parameters
[in]targetPointer to the target device descriptor.
[out]capsPointer to GETCAPS payload.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getcaps_fmt2()

static int i3c_ccc_do_getcaps_fmt2 ( const struct i3c_device_desc target,
union i3c_ccc_getcaps caps,
enum i3c_ccc_getcaps_defbyte  defbyte 
)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Single target GETCAPS to Get Capabilities (Format 2).

Helper function to do GETCAPS (Get Capabilities, format 2) of one target.

Parameters
[in]targetPointer to the target device descriptor.
[out]capsPointer to GETCAPS payload.
[in]defbyteDefining Byte for GETCAPS format 2.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getdcr()

int i3c_ccc_do_getdcr ( struct i3c_device_desc target,
struct i3c_ccc_getdcr dcr 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Get DCR from a target.

Helper function to get DCR (Device Characteristic Register) from target device.

Parameters
[in]targetPointer to the target device descriptor.
[out]dcrPointer to the DCR payload structure.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getmrl()

int i3c_ccc_do_getmrl ( const struct i3c_device_desc target,
struct i3c_ccc_mrl mrl 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Single target GETMRL to Get Maximum Read Length.

Helper function to do GETMRL (Get Maximum Read Length) of one target.

Note this uses the BCR of the target to determine whether to send the optional IBI payload size.

Parameters
[in]targetPointer to the target device descriptor.
[out]mrlPointer to GETMRL payload.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getmwl()

int i3c_ccc_do_getmwl ( const struct i3c_device_desc target,
struct i3c_ccc_mwl mwl 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Single target GETMWL to Get Maximum Write Length.

Helper function to do GETMWL (Get Maximum Write Length) of one target.

Parameters
[in]targetPointer to the target device descriptor.
[out]mwlPointer to GETMWL payload.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getmxds()

int i3c_ccc_do_getmxds ( const struct i3c_device_desc target,
union i3c_ccc_getmxds caps,
enum i3c_ccc_getmxds_fmt  fmt,
enum i3c_ccc_getmxds_defbyte  defbyte 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Single target GETMXDS to Get Max Data Speed.

Helper function to do GETMXDS (Get Max Data Speed) of one target.

This should only be supported if Max Data Speed Limit Bit of the BCR is set

Parameters
[in]targetPointer to the target device descriptor.
[out]capsPointer to GETMXDS payload.
[in]fmtWhich GETMXDS to use.
[in]defbyteDefining Byte if using format 3.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getmxds_fmt1()

static int i3c_ccc_do_getmxds_fmt1 ( const struct i3c_device_desc target,
union i3c_ccc_getmxds caps 
)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Single target GETMXDS to Get Max Data Speed (Format 1).

Helper function to do GETMXDS (Get Max Data Speed, format 1) of one target.

Parameters
[in]targetPointer to the target device descriptor.
[out]capsPointer to GETMXDS payload.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getmxds_fmt2()

static int i3c_ccc_do_getmxds_fmt2 ( const struct i3c_device_desc target,
union i3c_ccc_getmxds caps 
)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Single target GETMXDS to Get Max Data Speed (Format 2).

Helper function to do GETMXDS (Get Max Data Speed, format 2) of one target.

Parameters
[in]targetPointer to the target device descriptor.
[out]capsPointer to GETMXDS payload.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getmxds_fmt3()

static int i3c_ccc_do_getmxds_fmt3 ( const struct i3c_device_desc target,
union i3c_ccc_getmxds caps,
enum i3c_ccc_getmxds_defbyte  defbyte 
)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Single target GETMXDS to Get Max Data Speed (Format 3).

Helper function to do GETMXDS (Get Max Data Speed, format 3) of one target.

Parameters
[in]targetPointer to the target device descriptor.
[out]capsPointer to GETMXDS payload.
[in]defbyteDefining Byte for GETMXDS format 3.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getpid()

int i3c_ccc_do_getpid ( struct i3c_device_desc target,
struct i3c_ccc_getpid pid 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Get PID from a target.

Helper function to get PID (Provisioned ID) from target device.

Parameters
[in]targetPointer to the target device descriptor.
[out]pidPointer to the PID payload structure.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getstatus()

int i3c_ccc_do_getstatus ( const struct i3c_device_desc target,
union i3c_ccc_getstatus status,
enum i3c_ccc_getstatus_fmt  fmt,
enum i3c_ccc_getstatus_defbyte  defbyte 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Single target GETSTATUS to Get Target Status.

Helper function to do GETSTATUS (Get Target Status) of one target.

Note this uses the BCR of the target to determine whether to send the optional IBI payload size.

Parameters
[in]targetPointer to the target device descriptor.
[out]statusPointer to GETSTATUS payload.
[in]fmtWhich GETSTATUS to use.
[in]defbyteDefining Byte if using format 2.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getstatus_fmt1()

static int i3c_ccc_do_getstatus_fmt1 ( const struct i3c_device_desc target,
union i3c_ccc_getstatus status 
)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Single target GETSTATUS to Get Target Status (Format 1).

Helper function to do GETSTATUS (Get Target Status, format 1) of one target.

Parameters
[in]targetPointer to the target device descriptor.
[out]statusPointer to GETSTATUS payload.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getstatus_fmt2()

static int i3c_ccc_do_getstatus_fmt2 ( const struct i3c_device_desc target,
union i3c_ccc_getstatus status,
enum i3c_ccc_getstatus_defbyte  defbyte 
)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Single target GETSTATUS to Get Target Status (Format 2).

Helper function to do GETSTATUS (Get Target Status, format 2) of one target.

Parameters
[in]targetPointer to the target device descriptor.
[out]statusPointer to GETSTATUS payload.
[in]defbyteDefining Byte for GETSTATUS format 2.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getvendor()

int i3c_ccc_do_getvendor ( const struct i3c_device_desc target,
uint8_t  id,
uint8_t payload,
size_t  len,
size_t num_xfer 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Single target to Get Vendor / Standard Extension CCC.

Helper function to get Vendor / Standard Extension CCC of one target.

Parameters
[in]targetPointer to the target device descriptor.
[in]idVendor CCC ID.
[out]payloadPointer to payload.
[in]lenMaximum Expected Length of the payload
[out]num_xferLength of the received payload
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_getvendor_defbyte()

int i3c_ccc_do_getvendor_defbyte ( const struct i3c_device_desc target,
uint8_t  id,
uint8_t  defbyte,
uint8_t payload,
size_t  len,
size_t num_xfer 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Single target to Get Vendor / Standard Extension CCC with a defining byte.

Helper function to get Vendor / Standard Extension CCC of one target.

Parameters
[in]targetPointer to the target device descriptor.
[in]idVendor CCC ID.
[in]defbyteDefining Byte
[out]payloadPointer to payload.
[in]lenMaximum Expected Length of the payload
[out]num_xferLength of the received payload
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_rstact()

int i3c_ccc_do_rstact ( const struct i3c_device_desc target,
enum i3c_ccc_rstact_defining_byte  action,
bool  get,
uint8_t data 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Single target RSTACT to reset I3C Peripheral.

Helper function to do Target Reset Action (RSTACT) to one target.

Parameters
[in]targetPointer to the target device descriptor.
[in]actionWhat reset action to perform.
[in]getTrue if a get, False if set
[out]dataPointer to RSTACT payload received.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_rstact_all()

int i3c_ccc_do_rstact_all ( const struct device controller,
enum i3c_ccc_rstact_defining_byte  action 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Broadcast RSTACT to reset I3C Peripheral (Format 1).

Helper function to broadcast Target Reset Action (RSTACT) to all connected targets.

Parameters
[in]controllerPointer to the controller device driver instance.
[in]actionWhat reset action to perform.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_rstact_fmt2()

static int i3c_ccc_do_rstact_fmt2 ( const struct i3c_device_desc target,
enum i3c_ccc_rstact_defining_byte  action 
)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Single target RSTACT to reset I3C Peripheral (Format 2).

Helper function to do Target Reset Action (RSTACT, format 2) to one target. This is a Direct Write.

Parameters
[in]targetPointer to the target device descriptor.
[in]actionWhat reset action to perform.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_rstact_fmt3()

static int i3c_ccc_do_rstact_fmt3 ( const struct i3c_device_desc target,
enum i3c_ccc_rstact_defining_byte  action,
uint8_t data 
)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Single target RSTACT to reset I3C Peripheral (Format 3).

Helper function to do Target Reset Action (RSTACT, format 3) to one target. This is a Direct Read.

Parameters
[in]targetPointer to the target device descriptor.
[in]actionWhat reset action to perform.
[out]dataPointer to RSTACT payload received.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_rstdaa_all()

int i3c_ccc_do_rstdaa_all ( const struct device controller)

#include <include/zephyr/drivers/i3c/ccc.h>

Broadcast RSTDAA to reset dynamic addresses for all targets.

Helper function to reset dynamic addresses of all connected targets.

Parameters
[in]controllerPointer to the controller device driver instance.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_setaasa_all()

int i3c_ccc_do_setaasa_all ( const struct device controller)

#include <include/zephyr/drivers/i3c/ccc.h>

Broadcast SETAASA to set all target's dynamic address to their static address.

Helper function to set dynamic addresses of all connected targets to their static address.

Parameters
[in]controllerPointer to the controller device driver instance.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_setbuscon()

int i3c_ccc_do_setbuscon ( const struct device controller,
uint8_t context,
uint16_t  length 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Broadcast SETBUSCON to set the bus context.

Helper function to set the bus context of all connected targets.

Parameters
[in]controllerPointer to the controller device driver instance.
[in]contextPointer to context byte values
[in]lengthLength of the context buffer
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_setdasa()

int i3c_ccc_do_setdasa ( const struct i3c_device_desc target,
struct i3c_ccc_address  da 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Set Dynamic Address from Static Address for a target.

Helper function to do SETDASA (Set Dynamic Address from Static Address) for a particular target.

Note this does not update target with the new dynamic address.

Parameters
[in]targetPointer to the target device descriptor where the device is configured with a static address.
[in]daStruct of the Dynamic address
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_setmrl()

int i3c_ccc_do_setmrl ( const struct i3c_device_desc target,
const struct i3c_ccc_mrl mrl 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Single target SETMRL to Set Maximum Read Length.

Helper function to do SETMRL (Set Maximum Read Length) to one target.

Note this uses the BCR of the target to determine whether to send the optional IBI payload size.

Parameters
[in]targetPointer to the target device descriptor.
[in]mrlPointer to SETMRL payload.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_setmrl_all()

int i3c_ccc_do_setmrl_all ( const struct device controller,
const struct i3c_ccc_mrl mrl,
bool  has_ibi_size 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Broadcast SETMRL to Set Maximum Read Length.

Helper function to do SETMRL (Set Maximum Read Length) to all connected targets.

Parameters
[in]controllerPointer to the controller device driver instance.
[in]mrlPointer to SETMRL payload.
[in]has_ibi_sizeTrue if also sending the optional IBI payload size. False if not sending.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_setmwl()

int i3c_ccc_do_setmwl ( const struct i3c_device_desc target,
const struct i3c_ccc_mwl mwl 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Single target SETMWL to Set Maximum Write Length.

Helper function to do SETMWL (Set Maximum Write Length) to one target.

Parameters
[in]targetPointer to the target device descriptor.
[in]mwlPointer to SETMWL payload.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_setmwl_all()

int i3c_ccc_do_setmwl_all ( const struct device controller,
const struct i3c_ccc_mwl mwl 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Broadcast SETMWL to Set Maximum Write Length.

Helper function to do SETMWL (Set Maximum Write Length) to all connected targets.

Parameters
[in]controllerPointer to the controller device driver instance.
[in]mwlPointer to SETMWL payload.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_setnewda()

int i3c_ccc_do_setnewda ( const struct i3c_device_desc target,
struct i3c_ccc_address  new_da 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Set New Dynamic Address for a target.

Helper function to do SETNEWDA(Set New Dynamic Address) for a particular target.

Note this does not update target with the new dynamic address.

Parameters
[in]targetPointer to the target device descriptor where the device is configured with a static address.
[in]new_daStruct of the Dynamic address
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_setvendor()

int i3c_ccc_do_setvendor ( const struct i3c_device_desc target,
uint8_t  id,
uint8_t payload,
size_t  len 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Single target to Set Vendor / Standard Extension CCC.

Helper function to set Vendor / Standard Extension CCC of one target.

Parameters
[in]targetPointer to the target device descriptor.
[in]idVendor CCC ID.
[in]payloadPointer to payload.
[in]lenLength of payload. 0 if no payload.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_do_setvendor_all()

int i3c_ccc_do_setvendor_all ( const struct device controller,
uint8_t  id,
uint8_t payload,
size_t  len 
)

#include <include/zephyr/drivers/i3c/ccc.h>

Broadcast Set Vendor / Standard Extension CCC.

Helper function to broadcast Vendor / Standard Extension CCC

Parameters
[in]controllerPointer to the controller device driver instance.
[in]idVendor CCC ID.
[in]payloadPointer to payload.
[in]lenLength of payload. 0 if no payload.
Returns
See also
i3c_do_ccc

◆ i3c_ccc_is_payload_broadcast()

static bool i3c_ccc_is_payload_broadcast ( const struct i3c_ccc_payload payload)
inlinestatic

#include <include/zephyr/drivers/i3c/ccc.h>

Test if I3C CCC payload is for broadcast.

This tests if the CCC payload is for broadcast.

Parameters
[in]payloadPointer to the CCC payload.
Return values
trueif payload target is broadcast
falseif payload target is direct