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