5 #ifndef __QM_SS_I2C_H__
6 #define __QM_SS_I2C_H__
9 #include "qm_sensor_regs.h"
19 #define QM_I2C_SS_50_DC_NS (5000)
21 #define QM_I2C_FS_50_DC_NS (1250)
23 #define QM_I2C_FSP_50_DC_NS (500)
28 #define QM_I2C_MIN_SS_NS (4700)
30 #define QM_I2C_MIN_FS_NS (1300)
32 #define QM_I2C_MIN_FSP_NS (500)
48 #if HAS_SS_I2C_FAST_PLUS_SPEED
65 QM_SS_I2C_TX_ABRT_GCALL_READ = BIT(5),
73 QM_SS_I2C_TX_ABRT_SLVFLUSH_TXFIFO = BIT(13),
150 const uint16_t lo_cnt,
const uint16_t hi_cnt);
184 const uint8_t *
const data, uint32_t len,
205 uint8_t *
const data, uint32_t len,
const bool stop,
227 const uint16_t slave_addr);
qm_ss_i2c_speed_t
QM SS I2C speed type.
int qm_ss_i2c_master_write(const qm_ss_i2c_t i2c, const uint16_t slave_addr, const uint8_t *const data, uint32_t len, const bool stop, qm_ss_i2c_status_t *const status)
Master write on I2C.
int qm_ss_i2c_master_irq_transfer(const qm_ss_i2c_t i2c, const qm_ss_i2c_transfer_t *const xfer, const uint16_t slave_addr)
Interrupt based master transfer on I2C.
int qm_ss_i2c_save_context(const qm_ss_i2c_t i2c, qm_ss_i2c_context_t *const ctx)
Save SS I2C context.
qm_ss_i2c_t
Sensor Subsystem I2C.
uint32_t rx_len
Read buffer length.
int qm_ss_i2c_get_status(const qm_ss_i2c_t i2c, qm_ss_i2c_status_t *const status)
Retrieve SS I2C status.
Standard mode (100 Kbps).
bool stop
Generate master STOP.
qm_ss_i2c_status_t
QM SS I2C status type.
void * callback_data
User callback data.
int qm_ss_i2c_master_read(const qm_ss_i2c_t i2c, const uint16_t slave_addr, uint8_t *const data, uint32_t len, const bool stop, qm_ss_i2c_status_t *const status)
Master read of I2C.
int qm_ss_i2c_set_speed(const qm_ss_i2c_t i2c, const qm_ss_i2c_speed_t speed, const uint16_t lo_cnt, const uint16_t hi_cnt)
Set I2C speed.
qm_ss_i2c_addr_t
QM SS I2C addressing type.
qm_ss_i2c_speed_t speed
Standard, fast or fast plus mode.
QM SS I2C configuration type.
int qm_ss_i2c_restore_context(const qm_ss_i2c_t i2c, const qm_ss_i2c_context_t *const ctx)
Restore SS I2C context.
int qm_ss_i2c_set_config(const qm_ss_i2c_t i2c, const qm_ss_i2c_config_t *const cfg)
Set SS I2C configuration.
uint32_t tx_len
Write data length.
int qm_ss_i2c_irq_transfer_terminate(const qm_ss_i2c_t i2c)
Terminate I2C IRQ/DMA transfer.
qm_ss_i2c_addr_t address_mode
7 or 10 bit addressing.