spi_config.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  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_IRQHandler
  19. #define SPI3_IRQHandler SPI3_IRQHandler
  20. #ifdef BSP_USING_SPI1
  21. #define SPI1_CONFIG \
  22. { \
  23. .spi_x = SPI1, \
  24. .spi_name = "spi1", \
  25. .irqn = SPI1_IRQn, \
  26. }
  27. #endif /* BSP_USING_SPI1 */
  28. #ifdef BSP_SPI1_RX_USING_DMA
  29. #define SPI1_RX_DMA_CONFIG \
  30. { \
  31. .dma_channel = SPI1_RX_DMA_CHANNEL, \
  32. .dma_clock = SPI1_RX_DMA_CLOCK, \
  33. .dma_irqn = SPI1_RX_DMA_IRQ, \
  34. .dmamux_channel = SPI1_RX_DMA_MUX_CHANNEL, \
  35. .request_id = SPI1_RX_DMA_REQ_ID, \
  36. }
  37. #endif /* BSP_SPI1_RX_USING_DMA */
  38. #ifdef BSP_SPI1_TX_USING_DMA
  39. #define SPI1_TX_DMA_CONFIG \
  40. { \
  41. .dma_channel = SPI1_TX_DMA_CHANNEL, \
  42. .dma_clock = SPI1_TX_DMA_CLOCK, \
  43. .dma_irqn = SPI1_TX_DMA_IRQ, \
  44. .dmamux_channel = SPI1_TX_DMA_MUX_CHANNEL, \
  45. .request_id = SPI1_TX_DMA_REQ_ID, \
  46. }
  47. #endif /* BSP_SPI1_TX_USING_DMA */
  48. #ifdef BSP_USING_SPI2
  49. #define SPI2_CONFIG \
  50. { \
  51. .spi_x = SPI2, \
  52. .spi_name = "spi2", \
  53. .irqn = SPI2_IRQn, \
  54. }
  55. #endif /* BSP_USING_SPI2 */
  56. #ifdef BSP_SPI2_RX_USING_DMA
  57. #define SPI2_RX_DMA_CONFIG \
  58. { \
  59. .dma_channel = SPI2_RX_DMA_CHANNEL, \
  60. .dma_clock = SPI2_RX_DMA_CLOCK, \
  61. .dma_irqn = SPI2_RX_DMA_IRQ, \
  62. .dmamux_channel = SPI2_RX_DMA_MUX_CHANNEL, \
  63. .request_id = SPI2_RX_DMA_REQ_ID, \
  64. }
  65. #endif /* BSP_SPI2_RX_USING_DMA */
  66. #ifdef BSP_SPI2_TX_USING_DMA
  67. #define SPI2_TX_DMA_CONFIG \
  68. { \
  69. .dma_channel = SPI2_TX_DMA_CHANNEL, \
  70. .dma_clock = SPI2_TX_DMA_CLOCK, \
  71. .dma_irqn = SPI2_TX_DMA_IRQ, \
  72. .dmamux_channel = SPI2_TX_DMA_MUX_CHANNEL, \
  73. .request_id = SPI2_TX_DMA_REQ_ID, \
  74. }
  75. #endif /* BSP_SPI2_TX_USING_DMA */
  76. #ifdef BSP_USING_SPI3
  77. #define SPI3_CONFIG \
  78. { \
  79. .spi_x = SPI3, \
  80. .spi_name = "spi3", \
  81. .irqn = SPI3_IRQn, \
  82. }
  83. #endif /* BSP_USING_SPI3 */
  84. #ifdef BSP_SPI3_RX_USING_DMA
  85. #define SPI3_RX_DMA_CONFIG \
  86. { \
  87. .dma_channel = SPI3_RX_DMA_CHANNEL, \
  88. .dma_clock = SPI3_RX_DMA_CLOCK, \
  89. .dma_irqn = SPI3_RX_DMA_IRQ, \
  90. .dmamux_channel = SPI3_RX_DMA_MUX_CHANNEL, \
  91. .request_id = SPI3_RX_DMA_REQ_ID, \
  92. }
  93. #endif /* BSP_SPI3_RX_USING_DMA */
  94. #ifdef BSP_SPI3_TX_USING_DMA
  95. #define SPI3_TX_DMA_CONFIG \
  96. { \
  97. .dma_channel = SPI3_TX_DMA_CHANNEL, \
  98. .dma_clock = SPI3_TX_DMA_CLOCK, \
  99. .dma_irqn = SPI3_TX_DMA_IRQ, \
  100. .dmamux_channel = SPI3_TX_DMA_MUX_CHANNEL, \
  101. .request_id = SPI3_TX_DMA_REQ_ID, \
  102. }
  103. #endif /* BSP_SPI3_TX_USING_DMA */
  104. #ifdef __cplusplus
  105. }
  106. #endif
  107. #endif /*__SPI_CONFIG_H__ */