drv_soft_i2c.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*
  2. * Copyright (c) 2006-2022, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2022-09-19 hg0720 the first version which add from wch
  9. */
  10. #ifndef __DRV_I2C__
  11. #define __DRV_I2C__
  12. #include <rtthread.h>
  13. #include <rthw.h>
  14. #include <rtdevice.h>
  15. /* ch32 config class */
  16. struct ch32_soft_i2c_config
  17. {
  18. rt_uint8_t scl;
  19. rt_uint8_t sda;
  20. const char *bus_name;
  21. };
  22. /* ch32 i2c dirver class */
  23. struct ch32_i2c
  24. {
  25. struct rt_i2c_bit_ops ops;
  26. struct rt_i2c_bus_device i2c2_bus;
  27. };
  28. #ifdef BSP_USING_I2C1
  29. #define I2C1_BUS_CONFIG \
  30. { \
  31. .scl = BSP_I2C1_SCL_PIN, \
  32. .sda = BSP_I2C1_SDA_PIN, \
  33. .bus_name = "i2c1", \
  34. }
  35. #endif
  36. #ifdef BSP_USING_I2C2
  37. #define I2C2_BUS_CONFIG \
  38. { \
  39. .scl = BSP_I2C2_SCL_PIN, \
  40. .sda = BSP_I2C2_SDA_PIN, \
  41. .bus_name = "i2c2", \
  42. }
  43. #endif
  44. int rt_hw_i2c_init(void);
  45. #endif