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-07-31 shelton first version 9 */ 10 11 #ifndef __I2C_CONFIG_H__ 12 #define __I2C_CONFIG_H__ 13 14 #include <rtthread.h> 15 #include "dma_config.h" 16 17 #ifdef __cplusplus 18 extern "C" { 19 #endif 20 21 #define HWI2C_OWN_ADDRESS 0x0 22 23 #define I2C1_EVT_IRQHandler I2C1_EVT_IRQHandler 24 #define I2C1_ERR_IRQHandler I2C1_ERR_IRQHandler 25 #define I2C2_EVT_IRQHandler I2C2_EVT_IRQHandler 26 #define I2C2_ERR_IRQHandler I2C2_ERR_IRQHandler 27 28 #ifdef BSP_USING_HARD_I2C1 29 #define I2C1_CONFIG \ 30 { \ 31 .i2c_x = I2C1, \ 32 .i2c_name = "hwi2c1", \ 33 .timing = 100000, \ 34 .ev_irqn = I2C1_EVT_IRQn, \ 35 .er_irqn = I2C1_ERR_IRQn, \ 36 } 37 #endif /* BSP_USING_HARD_I2C1 */ 38 39 #ifdef BSP_I2C1_RX_USING_DMA 40 #define I2C1_RX_DMA_CONFIG \ 41 { \ 42 .dma_channel = I2C1_RX_DMA_CHANNEL, \ 43 .dma_clock = I2C1_RX_DMA_CLOCK, \ 44 .dma_irqn = I2C1_RX_DMA_IRQ, \ 45 } 46 #endif /* BSP_I2C1_RX_USING_DMA */ 47 48 #ifdef BSP_I2C1_TX_USING_DMA 49 #define I2C1_TX_DMA_CONFIG \ 50 { \ 51 .dma_channel = I2C1_TX_DMA_CHANNEL, \ 52 .dma_clock = I2C1_TX_DMA_CLOCK, \ 53 .dma_irqn = I2C1_TX_DMA_IRQ, \ 54 } 55 #endif /* BSP_I2C1_TX_USING_DMA */ 56 57 #ifdef BSP_USING_HARD_I2C2 58 #define I2C2_CONFIG \ 59 { \ 60 .i2c_x = I2C2, \ 61 .i2c_name = "hwi2c2", \ 62 .timing = 100000, \ 63 .ev_irqn = I2C2_EVT_IRQn, \ 64 .er_irqn = I2C2_ERR_IRQn, \ 65 } 66 #endif /* BSP_USING_HARD_I2C2 */ 67 68 #ifdef BSP_I2C2_RX_USING_DMA 69 #define I2C2_RX_DMA_CONFIG \ 70 { \ 71 .dma_channel = I2C2_RX_DMA_CHANNEL, \ 72 .dma_clock = I2C2_RX_DMA_CLOCK, \ 73 .dma_irqn = I2C2_RX_DMA_IRQ, \ 74 } 75 #endif /* BSP_I2C2_RX_USING_DMA */ 76 77 #ifdef BSP_I2C2_TX_USING_DMA 78 #define I2C2_TX_DMA_CONFIG \ 79 { \ 80 .dma_channel = I2C2_TX_DMA_CHANNEL, \ 81 .dma_clock = I2C2_TX_DMA_CLOCK, \ 82 .dma_irqn = I2C2_TX_DMA_IRQ, \ 83 } 84 #endif /* BSP_I2C2_TX_USING_DMA */ 85 86 #ifdef __cplusplus 87 } 88 #endif 89 90 #endif /*__I2C_CONFIG_H__ */ 91 92