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