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