i2c_config.h 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2024-07-31 shelton first version
  9. */
  10. #ifndef __I2C_CONFIG_H__
  11. #define __I2C_CONFIG_H__
  12. #include <rtthread.h>
  13. #include "dma_config.h"
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. #define HWI2C_OWN_ADDRESS 0x0
  18. #define I2C1_EVT_IRQHandler I2C1_EVT_IRQHandler
  19. #define I2C1_ERR_IRQHandler I2C1_ERR_IRQHandler
  20. #define I2C2_EVT_IRQHandler I2C2_EVT_IRQHandler
  21. #define I2C2_ERR_IRQHandler I2C2_ERR_IRQHandler
  22. #ifdef BSP_USING_HARD_I2C1
  23. #define I2C1_CONFIG \
  24. { \
  25. .i2c_x = I2C1, \
  26. .i2c_name = "hwi2c1", \
  27. .timing = 100000, \
  28. .ev_irqn = I2C1_EVT_IRQn, \
  29. .er_irqn = I2C1_ERR_IRQn, \
  30. }
  31. #endif /* BSP_USING_HARD_I2C1 */
  32. #ifdef BSP_I2C1_RX_USING_DMA
  33. #define I2C1_RX_DMA_CONFIG \
  34. { \
  35. .dma_channel = I2C1_RX_DMA_CHANNEL, \
  36. .dma_clock = I2C1_RX_DMA_CLOCK, \
  37. .dma_irqn = I2C1_RX_DMA_IRQ, \
  38. }
  39. #endif /* BSP_I2C1_RX_USING_DMA */
  40. #ifdef BSP_I2C1_TX_USING_DMA
  41. #define I2C1_TX_DMA_CONFIG \
  42. { \
  43. .dma_channel = I2C1_TX_DMA_CHANNEL, \
  44. .dma_clock = I2C1_TX_DMA_CLOCK, \
  45. .dma_irqn = I2C1_TX_DMA_IRQ, \
  46. }
  47. #endif /* BSP_I2C1_TX_USING_DMA */
  48. #ifdef BSP_USING_HARD_I2C2
  49. #define I2C2_CONFIG \
  50. { \
  51. .i2c_x = I2C2, \
  52. .i2c_name = "hwi2c2", \
  53. .timing = 100000, \
  54. .ev_irqn = I2C2_EVT_IRQn, \
  55. .er_irqn = I2C2_ERR_IRQn, \
  56. }
  57. #endif /* BSP_USING_HARD_I2C2 */
  58. #ifdef BSP_I2C2_RX_USING_DMA
  59. #define I2C2_RX_DMA_CONFIG \
  60. { \
  61. .dma_channel = I2C2_RX_DMA_CHANNEL, \
  62. .dma_clock = I2C2_RX_DMA_CLOCK, \
  63. .dma_irqn = I2C2_RX_DMA_IRQ, \
  64. }
  65. #endif /* BSP_I2C2_RX_USING_DMA */
  66. #ifdef BSP_I2C2_TX_USING_DMA
  67. #define I2C2_TX_DMA_CONFIG \
  68. { \
  69. .dma_channel = I2C2_TX_DMA_CHANNEL, \
  70. .dma_clock = I2C2_TX_DMA_CLOCK, \
  71. .dma_irqn = I2C2_TX_DMA_IRQ, \
  72. }
  73. #endif /* BSP_I2C2_TX_USING_DMA */
  74. #ifdef __cplusplus
  75. }
  76. #endif
  77. #endif /*__I2C_CONFIG_H__ */