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-05     SummerGift   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 __cplusplus
127 }
128 #endif
129 
130 #endif /*__SPI_CONFIG_H__ */
131 
132 
133 
134