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 = 0x80E02E2E, \ 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 .flex_channel = I2C1_RX_DMA_FLEX_CHANNEL, \ 46 .request_id = I2C1_RX_DMA_REQ_ID, \ 47 } 48 #endif /* BSP_I2C1_RX_USING_DMA */ 49 50 #ifdef BSP_I2C1_TX_USING_DMA 51 #define I2C1_TX_DMA_CONFIG \ 52 { \ 53 .dma_channel = I2C1_TX_DMA_CHANNEL, \ 54 .dma_clock = I2C1_TX_DMA_CLOCK, \ 55 .dma_irqn = I2C1_TX_DMA_IRQ, \ 56 .flex_channel = I2C1_TX_DMA_FLEX_CHANNEL, \ 57 .request_id = I2C1_TX_DMA_REQ_ID, \ 58 } 59 #endif /* BSP_I2C1_TX_USING_DMA */ 60 61 #ifdef BSP_USING_HARD_I2C2 62 #define I2C2_CONFIG \ 63 { \ 64 .i2c_x = I2C2, \ 65 .i2c_name = "hwi2c2", \ 66 .timing = 0x80E02E2E, \ 67 .ev_irqn = I2C2_EVT_IRQn, \ 68 .er_irqn = I2C2_ERR_IRQn, \ 69 } 70 #endif /* BSP_USING_HARD_I2C2 */ 71 72 #ifdef BSP_I2C2_RX_USING_DMA 73 #define I2C2_RX_DMA_CONFIG \ 74 { \ 75 .dma_channel = I2C2_RX_DMA_CHANNEL, \ 76 .dma_clock = I2C2_RX_DMA_CLOCK, \ 77 .dma_irqn = I2C2_RX_DMA_IRQ, \ 78 .flex_channel = I2C2_RX_DMA_FLEX_CHANNEL, \ 79 .request_id = I2C2_RX_DMA_REQ_ID, \ 80 } 81 #endif /* BSP_I2C2_RX_USING_DMA */ 82 83 #ifdef BSP_I2C2_TX_USING_DMA 84 #define I2C2_TX_DMA_CONFIG \ 85 { \ 86 .dma_channel = I2C2_TX_DMA_CHANNEL, \ 87 .dma_clock = I2C2_TX_DMA_CLOCK, \ 88 .dma_irqn = I2C2_TX_DMA_IRQ, \ 89 .flex_channel = I2C2_TX_DMA_FLEX_CHANNEL, \ 90 .request_id = I2C2_TX_DMA_REQ_ID, \ 91 } 92 #endif /* BSP_I2C2_TX_USING_DMA */ 93 94 #ifdef __cplusplus 95 } 96 #endif 97 98 #endif /*__I2C_CONFIG_H__ */ 99 100