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 * 2018-11-06 SummerGift first version 9 * 2019-01-03 zylx modify DMA support 10 */ 11 12 #ifndef __SPI_CONFIG_H__ 13 #define __SPI_CONFIG_H__ 14 15 #include <rtthread.h> 16 17 #ifdef __cplusplus 18 extern "C" { 19 #endif 20 21 #ifdef BSP_USING_SPI1 22 #ifndef SPI1_BUS_CONFIG 23 #define SPI1_BUS_CONFIG \ 24 { \ 25 .Instance = SPI1, \ 26 .bus_name = "spi1", \ 27 .irq_type = SPI1_IRQn, \ 28 } 29 #endif /* SPI1_BUS_CONFIG */ 30 #endif /* BSP_USING_SPI1 */ 31 32 #ifdef BSP_SPI1_TX_USING_DMA 33 #ifndef SPI1_TX_DMA_CONFIG 34 #define SPI1_TX_DMA_CONFIG \ 35 { \ 36 .dma_rcc = SPI1_TX_DMA_RCC, \ 37 .Instance = SPI1_TX_DMA_INSTANCE, \ 38 .channel = SPI1_TX_DMA_CHANNEL, \ 39 .dma_irq = SPI1_TX_DMA_IRQ, \ 40 } 41 #endif /* SPI1_TX_DMA_CONFIG */ 42 #endif /* BSP_SPI1_TX_USING_DMA */ 43 44 #ifdef BSP_SPI1_RX_USING_DMA 45 #ifndef SPI1_RX_DMA_CONFIG 46 #define SPI1_RX_DMA_CONFIG \ 47 { \ 48 .dma_rcc = SPI1_RX_DMA_RCC, \ 49 .Instance = SPI1_RX_DMA_INSTANCE, \ 50 .channel = SPI1_RX_DMA_CHANNEL, \ 51 .dma_irq = SPI1_RX_DMA_IRQ, \ 52 } 53 #endif /* SPI1_RX_DMA_CONFIG */ 54 #endif /* BSP_SPI1_RX_USING_DMA */ 55 56 #ifdef BSP_USING_SPI2 57 #ifndef SPI2_BUS_CONFIG 58 #define SPI2_BUS_CONFIG \ 59 { \ 60 .Instance = SPI2, \ 61 .bus_name = "spi2", \ 62 .irq_type = SPI2_IRQn, \ 63 } 64 #endif /* SPI2_BUS_CONFIG */ 65 #endif /* BSP_USING_SPI2 */ 66 67 #ifdef BSP_SPI2_TX_USING_DMA 68 #ifndef SPI2_TX_DMA_CONFIG 69 #define SPI2_TX_DMA_CONFIG \ 70 { \ 71 .dma_rcc = SPI2_TX_DMA_RCC, \ 72 .Instance = SPI2_TX_DMA_INSTANCE, \ 73 .channel = SPI2_TX_DMA_CHANNEL, \ 74 .dma_irq = SPI2_TX_DMA_IRQ, \ 75 } 76 #endif /* SPI2_TX_DMA_CONFIG */ 77 #endif /* BSP_SPI2_TX_USING_DMA */ 78 79 #ifdef BSP_SPI2_RX_USING_DMA 80 #ifndef SPI2_RX_DMA_CONFIG 81 #define SPI2_RX_DMA_CONFIG \ 82 { \ 83 .dma_rcc = SPI2_RX_DMA_RCC, \ 84 .Instance = SPI2_RX_DMA_INSTANCE, \ 85 .channel = SPI2_RX_DMA_CHANNEL, \ 86 .dma_irq = SPI2_RX_DMA_IRQ, \ 87 } 88 #endif /* SPI2_RX_DMA_CONFIG */ 89 #endif /* BSP_SPI2_RX_USING_DMA */ 90 91 #ifdef BSP_USING_SPI3 92 #ifndef SPI3_BUS_CONFIG 93 #define SPI3_BUS_CONFIG \ 94 { \ 95 .Instance = SPI3, \ 96 .bus_name = "spi3", \ 97 .irq_type = SPI3_IRQn, \ 98 } 99 #endif /* SPI3_BUS_CONFIG */ 100 #endif /* BSP_USING_SPI3 */ 101 102 #ifdef BSP_SPI3_TX_USING_DMA 103 #ifndef SPI3_TX_DMA_CONFIG 104 #define SPI3_TX_DMA_CONFIG \ 105 { \ 106 .dma_rcc = SPI3_TX_DMA_RCC, \ 107 .Instance = SPI3_TX_DMA_INSTANCE, \ 108 .channel = SPI3_TX_DMA_CHANNEL, \ 109 .dma_irq = SPI3_TX_DMA_IRQ, \ 110 } 111 #endif /* SPI3_TX_DMA_CONFIG */ 112 #endif /* BSP_SPI3_TX_USING_DMA */ 113 114 #ifdef BSP_SPI3_RX_USING_DMA 115 #ifndef SPI3_RX_DMA_CONFIG 116 #define SPI3_RX_DMA_CONFIG \ 117 { \ 118 .dma_rcc = SPI3_RX_DMA_RCC, \ 119 .Instance = SPI3_RX_DMA_INSTANCE, \ 120 .channel = SPI3_RX_DMA_CHANNEL, \ 121 .dma_irq = SPI3_RX_DMA_IRQ, \ 122 } 123 #endif /* SPI3_RX_DMA_CONFIG */ 124 #endif /* BSP_SPI3_RX_USING_DMA */ 125 126 #ifdef BSP_USING_SPI4 127 #ifndef SPI4_BUS_CONFIG 128 #define SPI4_BUS_CONFIG \ 129 { \ 130 .Instance = SPI4, \ 131 .bus_name = "spi4", \ 132 .irq_type = SPI4_IRQn, \ 133 } 134 #endif /* SPI4_BUS_CONFIG */ 135 #endif /* BSP_USING_SPI4 */ 136 137 #ifdef BSP_SPI4_TX_USING_DMA 138 #ifndef SPI4_TX_DMA_CONFIG 139 #define SPI4_TX_DMA_CONFIG \ 140 { \ 141 .dma_rcc = SPI4_TX_DMA_RCC, \ 142 .Instance = SPI4_TX_DMA_INSTANCE, \ 143 .channel = SPI4_TX_DMA_CHANNEL, \ 144 .dma_irq = SPI4_TX_DMA_IRQ, \ 145 } 146 #endif /* SPI4_TX_DMA_CONFIG */ 147 #endif /* BSP_SPI4_TX_USING_DMA */ 148 149 #ifdef BSP_SPI4_RX_USING_DMA 150 #ifndef SPI4_RX_DMA_CONFIG 151 #define SPI4_RX_DMA_CONFIG \ 152 { \ 153 .dma_rcc = SPI4_RX_DMA_RCC, \ 154 .Instance = SPI4_RX_DMA_INSTANCE, \ 155 .channel = SPI4_RX_DMA_CHANNEL, \ 156 .dma_irq = SPI4_RX_DMA_IRQ, \ 157 } 158 #endif /* SPI4_RX_DMA_CONFIG */ 159 #endif /* BSP_SPI4_RX_USING_DMA */ 160 161 #ifdef BSP_USING_SPI5 162 #ifndef SPI5_BUS_CONFIG 163 #define SPI5_BUS_CONFIG \ 164 { \ 165 .Instance = SPI5, \ 166 .bus_name = "spi5", \ 167 .irq_type = SPI5_IRQn, \ 168 } 169 #endif /* SPI5_BUS_CONFIG */ 170 #endif /* BSP_USING_SPI5 */ 171 172 #ifdef BSP_SPI5_TX_USING_DMA 173 #ifndef SPI5_TX_DMA_CONFIG 174 #define SPI5_TX_DMA_CONFIG \ 175 { \ 176 .dma_rcc = SPI5_TX_DMA_RCC, \ 177 .Instance = SPI5_TX_DMA_INSTANCE, \ 178 .channel = SPI5_TX_DMA_CHANNEL, \ 179 .dma_irq = SPI5_TX_DMA_IRQ, \ 180 } 181 #endif /* SPI5_TX_DMA_CONFIG */ 182 #endif /* BSP_SPI5_TX_USING_DMA */ 183 184 #ifdef BSP_SPI5_RX_USING_DMA 185 #ifndef SPI5_RX_DMA_CONFIG 186 #define SPI5_RX_DMA_CONFIG \ 187 { \ 188 .dma_rcc = SPI5_RX_DMA_RCC, \ 189 .Instance = SPI5_RX_DMA_INSTANCE, \ 190 .channel = SPI5_RX_DMA_CHANNEL, \ 191 .dma_irq = SPI5_RX_DMA_IRQ, \ 192 } 193 #endif /* SPI5_RX_DMA_CONFIG */ 194 #endif /* BSP_SPI5_RX_USING_DMA */ 195 196 #ifdef __cplusplus 197 } 198 #endif 199 200 #endif /*__SPI_CONFIG_H__ */ 201