|
SmartSnippets DA1459x SDK
|
Go to the documentation of this file.
47 #if dg_configI2C_ADAPTER
51 #if (HW_I2C_DMA_SUPPORT == 1)
71 #ifndef CONFIG_I2C_USE_ASYNC_TRANSACTIONS
72 #define CONFIG_I2C_USE_ASYNC_TRANSACTIONS (1)
84 #ifndef CONFIG_I2C_USE_SYNC_TRANSACTIONS
85 #define CONFIG_I2C_USE_SYNC_TRANSACTIONS (1)
88 #if (CONFIG_I2C_USE_SYNC_TRANSACTIONS == 0) && (CONFIG_I2C_USE_ASYNC_TRANSACTIONS == 0)
89 #error "At least one macro CONFIG_I2C_USE_SYNC_TRANSACTIONS or CONFIG_I2C_USE_ASYNC_TRANSACTIONS must be set."
92 #if (HW_I2C_SLAVE_SUPPORT == 1)
93 #if (CONFIG_I2C_USE_SYNC_TRANSACTIONS == 0)
94 #error "CONFIG_I2C_USE_SYNC_TRANSACTIONS must be set if HW_I2C_SLAVE_SUPPORT is set."
98 #ifndef I2C_DEFAULT_CLK_CFG
99 #define I2C_DEFAULT_CLK_CFG .i2c.clock_cfg = { 0, 0, 0, 0, 0, 0 }
132 #if (HW_I2C_DMA_SUPPORT == 1)
154 AD_I2C_ERROR_IO_CFG_INVALID = -6,
155 AD_I2C_ERROR_CONTROLLER_ABORT_FAIL = -5,
156 AD_I2C_ERROR_TRANSFER_TIMEOUT = -4,
157 AD_I2C_ERROR_CONTROLLER_BUSY = -3,
158 AD_I2C_ERROR_DRIVER_CONF_INVALID = -2,
159 AD_I2C_ERROR_HANDLE_INVALID = -1,
160 AD_I2C_ERROR_NONE = 0,
241 #if CONFIG_I2C_USE_SYNC_TRANSACTIONS
395 size_t rlen, uint8_t condition_flags);
434 size_t rlen, uint8_t condition_flags, OS_TICK_TIME timeout);
447 #if CONFIG_I2C_USE_ASYNC_TRANSACTIONS
514 void *user_data, uint8_t condition_flags);
547 uint8_t condition_flags);
551 #if (HW_I2C_SLAVE_SUPPORT == 1)
553 typedef void (* ad_i2c_slave_event)(
ad_i2c_handle_t p,
void *user_data);
554 typedef void (* ad_i2c_slave_data_event)(
ad_i2c_handle_t p, uint16_t len,
bool success,
564 ad_i2c_slave_data_event data_sent;
565 ad_i2c_slave_data_event data_received;
567 ad_i2c_slave_event data_ready;
568 ad_i2c_slave_event read_request;
569 } i2c_dev_slave_event_callbacks_t;
576 AD_I2C_SLAVE_STATE_STOPPED = 0,
579 AD_I2C_SLAVE_STATE_INIT = 0x1,
582 AD_I2C_SLAVE_STATE_READ_PENDING = 0x2,
585 AD_I2C_SLAVE_STATE_WRITE_PENDING = 0x4,
586 } AD_I2C_SLAVE_STATE;
589 const i2c_dev_slave_event_callbacks_t *event_callbacks;
591 const uint8_t *output_buffer;
592 uint16_t output_buffer_len;
593 uint8_t *input_buffer;
594 uint16_t input_buffer_len;
597 AD_I2C_SLAVE_STATE state;
599 OS_EVENT operation_done_event;
600 } i2c_slave_state_data_t;
660 int ad_i2c_start_slave(
ad_i2c_handle_t p,
const uint8_t *wbuf, uint16_t wlen, uint8_t *rbuf,
661 uint16_t rlen,
const i2c_dev_slave_event_callbacks_t *events,
Definition of API for the DMA Low Level Driver.
int ad_i2c_write_read_with_to(ad_i2c_handle_t p, const uint8_t *wbuf, size_t wlen, uint8_t *rbuf, size_t rlen, uint8_t condition_flags, OS_TICK_TIME timeout)
Perform synchronous write/read transaction with time out.
int ad_i2c_read(ad_i2c_handle_t p, uint8_t *rbuf, size_t rlen, uint8_t condition_flags)
Perform a blocking read transaction.
int ad_i2c_write_read_async(ad_i2c_handle_t p, const uint8_t *wbuf, size_t wlen, uint8_t *rbuf, size_t rlen, ad_i2c_user_cb cb, void *user_data, uint8_t condition_flags)
Perform write and asynchronous read I2C transaction.
int ad_i2c_read_async(ad_i2c_handle_t p, uint8_t *rbuf, size_t rlen, ad_i2c_user_cb cb, void *user_data, uint8_t condition_flags)
Perform a non blocking read transaction.
int ad_i2c_write_with_to(ad_i2c_handle_t p, const uint8_t *wbuf, size_t wlen, uint8_t condition_flags, OS_TICK_TIME timeout)
Perform a blocking write transaction with time out.
void ad_i2c_wait_while_master_busy(ad_i2c_handle_t p)
Wait while I2C master device is busy.
HW_DMA_CHANNEL dma_channel
Definition: ad_i2c.h:133
int ad_i2c_write_async(ad_i2c_handle_t p, const uint8_t *wbuf, size_t wlen, ad_i2c_user_cb cb, void *user_data, uint8_t condition_flags)
Perform a non blocking write transaction.
ad_i2c_handle_t ad_i2c_open(const ad_i2c_controller_conf_t *conf)
Open I2C controller.
void ad_i2c_init(void)
Initialize adapter.
void * ad_i2c_handle_t
I2C Handle returned by ad_i2c_open()
Definition: ad_i2c.h:109
int ad_i2c_write_read(ad_i2c_handle_t p, const uint8_t *wbuf, size_t wlen, uint8_t *rbuf, size_t rlen, uint8_t condition_flags)
Perform synchronous write/read transaction.
const HW_I2C_ID id
Definition: ad_i2c.h:144
OS abstraction layer API.
HW_DMA_CHANNEL
DMA channel number.
Definition: hw_dma.h:62
Definition of API for the I2C Low Level Driver.
HW_I2C_ABORT_SOURCE
I2C abort source.
Definition: hw_i2c.h:142
Adapters shared definitions.
AD_IO_CONF_STATE
Adapters IO configuration state.
Definition: ad.h:65
I2C I/O configuration.
Definition: ad_i2c.h:117
AD_I2C_ERROR
I2C adapter error codes.
Definition: ad_i2c.h:153
int ad_i2c_write(ad_i2c_handle_t p, const uint8_t *wbuf, size_t wlen, uint8_t condition_flags)
Perform a blocking write transaction.
void(* ad_i2c_user_cb)(void *user_data, HW_I2C_ABORT_SOURCE error)
Asynchronous callback function.
Definition: ad_i2c.h:167
I2C controller configuration.
Definition: ad_i2c.h:143
ad_io_conf_t scl
Definition: ad_i2c.h:118
const ad_i2c_driver_conf_t * drv
Definition: ad_i2c.h:146
Definition of API for the GPIO Low Level Driver.
int ad_i2c_reconfig(ad_i2c_handle_t p, const ad_i2c_driver_conf_t *conf)
Reconfigure I2C controller.
int ad_i2c_read_with_to(ad_i2c_handle_t p, uint8_t *rbuf, size_t rlen, uint8_t condition_flags, OS_TICK_TIME timeout)
Perform a blocking read transaction with time out.
I2C configuration.
Definition: hw_i2c.h:282
const ad_i2c_io_conf_t * io
Definition: ad_i2c.h:145
i2c_config i2c
Definition: ad_i2c.h:131
Adapters IO configuration.
Definition: ad.h:104
ad_io_conf_t sda
Definition: ad_i2c.h:119
int ad_i2c_io_config(HW_I2C_ID id, const ad_i2c_io_conf_t *io, AD_IO_CONF_STATE state)
Initialize controller pins to on / off io configuration.
int ad_i2c_close(ad_i2c_handle_t p, bool force)
Close I2C controller.
I2C driver configuration.
Definition: ad_i2c.h:130