7#ifndef ZEPHYR_INCLUDE_DRIVERS_I3C_TARGET_DEVICE_H_ 
    8#define ZEPHYR_INCLUDE_DRIVERS_I3C_TARGET_DEVICE_H_ 
  245        const struct i3c_driver_api *api =
 
  246                (
const struct i3c_driver_api *)dev->
api;
 
  248        if (api->target_tx_write == NULL) {
 
  252        return api->target_tx_write(dev, buf, len);
 
  281        const struct i3c_driver_api *api =
 
  282                (
const struct i3c_driver_api *)dev->
api;
 
  284        if (api->target_register == NULL) {
 
  288        return api->target_register(dev, cfg);
 
  310        const struct i3c_driver_api *api =
 
  311                (
const struct i3c_driver_api *)dev->
api;
 
  313        if (api->target_unregister == NULL) {
 
  317        return api->target_unregister(dev, cfg);
 
static int i3c_target_unregister(const struct device *dev, struct i3c_target_config *cfg)
Unregisters the provided config as target device.
Definition: target_device.h:307
 
static int i3c_target_tx_write(const struct device *dev, uint8_t *buf, uint16_t len)
Writes to the Target's TX FIFO.
Definition: target_device.h:242
 
static int i3c_target_register(const struct device *dev, struct i3c_target_config *cfg)
Registers the provided config as target device of a controller.
Definition: target_device.h:278
 
#define ENOSYS
Definition: errno.h:83
 
struct _snode sys_snode_t
Definition: slist.h:33
 
__UINT64_TYPE__ uint64_t
Definition: stdint.h:91
 
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
 
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
 
Runtime device structure (in ROM) per driver instance.
Definition: device.h:380
 
const void * api
Definition: device.h:386
 
Configuration parameters for I3C hardware to act as target device.
Definition: target_device.h:34
 
uint8_t bcr
Definition: target_device.h:61
 
bool pid_random
Definition: target_device.h:58
 
uint16_t max_read_len
Definition: target_device.h:67
 
uint64_t pid
Definition: target_device.h:50
 
uint8_t supported_hdr
Definition: target_device.h:78
 
uint8_t static_addr
Definition: target_device.h:47
 
bool enable
Definition: target_device.h:39
 
uint16_t max_write_len
Definition: target_device.h:70
 
uint8_t dcr
Definition: target_device.h:64
 
Definition: target_device.h:109
 
int(* stop_cb)(struct i3c_target_config *config)
Function called when a stop condition is observed after a start condition addressed to a particular d...
Definition: target_device.h:211
 
int(* write_received_cb)(struct i3c_target_config *config, uint8_t val)
Function called when a write to the device is continued.
Definition: target_device.h:147
 
int(* read_requested_cb)(struct i3c_target_config *config, uint8_t *val)
Function called when a read from the device is initiated.
Definition: target_device.h:170
 
int(* write_requested_cb)(struct i3c_target_config *config)
Function called when a write to the device is initiated.
Definition: target_device.h:126
 
int(* read_processed_cb)(struct i3c_target_config *config, uint8_t *val)
Function called when a read from the device is continued.
Definition: target_device.h:193
 
Structure describing a device that supports the I3C target API.
Definition: target_device.h:92
 
const struct i3c_target_callbacks * callbacks
Definition: target_device.h:106
 
sys_snode_t node
Definition: target_device.h:94
 
uint8_t address
Definition: target_device.h:103
 
uint8_t flags
Definition: target_device.h:100
 
Definition: target_device.h:214
 
int(* driver_unregister)(const struct device *dev)
Definition: target_device.h:216
 
int(* driver_register)(const struct device *dev)
Definition: target_device.h:215