spi_config.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  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. * 2022-11-18 shelton first version
  9. */
  10. #ifndef __SPI_CONFIG_H__
  11. #define __SPI_CONFIG_H__
  12. #include <rtthread.h>
  13. #include "dma_config.h"
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. #define SPI1_IRQHandler SPI1_IRQHandler
  18. #define SPI2_IRQHandler SPI2_I2S2EXT_IRQHandler
  19. #define SPI3_IRQHandler SPI3_I2S3EXT_IRQHandler
  20. #define SPI4_IRQHandler SPI4_IRQHandler
  21. #ifdef BSP_USING_SPI1
  22. #define SPI1_CONFIG \
  23. { \
  24. .spi_x = SPI1, \
  25. .spi_name = "spi1", \
  26. .irqn = SPI1_IRQn, \
  27. }
  28. #endif /* BSP_USING_SPI1 */
  29. #ifdef BSP_SPI1_RX_USING_DMA
  30. #define SPI1_RX_DMA_CONFIG \
  31. { \
  32. .dma_channel = SPI1_RX_DMA_CHANNEL, \
  33. .dma_clock = SPI1_RX_DMA_CLOCK, \
  34. .dma_irqn = SPI1_RX_DMA_IRQ, \
  35. }
  36. #endif /* BSP_SPI1_RX_USING_DMA */
  37. #ifdef BSP_SPI1_TX_USING_DMA
  38. #define SPI1_TX_DMA_CONFIG \
  39. { \
  40. .dma_channel = SPI1_TX_DMA_CHANNEL, \
  41. .dma_clock = SPI1_TX_DMA_CLOCK, \
  42. .dma_irqn = SPI1_TX_DMA_IRQ, \
  43. }
  44. #endif /* BSP_SPI1_TX_USING_DMA */
  45. #ifdef BSP_USING_SPI2
  46. #define SPI2_CONFIG \
  47. { \
  48. .spi_x = SPI2, \
  49. .spi_name = "spi2", \
  50. .irqn = SPI2_I2S2EXT_IRQn, \
  51. }
  52. #endif /* BSP_USING_SPI2 */
  53. #ifdef BSP_SPI2_RX_USING_DMA
  54. #define SPI2_RX_DMA_CONFIG \
  55. { \
  56. .dma_channel = SPI2_RX_DMA_CHANNEL, \
  57. .dma_clock = SPI2_RX_DMA_CLOCK, \
  58. .dma_irqn = SPI2_RX_DMA_IRQ, \
  59. }
  60. #endif /* BSP_SPI2_RX_USING_DMA */
  61. #ifdef BSP_SPI2_TX_USING_DMA
  62. #define SPI2_TX_DMA_CONFIG \
  63. { \
  64. .dma_channel = SPI2_TX_DMA_CHANNEL, \
  65. .dma_clock = SPI2_TX_DMA_CLOCK, \
  66. .dma_irqn = SPI2_TX_DMA_IRQ, \
  67. }
  68. #endif /* BSP_SPI2_TX_USING_DMA */
  69. #ifdef BSP_USING_SPI3
  70. #define SPI3_CONFIG \
  71. { \
  72. .spi_x = SPI3, \
  73. .spi_name = "spi3", \
  74. .irqn = SPI3_I2S3EXT_IRQn, \
  75. }
  76. #endif /* BSP_USING_SPI3 */
  77. #ifdef BSP_SPI3_RX_USING_DMA
  78. #define SPI3_RX_DMA_CONFIG \
  79. { \
  80. .dma_channel = SPI3_RX_DMA_CHANNEL, \
  81. .dma_clock = SPI3_RX_DMA_CLOCK, \
  82. .dma_irqn = SPI3_RX_DMA_IRQ, \
  83. }
  84. #endif /* BSP_SPI3_RX_USING_DMA */
  85. #ifdef BSP_SPI3_TX_USING_DMA
  86. #define SPI3_TX_DMA_CONFIG \
  87. { \
  88. .dma_channel = SPI3_TX_DMA_CHANNEL, \
  89. .dma_clock = SPI3_TX_DMA_CLOCK, \
  90. .dma_irqn = SPI3_TX_DMA_IRQ, \
  91. }
  92. #endif /* BSP_SPI3_TX_USING_DMA */
  93. #ifdef BSP_USING_SPI4
  94. #define SPI4_CONFIG \
  95. { \
  96. .spi_x = SPI4, \
  97. .spi_name = "spi4", \
  98. .irqn = SPI4_IRQn, \
  99. }
  100. #endif /* BSP_USING_SPI4 */
  101. #ifdef BSP_SPI4_RX_USING_DMA
  102. #define SPI4_RX_DMA_CONFIG \
  103. { \
  104. .dma_channel = SPI4_RX_DMA_CHANNEL, \
  105. .dma_clock = SPI4_RX_DMA_CLOCK, \
  106. .dma_irqn = SPI4_RX_DMA_IRQ, \
  107. }
  108. #endif /* BSP_SPI4_RX_USING_DMA */
  109. #ifdef BSP_SPI4_TX_USING_DMA
  110. #define SPI4_TX_DMA_CONFIG \
  111. { \
  112. .dma_channel = SPI4_TX_DMA_CHANNEL, \
  113. .dma_clock = SPI4_TX_DMA_CLOCK, \
  114. .dma_irqn = SPI4_TX_DMA_IRQ, \
  115. }
  116. #endif /* BSP_SPI4_TX_USING_DMA */
  117. #ifdef __cplusplus
  118. }
  119. #endif
  120. #endif /*__SPI_CONFIG_H__ */