drv_hard_i2c.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * Copyright (c) 2006-2025, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2021-12-20 BruceOu the first version
  9. */
  10. #ifndef __DRV_I2C__
  11. #define __DRV_I2C__
  12. #include <rtthread.h>
  13. #include <rthw.h>
  14. #include <rtdevice.h>
  15. #include <board.h>
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19. /* GD32 i2c driver */
  20. struct gd32_i2c_bus
  21. {
  22. uint32_t i2c_periph; /* Todo: 3bits */
  23. rcu_periph_enum per_clk; /* Todo: 5bits */
  24. rcu_periph_enum scl_gpio_clk; /* Todo: 5bits */
  25. rcu_periph_enum sda_gpio_clk; /* Todo: 5bits */
  26. uint32_t scl_port; /* Todo: 4bits */
  27. uint16_t scl_af; /* Todo: 4bits */
  28. uint16_t scl_pin; /* Todo: 4bits */
  29. uint32_t sda_port; /* Todo: 4bits */
  30. uint16_t sda_af; /* Todo: 4bits */
  31. uint16_t sda_pin; /* Todo: 4bits */
  32. struct rt_i2c_bus_device *i2c_bus;
  33. char *device_name;
  34. };
  35. #ifdef __cplusplus
  36. }
  37. #endif
  38. #endif /* __DRV_I2C__ */