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