#include <types.h>
#include <sdrv_common.h>
Go to the source code of this file.
|
| static status_t | sdrv_i2c_set_transmode (sdrv_i2c_t *ctrl, sdrv_i2cdrv_tsmode_t tsmode) |
| |
| static status_t | sdrv_i2c_set_speedmode (sdrv_i2c_t *ctrl, sdrv_i2cdrv_speed_t speed) |
| |
| status_t | sdrv_i2c_init_ctrl (sdrv_i2c_t *ctrl) |
| |
| status_t | sdrv_i2c_write (sdrv_i2c_t *ctrl, uint16_t addr, uint8_t *wbuf, uint16_t wlen, uint32_t timeout, bool need_stop) |
| |
| status_t | sdrv_i2c_read (sdrv_i2c_t *ctrl, uint16_t addr, uint8_t *rbuf, uint16_t rlen, uint32_t timeout, bool need_stop) |
| |
| status_t | sdrv_i2c_write_async (sdrv_i2c_t *ctrl, uint16_t addr, uint8_t *wbuf, uint16_t wlen, bool need_stop, sdrv_i2c_cb_t cb, void *cb_param) |
| |
| status_t | sdrv_i2c_read_async (sdrv_i2c_t *ctrl, uint16_t addr, uint8_t *rbuf, uint16_t rlen, bool need_stop, sdrv_i2c_cb_t cb, void *cb_param) |
| |
| status_t | sdrv_i2c_get_trans_stat (sdrv_i2c_t *ctrl) |
| |
| sdrv_i2cdrv_bus_stat_t | sdrv_i2c_get_bus_stat (sdrv_i2c_t *ctrl) |
| |
| status_t | sdrv_i2c_set_bus_stat (sdrv_i2c_t *ctrl, sdrv_i2cdrv_bus_stat_t bus_stat) |
| |
| status_t | sdrv_i2c_lock_bus (sdrv_i2c_t *ctrl) |
| |
| status_t | sdrv_i2c_unlock_bus (sdrv_i2c_t *ctrl) |
| |
- Copyright
- (c) 2022 Semidrive Semiconductor. @All rights reserved.
◆ sdrv_i2c_cb_t
◆ sdrv_i2c_cfg_t
◆ sdrv_i2c_t
◆ sdrv_i2cdrv_mctrl_t
◆ sdrv_i2cdrv_trans_stat_t
◆ anonymous enum
i2c controller supported errcode
| Enumerator |
|---|
| SDRV_I2CDRV_TRANS_OK | |
| SDRV_I2CDRV_TRANS_GO | |
| SDRV_I2CDRV_TRANS_NAK | |
| SDRV_I2CDRV_TRANS_ERR | |
| SDRV_I2CDRV_TRANS_ABORT | |
| SDRV_I2CDRV_TRANS_TIMEOUT | |
◆ sdrv_i2cdrv_bus_stat_t
i2c bus stat(only applicable for master mode)
| Enumerator |
|---|
| SDRV_I2CDRV_BUS_IDLE | i2c bus is idle
|
| SDRV_I2CDRV_BUS_BUSY | i2c bus is busy
|
◆ sdrv_i2cdrv_opmode_t
i2c controller supported operation mode
| Enumerator |
|---|
| SDRV_I2CDRV_MASTER | i2c controller master mode
|
| SDRV_I2CDRV_SLAVE | i2c controller slave mode
|
◆ sdrv_i2cdrv_speed_t
i2c controller supported speed mode
| Enumerator |
|---|
| SDRV_I2CDRV_SSPEED | 100kHz
|
| SDRV_I2CDRV_FSPEED | 400kHz
|
| SDRV_I2CDRV_PSPEED | 1MHz
|
| SDRV_I2CDRV_HSPEED | 3.4MHz
|
| SDRV_I2CDRV_USPEED | 5MHz
|
◆ sdrv_i2cdrv_tsmode_t
i2c controller supported transfer mode (only applicable for master mode)
| Enumerator |
|---|
| SDRV_I2CDRV_POLL | polling mode
|
| SDRV_I2CDRV_INTP | interrupt mode
|
◆ sdrv_i2c_get_bus_stat()
Get bus stat(only applicable for master). @this api will abandon,please use sdrv_i2c_lock_bus/sdrv_i2c_unlock_bus instead.
- Parameters
-
| [in] | ctrl | i2c controller instance pointer |
- Returns
- SDRV_I2CDRV_BUS_IDLE/SDRV_I2CDRV_BUS_BUSY
◆ sdrv_i2c_get_trans_stat()
Get transfer stat(only applicable for master).
- Parameters
-
| [in] | ctrl | i2c controller instance pointer |
- Returns
- SDRV_I2CDRV_TRANS_OK SDRV_I2CDRV_TRANS_GO SDRV_I2CDRV_TRANS_ERR SDRV_I2CDRV_TRANS_NAK SDRV_I2CDRV_TRANS_ABORT SDRV_I2CDRV_TRANS_TIMEOUT
◆ sdrv_i2c_init_ctrl()
Init the i2c controller.
- Parameters
-
| [in] | ctrl | i2c controller instance pointer |
- Returns
- SDRV_STATUS_OK/SDRV_STATUS_FAIL
◆ sdrv_i2c_lock_bus()
Lock bus stat(only applicable for master).
- Parameters
-
| [in] | ctrl | i2c controller instance pointer |
- Returns
- SDRV_STATUS_OK/SDRV_STATUS_FAIL
◆ sdrv_i2c_read()
| status_t sdrv_i2c_read |
( |
sdrv_i2c_t * |
ctrl, |
|
|
uint16_t |
addr, |
|
|
uint8_t * |
rbuf, |
|
|
uint16_t |
rlen, |
|
|
uint32_t |
timeout, |
|
|
bool |
need_stop |
|
) |
| |
Read data from slave device use poll blocking format.
- Parameters
-
| [in] | ctrl | i2c controller instance pointer |
| [in] | addr | slave device 7bit addr not include LSB read/write bit |
| [out] | rbuf | point to data buf for receive |
| [in] | rlen | data buf len |
| [in] | timeout | timeout in milliseconds to wait (0 = wait forever) |
| [in] | need_stop | whether send stop signal or hold sda after finish read |
- Returns
- SDRV_STATUS_OK/SDRV_STATUS_FAIL
◆ sdrv_i2c_read_async()
Read data from slave device use interrupt non-blocking format.
- Parameters
-
| [in] | ctrl | i2c controller instance pointer |
| [in] | addr | slave device 7bit addr not include LSB read/write bit |
| [out] | rbuf | point to data buf for receive |
| [in] | rlen | data buf len |
| [in] | need_stop | whether send stop signal or hold sda after complete read |
| [in] | cb | callback function pointer |
| [in] | cb_param | callback user parameter |
- Returns
- SDRV_STATUS_OK/SDRV_STATUS_FAIL
◆ sdrv_i2c_set_bus_stat()
Set bus stat(only applicable for master). @this api will abandon,please use sdrv_i2c_lock_bus/sdrv_i2c_unlock_bus instead.
- Parameters
-
| [in] | ctrl | i2c controller instance pointer |
| [in] | bus_stat | bus stat to be set |
- Returns
- SDRV_STATUS_OK
◆ sdrv_i2c_set_speedmode()
Set i2c controller speed mode.
- Note
- This API is deprecated.
- Parameters
-
| [in] | ctrl | i2c controller instance pointer |
| [in] | speed | speed mode to be set |
- Returns
- SDRV_STATUS_OK
◆ sdrv_i2c_set_transmode()
Set i2c controller transfer mode.
- Note
- This API is deprecated.
- Parameters
-
| [in] | ctrl | i2c controller instance pointer |
| [in] | tsmode | transmode to be set |
- Returns
- SDRV_STATUS_OK
◆ sdrv_i2c_unlock_bus()
Unlock bus stat(only applicable for master).
- Parameters
-
| [in] | ctrl | i2c controller instance pointer |
- Returns
- SDRV_STATUS_OK
◆ sdrv_i2c_write()
| status_t sdrv_i2c_write |
( |
sdrv_i2c_t * |
ctrl, |
|
|
uint16_t |
addr, |
|
|
uint8_t * |
wbuf, |
|
|
uint16_t |
wlen, |
|
|
uint32_t |
timeout, |
|
|
bool |
need_stop |
|
) |
| |
Write data to slave device use poll blocking format.
- Parameters
-
| [in] | ctrl | i2c controller instance pointer |
| [in] | addr | slave device 7bit addr not include LSB read/write bit |
| [in] | wbuf | point to data buf for send |
| [in] | wlen | data buf len |
| [in] | timeout | timeout in milliseconds to wait (0 = wait forever) |
| [in] | need_stop | whether send stop signal or hold sda after finish write |
- Returns
- SDRV_STATUS_OK/SDRV_STATUS_FAIL
◆ sdrv_i2c_write_async()
Write data to slave device use interrupt non-blocking format.
- Parameters
-
| [in] | ctrl | i2c controller instance pointer |
| [in] | addr | slave device 7bit addr not include LSB read/write bit |
| [in] | wbuf | point to data buf for send |
| [in] | wlen | data buf len |
| [in] | need_stop | whether send stop signal or hold sda after finish write |
| [in] | cb | callback function pointer |
| [in] | cb_param | callback user parameter |
- Returns
- SDRV_STATUS_OK/SDRV_STATUS_FAIL