i2c_config.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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. * 2021-09-03 AisinoChip the first version
  9. */
  10. #ifndef __I2C_CONFIG_H__
  11. #define __I2C_CONFIG_H__
  12. #include <rtconfig.h>
  13. #include "board.h"
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. #if defined(RT_USING_I2C)
  18. #if defined(BSP_USING_I2C1)
  19. #if defined(BSP_I2C1_RX_USING_DMA)
  20. #ifndef I2C1_DMA_RX_CONFIG
  21. #define I2C1_DMA_RX_CONFIG \
  22. { \
  23. .Instance = I2C1_RX_DMA_INSTANCE, \
  24. .dma_rcc = I2C1_RX_DMA_RCC, \
  25. .dma_irq = I2C1_RX_DMA_IRQ, \
  26. .channel = I2C1_RX_DMA_CHANNEL, \
  27. .request = I2C1_RX_DMA_REQUEST, \
  28. }
  29. #endif /* I2C1_DMA_RX_CONFIG */
  30. #endif /* BSP_I2C1_RX_USING_DMA */
  31. #if defined(BSP_I2C1_TX_USING_DMA)
  32. #ifndef I2C1_DMA_TX_CONFIG
  33. #define I2C1_DMA_TX_CONFIG \
  34. { \
  35. .Instance = I2C1_TX_DMA_INSTANCE, \
  36. .dma_rcc = I2C1_TX_DMA_RCC, \
  37. .dma_irq = I2C1_TX_DMA_IRQ, \
  38. .channel = I2C1_TX_DMA_CHANNEL, \
  39. .request = I2C1_TX_DMA_REQUEST, \
  40. }
  41. #endif /* I2C1_DMA_TX_CONFIG */
  42. #endif /* BSP_I2C1_TX_USING_DMA */
  43. #ifndef I2C1_CONFIG
  44. #define I2C1_CONFIG \
  45. { \
  46. .name = "i2c1", \
  47. .Instance = I2C1, \
  48. .clock_speed = CLOCK_SPEED_STANDARD, \
  49. .irq_type = I2C1_IRQn, \
  50. .enable_id = EN_I2C1, \
  51. .scl_port = I2C1_SCL_PORT, \
  52. .scl_pin = I2C1_SCL_PIN, \
  53. .scl_alternate = I2C1_SCL_ALTERNATE, \
  54. .sda_port = I2C1_SDA_PORT, \
  55. .sda_pin = I2C1_SDA_PIN, \
  56. .sda_alternate = I2C1_SDA_ALTERNATE, \
  57. }
  58. #endif /* I2C1_CONFIG */
  59. #endif /* BSP_USING_I2C1 */
  60. #if defined(BSP_USING_I2C2)
  61. #if defined(BSP_I2C2_RX_USING_DMA)
  62. #ifndef I2C2_DMA_RX_CONFIG
  63. #define I2C2_DMA_RX_CONFIG \
  64. { \
  65. .Instance = I2C2_RX_DMA_INSTANCE, \
  66. .dma_rcc = I2C2_RX_DMA_RCC, \
  67. .dma_irq = I2C2_RX_DMA_IRQ, \
  68. .channel = I2C2_RX_DMA_CHANNEL, \
  69. .request = I2C2_RX_DMA_REQUEST, \
  70. }
  71. #endif /* I2C2_DMA_RX_CONFIG */
  72. #endif /* BSP_I2C2_RX_USING_DMA */
  73. #if defined(BSP_I2C2_TX_USING_DMA)
  74. #ifndef I2C2_DMA_TX_CONFIG
  75. #define I2C2_DMA_TX_CONFIG \
  76. { \
  77. .Instance = I2C2_TX_DMA_INSTANCE, \
  78. .dma_rcc = I2C2_TX_DMA_RCC, \
  79. .dma_irq = I2C2_TX_DMA_IRQ, \
  80. .channel = I2C2_TX_DMA_CHANNEL, \
  81. .request = I2C2_TX_DMA_REQUEST, \
  82. }
  83. #endif /* I2C2_DMA_TX_CONFIG */
  84. #endif /* BSP_I2C2_TX_USING_DMA */
  85. #ifndef I2C2_CONFIG
  86. #define I2C2_CONFIG \
  87. { \
  88. .name = "i2c2", \
  89. .Instance = I2C2, \
  90. .clock_speed = CLOCK_SPEED_STANDARD, \
  91. .irq_type = I2C2_IRQn, \
  92. .enable_id = EN_I2C2, \
  93. .scl_port = I2C2_SCL_PORT, \
  94. .scl_pin = I2C2_SCL_PIN, \
  95. .scl_alternate = I2C2_SCL_ALTERNATE, \
  96. .sda_port = I2C2_SDA_PORT, \
  97. .sda_pin = I2C2_SDA_PIN, \
  98. .sda_alternate = I2C2_SDA_ALTERNATE, \
  99. }
  100. #endif /* I2C2_CONFIG */
  101. #endif /* BSP_USING_I2C2 */
  102. #ifdef __cplusplus
  103. }
  104. #endif
  105. #endif /* RT_USING_I2C */
  106. #endif /* __I2C_CONFIG_H__ */