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