i2c_hard_config.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. /*
  2. * Copyright (c) 2006-2023, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2024-02-06 Dyyt587 first version
  9. */
  10. #ifndef __I2C_HARD_CONFIG_H__
  11. #define __I2C_HARD_CONFIG_H__
  12. #include <rtthread.h>
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. #ifdef BSP_USING_HARD_I2C1
  17. #ifndef I2C1_BUS_CONFIG
  18. #define I2C1_BUS_CONFIG \
  19. { \
  20. .Instance = I2C1, \
  21. .timing=0x10707DBC, \
  22. .timeout=0x1000, \
  23. .name = "hwi2c1", \
  24. .evirq_type = I2C1_EV_IRQn, \
  25. .erirq_type = I2C1_ER_IRQn, \
  26. }
  27. #endif /* I2C1_BUS_CONFIG */
  28. #endif /* BSP_USING_HARD_I2C1 */
  29. #ifdef BSP_I2C1_TX_USING_DMA
  30. #ifndef I2C1_TX_DMA_CONFIG
  31. #define I2C1_TX_DMA_CONFIG \
  32. { \
  33. .dma_rcc = I2C1_TX_DMA_RCC, \
  34. .Instance = I2C1_TX_DMA_INSTANCE, \
  35. .dma_irq = I2C1_TX_DMA_IRQ, \
  36. .request = DMA_REQUEST_I2C1_TX \
  37. }
  38. #endif /* I2C1_TX_DMA_CONFIG */
  39. #endif /* BSP_I2C1_TX_USING_DMA */
  40. #ifdef BSP_I2C1_RX_USING_DMA
  41. #ifndef I2C1_RX_DMA_CONFIG
  42. #define I2C1_RX_DMA_CONFIG \
  43. { \
  44. .dma_rcc = I2C1_RX_DMA_RCC, \
  45. .Instance = I2C1_RX_DMA_INSTANCE, \
  46. .dma_irq = I2C1_RX_DMA_IRQ, \
  47. .request = DMA_REQUEST_I2C1_RX \
  48. }
  49. #endif /* I2C1_RX_DMA_CONFIG */
  50. #endif /* BSP_I2C1_RX_USING_DMA */
  51. #ifdef BSP_USING_HARD_I2C2
  52. #ifndef I2C2_BUS_CONFIG
  53. #define I2C2_BUS_CONFIG \
  54. { \
  55. .Instance = I2C2, \
  56. .timing=0x10707DBC, \
  57. .timeout=0x1000, \
  58. .name = "hwi2c2", \
  59. .evirq_type = I2C2_EV_IRQn, \
  60. .erirq_type = I2C2_ER_IRQn, \
  61. }
  62. #endif /* I2C2_BUS_CONFIG */
  63. #endif /* BSP_USING_HARD_I2C2 */
  64. #ifdef BSP_I2C2_TX_USING_DMA
  65. #ifndef I2C2_TX_DMA_CONFIG
  66. #define I2C2_TX_DMA_CONFIG \
  67. { \
  68. .dma_rcc = I2C2_TX_DMA_RCC, \
  69. .Instance = I2C2_TX_DMA_INSTANCE, \
  70. .dma_irq = I2C2_TX_DMA_IRQ, \
  71. .request = DMA_REQUEST_I2C2_TX \
  72. }
  73. #endif /* I2C2_TX_DMA_CONFIG */
  74. #endif /* BSP_I2C2_TX_USING_DMA */
  75. #ifdef BSP_I2C2_RX_USING_DMA
  76. #ifndef I2C2_RX_DMA_CONFIG
  77. #define I2C2_RX_DMA_CONFIG \
  78. { \
  79. .dma_rcc = I2C2_RX_DMA_RCC, \
  80. .Instance = I2C2_RX_DMA_INSTANCE, \
  81. .dma_irq = I2C2_RX_DMA_IRQ, \
  82. .request = DMA_REQUEST_I2C2_RX \
  83. }
  84. #endif /* I2C2_RX_DMA_CONFIG */
  85. #endif /* BSP_I2C2_RX_USING_DMA */
  86. #ifdef BSP_USING_HARD_I2C3
  87. #ifndef I2C3_BUS_CONFIG
  88. #define I2C3_BUS_CONFIG \
  89. { \
  90. .Instance = I2C3, \
  91. .timing=0x10707DBC, \
  92. .timeout=0x1000, \
  93. .name = "hwi2c3", \
  94. .evirq_type = I2C3_EV_IRQn, \
  95. .erirq_type = I2C3_ER_IRQn, \
  96. }
  97. #endif /* I2C3_BUS_CONFIG */
  98. #endif /* BSP_USING_HARD_I2C3 */
  99. #ifdef BSP_I2C3_TX_USING_DMA
  100. #ifndef I2C3_TX_DMA_CONFIG
  101. #define I2C3_TX_DMA_CONFIG \
  102. { \
  103. .dma_rcc = I2C3_TX_DMA_RCC, \
  104. .Instance = I2C3_TX_DMA_INSTANCE, \
  105. .dma_irq = I2C3_TX_DMA_IRQ, \
  106. .request = DMA_REQUEST_I2C3_TX \
  107. }
  108. #endif /* I2C3_TX_DMA_CONFIG */
  109. #endif /* BSP_I2C3_TX_USING_DMA */
  110. #ifdef BSP_I2C3_RX_USING_DMA
  111. #ifndef I2C3_RX_DMA_CONFIG
  112. #define I2C3_RX_DMA_CONFIG \
  113. { \
  114. .dma_rcc = I2C3_RX_DMA_RCC, \
  115. .Instance = I2C3_RX_DMA_INSTANCE, \
  116. .dma_irq = I2C3_RX_DMA_IRQ, \
  117. .request = DMA_REQUEST_I2C3_RX \
  118. }
  119. #endif /* I2C3_RX_DMA_CONFIG */
  120. #endif /* BSP_I2C3_RX_USING_DMA */
  121. #ifdef __cplusplus
  122. }
  123. #endif
  124. #endif /*__I2C_CONFIG_H__ */