mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2025-12-28 10:00:24 +00:00
[i2c] adjust the timing for I2C initialization
This commit is contained in:
@@ -376,6 +376,12 @@ static rt_ssize_t i2c_bit_xfer(struct rt_i2c_bus_device *bus,
|
||||
rt_uint32_t i;
|
||||
rt_uint16_t ignore_nack;
|
||||
|
||||
if((ops->i2c_pin_init_flag == RT_FALSE) && (ops->pin_init != RT_NULL))
|
||||
{
|
||||
ops->pin_init();
|
||||
ops->i2c_pin_init_flag = RT_TRUE;
|
||||
}
|
||||
|
||||
if (num == 0) return 0;
|
||||
|
||||
for (i = 0; i < num; i++)
|
||||
|
||||
@@ -27,6 +27,9 @@ struct rt_i2c_bit_ops
|
||||
|
||||
rt_uint32_t delay_us; /* scl and sda line delay */
|
||||
rt_uint32_t timeout; /* in tick */
|
||||
|
||||
void (*pin_init)(void);
|
||||
rt_bool_t i2c_pin_init_flag;
|
||||
};
|
||||
|
||||
rt_err_t rt_i2c_bit_add_bus(struct rt_i2c_bus_device *bus,
|
||||
|
||||
Reference in New Issue
Block a user