PSOC E8XXGP Device Support Library

| PSOC E8XXGP Device Support Library

Functions
Controller
PDL API Reference » I3C (I3C) » Functions

## General Description

## Functions
cy_en_i3c_status_t | Cy_I3C_ControllerAttachI2CDevice (I3C_CORE_Type *base, cy_stc_i2c_device_t *i2cDevice, cy_stc_i3c_context_t *context)
| Attaches an I2C device to the bus as defined by cy_stc_i2c_device_t. More...
cy_en_i3c_status_t | Cy_I3C_ControllerDetachI2CDevice (I3C_CORE_Type *base, cy_stc_i2c_device_t *i2cDevice, cy_stc_i3c_context_t *context)
| Detaches an I2C device from the bus defined by cy_stc_i2c_device_t. More...
cy_en_i3c_status_t | Cy_I3C_ControllerAttachI3CDevice (I3C_CORE_Type *base, cy_stc_i3c_device_t *i3cDevice, cy_stc_i3c_context_t *context)
| Attaches an I3C device to the bus defined by cy_stc_i3c_device_t. More...
cy_en_i3c_status_t | Cy_I3C_ControllerDetachI3CDevice (I3C_CORE_Type *base, cy_stc_i3c_device_t *i3cDevice, cy_stc_i3c_context_t *context)
| Detaches an I3C device from the bus defined by cy_stc_i3c_device_t. More...
uint32_t | Cy_I3C_GetI2CDeviceCount (I3C_CORE_Type *base, cy_stc_i3c_context_t *context)
| Provides the number of I2C devices attached to the bus. More...
uint32_t | Cy_I3C_GetI3CDeviceCount (I3C_CORE_Type *base, cy_stc_i3c_context_t *context)
| Provides the number of I3C devices attached to the bus. More...
uint32_t | Cy_I3C_SetDataRate (I3C_CORE_Type *base, uint32_t dataRateHz, uint32_t i3cClockHz, cy_stc_i3c_context_t *context)
| Sets desired maximum I3C bus data rate for transfers. More...
uint32_t | Cy_I3C_GetDataRate (I3C_CORE_Type const *base, cy_stc_i3c_context_t *context)
| Provides the supported I3C bus data rate for I3C devices. More...
cy_en_i3c_status_t | Cy_I3C_ControllerGetI2CDevices (I3C_CORE_Type *base, cy_stc_i2c_device_t *i2cDeviceList, cy_stc_i3c_context_t *context)
| Provides the list of I2C devices on the bus. More...
cy_en_i3c_status_t | Cy_I3C_ControllerGetI3CDevices (I3C_CORE_Type *base, cy_stc_i3c_device_t *i3cDeviceList, cy_stc_i3c_context_t *context)
| Provides the list of I3C devices on the bus. More...
cy_en_i3c_status_t | Cy_I3C_ControllerGetFreeDeviceAddress (I3C_CORE_Type *base, uint8_t *address, cy_stc_i3c_context_t *context)
| Provides the next dynamic address available to be assigned. More...
bool | Cy_I3C_isCCCCmdSupported (I3C_CORE_Type *base, uint8_t cccCmd)
| Checks if the CCC command is supported. More...
cy_en_i3c_status_t | Cy_I3C_SendCCCCmd (I3C_CORE_Type *base, cy_stc_i3c_ccc_cmd_t *cccCmd, cy_stc_i3c_context_t *context)
| Post the specified CCC command to command queue. More...
cy_en_i3c_status_t | Cy_I3C_DisableDeviceIbi (I3C_CORE_Type *base, cy_stc_i3c_device_t *i3cDevice, cy_stc_i3c_context_t *context)
| Disables all IBI events from specified device. More...
cy_en_i3c_status_t | Cy_I3C_EnableDeviceIbi (I3C_CORE_Type *base, cy_stc_i3c_device_t *i3cDevice, cy_stc_i3c_context_t *context)
| Enables all IBI events from specified device. More...
cy_en_i3c_status_t | Cy_I3C_ControllerWrite (I3C_CORE_Type *base, cy_stc_i3c_controller_xfer_config_t *xferConfig, cy_stc_i3c_context_t *context)
| Writes data provided by xferConfig structure cy_stc_i3c_controller_xfer_config_t to a specific device. More...
cy_en_i3c_status_t | Cy_I3C_ControllerRead (I3C_CORE_Type *base, cy_stc_i3c_controller_xfer_config_t *xferConfig, cy_stc_i3c_context_t *context)
| Reads data from a device specified by xferConfig structure cy_stc_i3c_controller_xfer_config_t. More...
void | Cy_I3C_ControllerAbortTransfer (I3C_CORE_Type *base, cy_stc_i3c_context_t *context)
| Aborts an ongoing transfer. More...
cy_en_i3c_status_t | Cy_I3C_ControllerWriteByte (I3C_CORE_Type *base, uint8_t targetAddress, int8_t data, cy_stc_i3c_context_t *context)
| Sends one byte to a target. More...
cy_en_i3c_status_t | Cy_I3C_ControllerReadByte (I3C_CORE_Type *base, uint8_t targetAddress, uint8_t *data, cy_stc_i3c_context_t *context)
| Reads one byte from a target. More...
uint32_t | Cy_I3C_GetBusStatus (I3C_CORE_Type const *base, cy_stc_i3c_context_t const *context)
| Returns the current I3C bus status. More...
cy_en_i3c_status_t | Cy_I3C_ControllerStartEntDaa (I3C_CORE_Type *base, cy_stc_i3c_context_t *context)
| Issues ENTDAA CCC command to discover the i3c devices on the bus and assigns valid dynamic addresses to the discovered devices. More...
cy_en_i3c_status_t | Cy_I3C_SetDASA (I3C_CORE_Type *base, cy_stc_i3c_ccc_cmd_t *cccCmd, cy_stc_i3c_context_t *context)
| Set Dynamic Address from Static Address Command. More...
cy_en_i3c_status_t | Cy_I3C_SetAASA (I3C_CORE_Type *base, cy_stc_i3c_device_t *i3cDevice, uint8_t i3cDeviceCount, cy_stc_i3c_context_t *context)
| Set All Addresses to Static Address Command. More...
cy_en_i3c_status_t | Cy_I3C_ControllerSendHdrCmds (I3C_CORE_Type *base, uint8_t targetAddress, cy_stc_i3c_hdr_cmd_t *hdrCmd, cy_stc_i3c_context_t *context)
| Writes data provided by xferConfig structure cy_stc_i3c_controller_xfer_config_t to a specific device. More...
cy_en_i3c_status_t | Cy_I3C_ControllerWriteDMA (I3C_CORE_Type *base, uint8_t targetAddress, uint32_t Datalength, cy_stc_i3c_context_t *context)
| Initiate an I3C data transfer with DMA, Appropriate trig mux should be set before calling this API. More...
cy_en_i3c_status_t | Cy_I3C_ControllerReadDMA (I3C_CORE_Type *base, uint8_t targetAddress, uint32_t Datalength, cy_stc_i3c_context_t *context)
| Initiate an I3C data Receive with DMA, Appropriate trig mux should be set before calling this API. More...
cy_en_i3c_status_t | Cy_I3C_GetIbiPayload (I3C_CORE_Type *base, uint8_t *buffer, uint32_t size, cy_stc_i3c_context_t *context)
| Read data received with IBI into given buffer. More...
bool | CY_I3C_isIbiPayloadEnabled (I3C_CORE_Type *base, uint8_t targetAddress, cy_stc_i3c_context_t *context)
| Returns IBI payload enabled status. More...

## Function Documentation

## ◆ Cy_I3C_ControllerAttachI2CDevice()

cy_en_i3c_status_t Cy_I3C_ControllerAttachI2CDevice | ( | I3C_CORE_Type * | base,
|  | cy_stc_i2c_device_t * | i2cDevice,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Attaches an I2C device to the bus as defined by cy_stc_i2c_device_t.

It is required to provide device static address and lvr information in cy_stc_i2c_device_t.

Parameters

  base | The pointer to the I3C instance.
  i2cDevice | The pointer to the I2C device description structure cy_stc_i2c_device_t.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  cy_en_i3c_status_t

## ◆ Cy_I3C_ControllerDetachI2CDevice()

cy_en_i3c_status_t Cy_I3C_ControllerDetachI2CDevice | ( | I3C_CORE_Type * | base,
|  | cy_stc_i2c_device_t * | i2cDevice,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Detaches an I2C device from the bus defined by cy_stc_i2c_device_t.

Parameters

  base | The pointer to the I3C instance.
  i2cDevice | pointer to the I2C device description structure cy_stc_i2c_device_t.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  cy_en_i3c_status_t

## ◆ Cy_I3C_ControllerAttachI3CDevice()

cy_en_i3c_status_t Cy_I3C_ControllerAttachI3CDevice | ( | I3C_CORE_Type * | base,
|  | cy_stc_i3c_device_t * | i3cDevice,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Attaches an I3C device to the bus defined by cy_stc_i3c_device_t.

Parameters

  base | The pointer to the I3C instance.
  i3cDevice | The pointer to the i3c device description structure cy_stc_i3c_device_t.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  cy_en_i3c_status_t

Note
  This function is used to attach I3C devices with Static Addresses only.

## ◆ Cy_I3C_ControllerDetachI3CDevice()

cy_en_i3c_status_t Cy_I3C_ControllerDetachI3CDevice | ( | I3C_CORE_Type * | base,
|  | cy_stc_i3c_device_t * | i3cDevice,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Detaches an I3C device from the bus defined by cy_stc_i3c_device_t.

Parameters

  base | The pointer to the I3C instance.
  i3cDevice | The pointer to the I3C device description structure cy_stc_i3c_device_t.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  cy_en_i3c_status_t

## ◆ Cy_I3C_GetI2CDeviceCount()

uint32_t Cy_I3C_GetI2CDeviceCount | ( | I3C_CORE_Type * | base,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Provides the number of I2C devices attached to the bus.

Parameters

  base | The pointer to the I3C instance.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  Number of I2C devices attached to the bus.

## ◆ Cy_I3C_GetI3CDeviceCount()

uint32_t Cy_I3C_GetI3CDeviceCount | ( | I3C_CORE_Type * | base,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Provides the number of I3C devices attached to the bus.

Parameters

  base | The pointer to the I3C instance.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  Number of I3C devices attached to the bus.

## ◆ Cy_I3C_SetDataRate()

uint32_t Cy_I3C_SetDataRate | ( | I3C_CORE_Type * | base,
|  | uint32_t | dataRateHz,
|  | uint32_t | i3cClockHz,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Sets desired maximum I3C bus data rate for transfers.

Parameters

  base | The pointer to the I3C instance.
  dataRateHz | The desired I3C data rate in Hz.
  i3cClockHz | The frequency of the clock connected to the I3C Block in Hz.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  The achieved data rate in Hz. When zero value is returned there is an error in the input parameters: data rate or clk_i3c is out of valid range.

## ◆ Cy_I3C_GetDataRate()

uint32_t Cy_I3C_GetDataRate | ( | I3C_CORE_Type const * | base,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Provides the supported I3C bus data rate for I3C devices.

Parameters

  base | The pointer to the I3C instance.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  ref cy_en_i3c_data_speed_t

## ◆ Cy_I3C_ControllerGetI2CDevices()

cy_en_i3c_status_t Cy_I3C_ControllerGetI2CDevices | ( | I3C_CORE_Type * | base,
|  | cy_stc_i2c_device_t * | i2cDeviceList,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Provides the list of I2C devices on the bus.

Parameters

  base | The pointer to the I3C instance.
  i2cDeviceList | The pointer to the I2C device list array. This will be updated with information about all of the I2C devices on the bus. This array must be at least Cy_I3C_GetI2CDeviceCount entries long

Note
  Only the first Cy_I3C_GetI2CDeviceCount elements will be updated; the remaining elements will be left uninitialized.

Parameters

  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  ref cy_en_i3c_status_t.

## ◆ Cy_I3C_ControllerGetI3CDevices()

cy_en_i3c_status_t Cy_I3C_ControllerGetI3CDevices | ( | I3C_CORE_Type * | base,
|  | cy_stc_i3c_device_t * | i3cDeviceList,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Provides the list of I3C devices on the bus.

Parameters

  base | The pointer to the I3C instance.
  i3cDeviceList | The pointer to the I3C device list array. This will be updated with information about all of the I3C devices on the bus. This array must be at least Cy_I3C_GetI3CDeviceCount entries long.

Note
  Only the first Cy_I3C_GetI3CDeviceCount elements will be updated; the remaining elements will be left uninitialized.

Parameters

  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  ref cy_en_i3c_status_t.

## ◆ Cy_I3C_ControllerGetFreeDeviceAddress()

cy_en_i3c_status_t Cy_I3C_ControllerGetFreeDeviceAddress | ( | I3C_CORE_Type * | base,
|  | uint8_t * | address,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Provides the next dynamic address available to be assigned.

Parameters

  base | The pointer to the I3C instance.
  address | The pointer to the address.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  cy_en_i3c_status_t.

## ◆ Cy_I3C_isCCCCmdSupported()

bool Cy_I3C_isCCCCmdSupported | ( | I3C_CORE_Type * | base,
|  | uint8_t | cccCmd
| ) |  |

Checks if the CCC command is supported.

Parameters

  base | The pointer to the I3C instance.
  cccCmd | The CCC command to be checked.

Returns
  true: If the specified command is supported false: If the specified command is not supported.

## ◆ Cy_I3C_SendCCCCmd()

cy_en_i3c_status_t Cy_I3C_SendCCCCmd | ( | I3C_CORE_Type * | base,
|  | cy_stc_i3c_ccc_cmd_t * | cccCmd,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Post the specified CCC command to command queue.

Parameters

  base | The pointer to the I3C instance.
  cccCmd | The pointer to the CCC command description structure cy_stc_i3c_ccc_cmd_t.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  ref cy_en_i3c_status_t.

## ◆ Cy_I3C_DisableDeviceIbi()

cy_en_i3c_status_t Cy_I3C_DisableDeviceIbi | ( | I3C_CORE_Type * | base,
|  | cy_stc_i3c_device_t * | i3cDevice,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Disables all IBI events from specified device.

Parameters

  base | The pointer to the I3C instance.
  i3cDevice | pointer to the i3c device description structure cy_stc_i3c_device_t.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  cy_en_i3c_status_t

## ◆ Cy_I3C_EnableDeviceIbi()

cy_en_i3c_status_t Cy_I3C_EnableDeviceIbi | ( | I3C_CORE_Type * | base,
|  | cy_stc_i3c_device_t * | i3cDevice,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Enables all IBI events from specified device.

Parameters

  base | The pointer to the I3C instance.
  i3cDevice | pointer to the i3c device description structure cy_stc_i3c_device_t.
  context | The pointer to the context structure cy_stc_i3c_config_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  cy_en_i3c_status_t

## ◆ Cy_I3C_ControllerWrite()

cy_en_i3c_status_t Cy_I3C_ControllerWrite | ( | I3C_CORE_Type * | base,
|  | cy_stc_i3c_controller_xfer_config_t * | xferConfig,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Writes data provided by xferConfig structure cy_stc_i3c_controller_xfer_config_t to a specific device.

Parameters

  base | The pointer to the I3C instance.
  xferConfig | Controller transfer configuration structure. cy_stc_i3c_controller_xfer_config_t
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  ref cy_en_i3c_status_t.

## ◆ Cy_I3C_ControllerRead()

cy_en_i3c_status_t Cy_I3C_ControllerRead | ( | I3C_CORE_Type * | base,
|  | cy_stc_i3c_controller_xfer_config_t * | xferConfig,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Reads data from a device specified by xferConfig structure cy_stc_i3c_controller_xfer_config_t.

Parameters

  base | The pointer to the I3C instance.
  xferConfig | Controller transfer configuration structure. cy_stc_i3c_controller_xfer_config_t
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  ref cy_en_i3c_status_t.

## ◆ Cy_I3C_ControllerAbortTransfer()

void Cy_I3C_ControllerAbortTransfer | ( | I3C_CORE_Type * | base,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Aborts an ongoing transfer.

Parameters

  base | The pointer to the I3C instance.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

## ◆ Cy_I3C_ControllerWriteByte()

cy_en_i3c_status_t Cy_I3C_ControllerWriteByte | ( | I3C_CORE_Type * | base,
|  | uint8_t | targetAddress,
|  | int8_t | data,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Sends one byte to a target.

This function is blocking.

Parameters

  base | The pointer to the I3C instance.
  targetAddress | The dynamic address of the target I3C target device.
  data | The byte to write to the target.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  ref cy_en_i3c_status_t.

## ◆ Cy_I3C_ControllerReadByte()

cy_en_i3c_status_t Cy_I3C_ControllerReadByte | ( | I3C_CORE_Type * | base,
|  | uint8_t | targetAddress,
|  | uint8_t * | data,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Reads one byte from a target.

This function is blocking.

Parameters

  base | The pointer to the I3C instance.
  targetAddress | The dynamic address of the target I3C target device.
  data | The pointer to the location to store the Read byte.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  ref cy_en_i3c_status_t.

## ◆ Cy_I3C_GetBusStatus()

uint32_t Cy_I3C_GetBusStatus | ( | I3C_CORE_Type const * | base,
|  | cy_stc_i3c_context_t const * | context
| ) |  |

Returns the current I3C bus status.

Parameters

  base | The pointer to the I3C instance.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  I3C Controller Status. Note that not all I3C controller statuses are returned by this function. Refer to more details of each status.

## ◆ Cy_I3C_ControllerStartEntDaa()

cy_en_i3c_status_t Cy_I3C_ControllerStartEntDaa | ( | I3C_CORE_Type * | base,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Issues ENTDAA CCC command to discover the i3c devices on the bus and assigns valid dynamic addresses to the discovered devices.

This CCC is to be issued also when a device hot joins the bus.

Parameters

  base | The pointer to the I3C instance.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  cy_en_i3c_status_t

## ◆ Cy_I3C_SetDASA()

cy_en_i3c_status_t Cy_I3C_SetDASA | ( | I3C_CORE_Type * | base,
|  | cy_stc_i3c_ccc_cmd_t * | cccCmd,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Set Dynamic Address from Static Address Command.

Parameters

  base | The pointer to the I3C instance.
  cccCmd | The pointer to the I3C CCC structure cy_stc_i3c_ccc_cmd_t.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  cy_en_i3c_status_t

## ◆ Cy_I3C_SetAASA()

cy_en_i3c_status_t Cy_I3C_SetAASA | ( | I3C_CORE_Type * | base,
|  | cy_stc_i3c_device_t * | i3cDevice,
|  | uint8_t | i3cDeviceCount,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Set All Addresses to Static Address Command.

This CCC allows the Controller to request that all connected Targets that have I2C Static Addresses use their I2C Static Address as their Dynamic Address.

Parameters

  base | The pointer to the I3C instance.
  i3cDevice | The pointer to the array of i3c device description structure cy_stc_i3c_device_t.
  i3cDeviceCount | Number of I3C devices in array.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  cy_en_i3c_status_t

Note
  This is an optional CCC and caller must know all targets supporting the ccc and their static address.

## ◆ Cy_I3C_ControllerSendHdrCmds()

cy_en_i3c_status_t Cy_I3C_ControllerSendHdrCmds | ( | I3C_CORE_Type * | base,
|  | uint8_t | targetAddress,
|  | cy_stc_i3c_hdr_cmd_t * | hdrCmd,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Writes data provided by xferConfig structure cy_stc_i3c_controller_xfer_config_t to a specific device.

Parameters

  base | The pointer to the I3C instance.
  targetAddress | The dynamic address of the target I3C device.
  hdrCmd | The pointer to HDR command description structure cy_stc_i3c_hdr_cmd_t.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  ref cy_en_i3c_status_t.

## ◆ Cy_I3C_ControllerWriteDMA()

cy_en_i3c_status_t Cy_I3C_ControllerWriteDMA | ( | I3C_CORE_Type * | base,
|  | uint8_t | targetAddress,
|  | uint32_t | Datalength,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Initiate an I3C data transfer with DMA, Appropriate trig mux should be set before calling this API.

Parameters

  base | The pointer to the I3C instance.
  targetAddress | Dynamic address of target to transfer data.
  Datalength | Number of bytes of data to be transferred.max upto 65535 Bytes.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  reset successful status - CY_I3C_BAD_PARAM / CY_I3C_SUCCESS.

## ◆ Cy_I3C_ControllerReadDMA()

cy_en_i3c_status_t Cy_I3C_ControllerReadDMA | ( | I3C_CORE_Type * | base,
|  | uint8_t | targetAddress,
|  | uint32_t | Datalength,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Initiate an I3C data Receive with DMA, Appropriate trig mux should be set before calling this API.

Parameters

  base | The pointer to the I3C instance.
  targetAddress | Dynamic address of target to transfer data.
  Datalength | Number of bytes of data to be transferred.max upto 65535 Bytes.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  reset successful status - CY_I3C_BAD_PARAM / CY_I3C_SUCCESS.

## ◆ Cy_I3C_GetIbiPayload()

cy_en_i3c_status_t Cy_I3C_GetIbiPayload | ( | I3C_CORE_Type * | base,
|  | uint8_t * | buffer,
|  | uint32_t | size,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Read data received with IBI into given buffer.

This function must be called from IBI callback handler.

Parameters

  base | The pointer to the I3C instance.
  buffer | The pointer to the buffer tp store data read from IBI.
  size | Number of bytes of data received.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  reset successful status - CY_I3C_BAD_PARAM / CY_I3C_SUCCESS.

## ◆ CY_I3C_isIbiPayloadEnabled()

bool CY_I3C_isIbiPayloadEnabled | ( | I3C_CORE_Type * | base,
|  | uint8_t | targetAddress,
|  | cy_stc_i3c_context_t * | context
| ) |  |

Returns IBI payload enabled status.

This indicates whether the IBI payload will be received from target. For invalid target address false will be returned.

Parameters

  base | The pointer to the I3C instance.
  targetAddress | Dynamic address of target device, to disable ibi payload.
  context | The pointer to the context structure cy_stc_i3c_context_t allocated by the user. The structure is used during the I3C operation for internal configuration and data retention. The user must not modify anything in this structure.

Returns
  whether the ibi with payload is enabled or not.