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 * 2024-02-06 Dyyt587 first version 9 * 2024-04-23 Zeidan Add I2Cx_xx_DMA_CONFIG 10 */ 11 #ifndef __I2C_HARD_CONFIG_H__ 12 #define __I2C_HARD_CONFIG_H__ 13 14 #include <rtthread.h> 15 16 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 #ifdef BSP_USING_HARD_I2C1 21 #ifndef I2C1_BUS_CONFIG 22 #define I2C1_BUS_CONFIG \ 23 { \ 24 .Instance = I2C1, \ 25 .timeout=0x1000, \ 26 .name = "hwi2c1", \ 27 .evirq_type = I2C1_EV_IRQn, \ 28 .erirq_type = I2C1_ER_IRQn, \ 29 } 30 #endif /* I2C1_BUS_CONFIG */ 31 #endif /* BSP_USING_HARD_I2C1 */ 32 33 #ifdef BSP_I2C1_TX_USING_DMA 34 #ifndef I2C1_TX_DMA_CONFIG 35 #define I2C1_TX_DMA_CONFIG \ 36 { \ 37 .dma_rcc = I2C1_TX_DMA_RCC, \ 38 .Instance = I2C1_TX_DMA_INSTANCE, \ 39 .dma_irq = I2C1_TX_DMA_IRQ, \ 40 } 41 #endif /* I2C1_TX_DMA_CONFIG */ 42 #endif /* BSP_I2C1_TX_USING_DMA */ 43 44 #ifdef BSP_I2C1_RX_USING_DMA 45 #ifndef I2C1_RX_DMA_CONFIG 46 #define I2C1_RX_DMA_CONFIG \ 47 { \ 48 .dma_rcc = I2C1_RX_DMA_RCC, \ 49 .Instance = I2C1_RX_DMA_INSTANCE, \ 50 .dma_irq = I2C1_RX_DMA_IRQ, \ 51 } 52 #endif /* I2C1_RX_DMA_CONFIG */ 53 #endif /* BSP_I2C1_RX_USING_DMA */ 54 55 #ifdef BSP_USING_HARD_I2C2 56 #ifndef I2C2_BUS_CONFIG 57 #define I2C2_BUS_CONFIG \ 58 { \ 59 .Instance = I2C2, \ 60 .timeout=0x1000, \ 61 .name = "hwi2c2", \ 62 .evirq_type = I2C2_EV_IRQn, \ 63 .erirq_type = I2C2_ER_IRQn, \ 64 } 65 #endif /* I2C2_BUS_CONFIG */ 66 #endif /* BSP_USING_HARD_I2C2 */ 67 68 #ifdef BSP_I2C2_TX_USING_DMA 69 #ifndef I2C2_TX_DMA_CONFIG 70 #define I2C2_TX_DMA_CONFIG \ 71 { \ 72 .dma_rcc = I2C2_TX_DMA_RCC, \ 73 .Instance = I2C2_TX_DMA_INSTANCE, \ 74 .dma_irq = I2C2_TX_DMA_IRQ, \ 75 } 76 #endif /* I2C2_TX_DMA_CONFIG */ 77 #endif /* BSP_I2C2_TX_USING_DMA */ 78 79 #ifdef BSP_I2C2_RX_USING_DMA 80 #ifndef I2C2_RX_DMA_CONFIG 81 #define I2C2_RX_DMA_CONFIG \ 82 { \ 83 .dma_rcc = I2C2_RX_DMA_RCC, \ 84 .Instance = I2C2_RX_DMA_INSTANCE, \ 85 .dma_irq = I2C2_RX_DMA_IRQ, \ 86 } 87 #endif /* I2C2_RX_DMA_CONFIG */ 88 #endif /* BSP_I2C2_RX_USING_DMA */ 89 90 #ifdef BSP_USING_HARD_I2C3 91 #ifndef I2C3_BUS_CONFIG 92 #define I2C3_BUS_CONFIG \ 93 { \ 94 .Instance = I2C3, \ 95 .timeout=0x1000, \ 96 .name = "hwi2c3", \ 97 .evirq_type = I2C3_EV_IRQn, \ 98 .erirq_type = I2C3_ER_IRQn, \ 99 } 100 #endif /* I2C3_BUS_CONFIG */ 101 #endif /* BSP_USING_HARD_I2C3 */ 102 103 #ifdef BSP_I2C3_TX_USING_DMA 104 #ifndef I2C3_TX_DMA_CONFIG 105 #define I2C3_TX_DMA_CONFIG \ 106 { \ 107 .dma_rcc = I2C3_TX_DMA_RCC, \ 108 .Instance = I2C3_TX_DMA_INSTANCE, \ 109 .dma_irq = I2C3_TX_DMA_IRQ, \ 110 } 111 #endif /* I2C3_TX_DMA_CONFIG */ 112 #endif /* BSP_I2C3_TX_USING_DMA */ 113 114 #ifdef BSP_I2C3_RX_USING_DMA 115 #ifndef I2C3_RX_DMA_CONFIG 116 #define I2C3_RX_DMA_CONFIG \ 117 { \ 118 .dma_rcc = I2C3_RX_DMA_RCC, \ 119 .Instance = I2C3_RX_DMA_INSTANCE, \ 120 .dma_irq = I2C3_RX_DMA_IRQ, \ 121 } 122 #endif /* I2C3_RX_DMA_CONFIG */ 123 #endif /* BSP_I2C3_RX_USING_DMA */ 124 125 #ifdef __cplusplus 126 } 127 #endif 128 129 #endif /*__I2C_HARD_CONFIG_H__ */ 130