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-08-30     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 
24 #ifdef BSP_USING_SPI1
25 #define SPI1_CONFIG                                 \
26     {                                               \
27         .spi_x = SPI1,                              \
28         .spi_name = "spi1",                         \
29         .irqn = SPI1_IRQn,                          \
30     }
31 #endif /* BSP_USING_SPI1 */
32 
33 #ifdef BSP_SPI1_RX_USING_DMA
34 #define SPI1_RX_DMA_CONFIG                          \
35     {                                               \
36         .dma_channel = SPI1_RX_DMA_CHANNEL,         \
37         .dma_clock = SPI1_RX_DMA_CLOCK,             \
38         .dma_irqn = SPI1_RX_DMA_IRQ,                \
39         .dmamux_channel = SPI1_RX_DMA_MUX_CHANNEL,  \
40         .request_id = SPI1_RX_DMA_REQ_ID,           \
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         .dmamux_channel = SPI1_TX_DMA_MUX_CHANNEL,  \
51         .request_id = SPI1_TX_DMA_REQ_ID,           \
52     }
53 #endif /* BSP_SPI1_TX_USING_DMA */
54 
55 #ifdef BSP_USING_SPI2
56 #define SPI2_CONFIG                                 \
57     {                                               \
58         .spi_x = SPI2,                              \
59         .spi_name = "spi2",                         \
60         .irqn = SPI2_IRQn,                          \
61     }
62 #endif /* BSP_USING_SPI2 */
63 
64 #ifdef BSP_SPI2_RX_USING_DMA
65 #define SPI2_RX_DMA_CONFIG                          \
66     {                                               \
67         .dma_channel = SPI2_RX_DMA_CHANNEL,         \
68         .dma_clock = SPI2_RX_DMA_CLOCK,             \
69         .dma_irqn = SPI2_RX_DMA_IRQ,                \
70         .dmamux_channel = SPI2_RX_DMA_MUX_CHANNEL,  \
71         .request_id = SPI2_RX_DMA_REQ_ID,           \
72     }
73 #endif /* BSP_SPI2_RX_USING_DMA */
74 
75 #ifdef BSP_SPI2_TX_USING_DMA
76 #define SPI2_TX_DMA_CONFIG                          \
77     {                                               \
78         .dma_channel = SPI2_TX_DMA_CHANNEL,         \
79         .dma_clock = SPI2_TX_DMA_CLOCK,             \
80         .dma_irqn = SPI2_TX_DMA_IRQ,                \
81         .dmamux_channel = SPI2_TX_DMA_MUX_CHANNEL,  \
82         .request_id = SPI2_TX_DMA_REQ_ID,           \
83     }
84 #endif /* BSP_SPI2_TX_USING_DMA */
85 
86 #ifdef __cplusplus
87 }
88 #endif
89 
90 #endif /*__SPI_CONFIG_H__ */
91 
92 
93 
94