1 /*
2  * Copyright (c) 2006-2022, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2021-08-31     AisinoChip   first version
9  */
10 
11 #ifndef __SPI_CONFIG_H__
12 #define __SPI_CONFIG_H__
13 
14 #include <rtconfig.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         .enable_id=EN_SPI1,                         \
28         .cs_port = SPI1_CS_PORT,                    \
29         .cs_pin = SPI1_CS_PIN,                      \
30         .cs_alternate = SPI1_CS_ALTERNATE,          \
31         .sck_port = SPI1_SCK_PORT,                  \
32         .sck_pin = SPI1_SCK_PIN,                    \
33         .sck_alternate = SPI1_SCK_ALTERNATE,        \
34         .mosi_port = SPI1_MOSI_PORT,                \
35         .mosi_pin = SPI1_MOSI_PIN,                  \
36         .mosi_alternate = SPI1_MOSI_ALTERNATE,      \
37         .miso_port = SPI1_MISO_PORT,                \
38         .miso_pin = SPI1_MISO_PIN,                  \
39         .miso_alternate = SPI1_MISO_ALTERNATE,      \
40         .wp_port = SPI1_WP_PORT,                    \
41         .wp_pin = SPI1_WP_PIN,                      \
42         .wp_alternate = SPI1_WP_ALTERNATE,          \
43         .hold_port = SPI1_HOLD_PORT,                \
44         .hold_pin = SPI1_HOLD_PIN,                  \
45         .hold_alternate = SPI1_HOLD_ALTERNATE,      \
46     }
47 #endif /* SPI1_BUS_CONFIG */
48 #endif /* BSP_USING_SPI1 */
49 
50 #ifdef BSP_SPI1_TX_USING_DMA
51 #ifndef SPI1_TX_DMA_CONFIG
52 #define SPI1_TX_DMA_CONFIG                          \
53     {                                               \
54         .dma_rcc = SPI1_TX_DMA_RCC,                 \
55         .Instance = SPI1_TX_DMA_INSTANCE,           \
56         .dma_irq = SPI1_TX_DMA_IRQ,                 \
57         .channel = SPI1_TX_DMA_CHANNEL,             \
58         .request = SPI1_TX_DMA_REQUEST,             \
59     }
60 #endif /* SPI1_TX_DMA_CONFIG */
61 #endif /* BSP_SPI1_TX_USING_DMA */
62 
63 #ifdef BSP_SPI1_RX_USING_DMA
64 #ifndef SPI1_RX_DMA_CONFIG
65 #define SPI1_RX_DMA_CONFIG                          \
66     {                                               \
67         .dma_rcc = SPI1_RX_DMA_RCC,                 \
68         .Instance = SPI1_RX_DMA_INSTANCE,           \
69         .dma_irq = SPI1_RX_DMA_IRQ,                 \
70         .channel = SPI1_RX_DMA_CHANNEL,             \
71         .request = SPI1_RX_DMA_REQUEST,             \
72     }
73 #endif /* SPI1_RX_DMA_CONFIG */
74 #endif /* BSP_SPI1_RX_USING_DMA */
75 
76 #ifdef BSP_USING_SPI2
77 #ifndef SPI2_BUS_CONFIG
78 #define SPI2_BUS_CONFIG                             \
79     {                                               \
80         .Instance = SPI2,                           \
81         .bus_name = "spi2",                         \
82         .irq_type = SPI2_IRQn,                      \
83         .enable_id=EN_SPI2,                         \
84         .cs_port = SPI2_CS_PORT,                    \
85         .cs_pin = SPI2_CS_PIN,                      \
86         .cs_alternate = SPI2_CS_ALTERNATE,          \
87         .sck_port = SPI2_SCK_PORT,                  \
88         .sck_pin = SPI2_SCK_PIN,                    \
89         .sck_alternate = SPI2_SCK_ALTERNATE,        \
90         .mosi_port = SPI2_MOSI_PORT,                \
91         .mosi_pin = SPI2_MOSI_PIN,                  \
92         .mosi_alternate = SPI2_MOSI_ALTERNATE,      \
93         .miso_port = SPI2_MISO_PORT,                \
94         .miso_pin = SPI2_MISO_PIN,                  \
95         .miso_alternate = SPI2_MISO_ALTERNATE,      \
96         .wp_port = SPI2_WP_PORT,                    \
97         .wp_pin = SPI2_WP_PIN,                      \
98         .wp_alternate = SPI2_WP_ALTERNATE,          \
99         .hold_port = SPI2_HOLD_PORT,                \
100         .hold_pin = SPI2_HOLD_PIN,                  \
101         .hold_alternate = SPI2_HOLD_ALTERNATE,      \
102     }
103 #endif /* SPI2_BUS_CONFIG */
104 #endif /* BSP_USING_SPI2 */
105 
106 #ifdef BSP_SPI2_TX_USING_DMA
107 #ifndef SPI2_TX_DMA_CONFIG
108 #define SPI2_TX_DMA_CONFIG                          \
109     {                                               \
110         .dma_rcc  = SPI2_TX_DMA_RCC,                \
111         .Instance = SPI2_TX_DMA_INSTANCE,           \
112         .dma_irq  = SPI2_TX_DMA_IRQ,                \
113         .channel = SPI2_TX_DMA_CHANNEL,             \
114         .request = SPI2_TX_DMA_REQUEST,             \
115     }
116 #endif /* SPI2_TX_DMA_CONFIG */
117 #endif /* BSP_SPI2_TX_USING_DMA */
118 
119 #ifdef BSP_SPI2_RX_USING_DMA
120 #ifndef SPI2_RX_DMA_CONFIG
121 #define SPI2_RX_DMA_CONFIG                          \
122     {                                               \
123         .dma_rcc  = SPI2_RX_DMA_RCC,                \
124         .Instance = SPI2_RX_DMA_INSTANCE,           \
125         .dma_irq  = SPI2_RX_DMA_IRQ,                \
126         .channel = SPI2_RX_DMA_CHANNEL,             \
127         .request = SPI2_RX_DMA_REQUEST,             \
128     }
129 #endif /* SPI2_RX_DMA_CONFIG */
130 #endif /* BSP_SPI2_RX_USING_DMA */
131 
132 #ifdef __cplusplus
133 }
134 #endif
135 
136 #endif /*__SPI_CONFIG_H__ */
137 
138 
139