xref: /nrf52832-nimble/rt-thread/components/drivers/include/drivers/i2c-bit-ops.h (revision 104654410c56c573564690304ae786df310c91fc)
1 /*
2  * Copyright (c) 2006-2018, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author        Notes
8  * 2012-04-25     weety         first version
9  */
10 
11 #ifndef __I2C_BIT_OPS_H__
12 #define __I2C_BIT_OPS_H__
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 struct rt_i2c_bit_ops
19 {
20     void *data;            /* private data for lowlevel routines */
21     void (*set_sda)(void *data, rt_int32_t state);
22     void (*set_scl)(void *data, rt_int32_t state);
23     rt_int32_t (*get_sda)(void *data);
24     rt_int32_t (*get_scl)(void *data);
25 
26     void (*udelay)(rt_uint32_t us);
27 
28     rt_uint32_t delay_us;  /* scl and sda line delay */
29     rt_uint32_t timeout;   /* in tick */
30 };
31 
32 rt_err_t rt_i2c_bit_add_bus(struct rt_i2c_bus_device *bus,
33                             const char               *bus_name);
34 
35 #ifdef __cplusplus
36 }
37 #endif
38 
39 #endif
40