i2c-bit-ops.h 873 B

123456789101112131415161718192021222324252627282930313233343536373839
  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. #ifndef __I2C_BIT_OPS_H__
  11. #define __I2C_BIT_OPS_H__
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15. struct rt_i2c_bit_ops
  16. {
  17. void *data; /* private data for lowlevel routines */
  18. void (*set_sda)(void *data, rt_int32_t state);
  19. void (*set_scl)(void *data, rt_int32_t state);
  20. rt_int32_t (*get_sda)(void *data);
  21. rt_int32_t (*get_scl)(void *data);
  22. void (*udelay)(rt_uint32_t us);
  23. rt_uint32_t delay_us; /* scl and sda line delay */
  24. rt_uint32_t timeout; /* in tick */
  25. };
  26. rt_err_t rt_i2c_bit_add_bus(struct rt_i2c_bus_device *bus,
  27. const char *bus_name);
  28. #ifdef __cplusplus
  29. }
  30. #endif
  31. #endif