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