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-09-03     AisinoChip   the first version
9  */
10 
11 #ifndef __I2C_CONFIG_H__
12 #define __I2C_CONFIG_H__
13 
14 #include <rtconfig.h>
15 #include "board.h"
16 
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 #if defined(RT_USING_I2C)
23 
24 #if defined(BSP_USING_I2C1)
25 
26 #if defined(BSP_I2C1_RX_USING_DMA)
27 #ifndef I2C1_DMA_RX_CONFIG
28 #define I2C1_DMA_RX_CONFIG                                         \
29     {                                                              \
30         .Instance = I2C1_RX_DMA_INSTANCE,                          \
31         .dma_rcc  = I2C1_RX_DMA_RCC,                               \
32         .dma_irq  = I2C1_RX_DMA_IRQ,                               \
33         .channel  = I2C1_RX_DMA_CHANNEL,                           \
34         .request  = I2C1_RX_DMA_REQUEST,                           \
35     }
36 #endif /* I2C1_DMA_RX_CONFIG */
37 #endif /* BSP_I2C1_RX_USING_DMA */
38 
39 #if defined(BSP_I2C1_TX_USING_DMA)
40 #ifndef I2C1_DMA_TX_CONFIG
41 #define I2C1_DMA_TX_CONFIG                                         \
42     {                                                              \
43         .Instance = I2C1_TX_DMA_INSTANCE,                          \
44         .dma_rcc  = I2C1_TX_DMA_RCC,                               \
45         .dma_irq  = I2C1_TX_DMA_IRQ,                               \
46         .channel  = I2C1_TX_DMA_CHANNEL,                           \
47         .request  = I2C1_TX_DMA_REQUEST,                           \
48     }
49 #endif /* I2C1_DMA_TX_CONFIG */
50 #endif /* BSP_I2C1_TX_USING_DMA */
51 
52 #ifndef I2C1_CONFIG
53 #define I2C1_CONFIG                                                \
54     {                                                              \
55         .name = "i2c1",                                            \
56         .Instance = I2C1,                                          \
57         .clock_speed = CLOCK_SPEED_STANDARD,                       \
58         .irq_type = I2C1_IRQn,                                     \
59         .enable_id = EN_I2C1,                                      \
60         .scl_port  = I2C1_SCL_PORT,                                \
61         .scl_pin  = I2C1_SCL_PIN,                                  \
62         .scl_alternate  = I2C1_SCL_ALTERNATE,                      \
63         .sda_port  = I2C1_SDA_PORT,                                \
64         .sda_pin  = I2C1_SDA_PIN,                                  \
65         .sda_alternate  = I2C1_SDA_ALTERNATE,                      \
66     }
67 #endif /* I2C1_CONFIG */
68 #endif /* BSP_USING_I2C1 */
69 
70 #if defined(BSP_USING_I2C2)
71 
72 #if defined(BSP_I2C2_RX_USING_DMA)
73 #ifndef I2C2_DMA_RX_CONFIG
74 #define I2C2_DMA_RX_CONFIG                                         \
75     {                                                              \
76         .Instance = I2C2_RX_DMA_INSTANCE,                          \
77         .dma_rcc  = I2C2_RX_DMA_RCC,                               \
78         .dma_irq  = I2C2_RX_DMA_IRQ,                               \
79         .channel  = I2C2_RX_DMA_CHANNEL,                           \
80         .request  = I2C2_RX_DMA_REQUEST,                           \
81     }
82 #endif /* I2C2_DMA_RX_CONFIG */
83 #endif /* BSP_I2C2_RX_USING_DMA */
84 
85 #if defined(BSP_I2C2_TX_USING_DMA)
86 #ifndef I2C2_DMA_TX_CONFIG
87 #define I2C2_DMA_TX_CONFIG                                         \
88     {                                                              \
89         .Instance = I2C2_TX_DMA_INSTANCE,                          \
90         .dma_rcc  = I2C2_TX_DMA_RCC,                               \
91         .dma_irq  = I2C2_TX_DMA_IRQ,                               \
92         .channel  = I2C2_TX_DMA_CHANNEL,                           \
93         .request  = I2C2_TX_DMA_REQUEST,                           \
94     }
95 #endif /* I2C2_DMA_TX_CONFIG */
96 #endif /* BSP_I2C2_TX_USING_DMA */
97 
98 #ifndef I2C2_CONFIG
99 #define I2C2_CONFIG                                                \
100     {                                                              \
101         .name = "i2c2",                                            \
102         .Instance = I2C2,                                          \
103         .clock_speed = CLOCK_SPEED_STANDARD,                       \
104         .irq_type = I2C2_IRQn,                                     \
105         .enable_id = EN_I2C2,                                      \
106         .scl_port  = I2C2_SCL_PORT,                                \
107         .scl_pin  = I2C2_SCL_PIN,                                  \
108         .scl_alternate  = I2C2_SCL_ALTERNATE,                      \
109         .sda_port  = I2C2_SDA_PORT,                                \
110         .sda_pin  = I2C2_SDA_PIN,                                  \
111         .sda_alternate  = I2C2_SDA_ALTERNATE,                      \
112     }
113 #endif /* I2C2_CONFIG */
114 #endif /* BSP_USING_I2C2 */
115 
116 #ifdef __cplusplus
117 }
118 #endif
119 
120 #endif /* RT_USING_I2C */
121 
122 #endif /* __I2C_CONFIG_H__ */
123 
124