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