1 /*
2  * Copyright (C) 2022-2024, Xiaohua Semiconductor Co., Ltd.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2023-02-14     CDT          first version
9  */
10 
11 #ifndef __SDIO_CONFIG_H__
12 #define __SDIO_CONFIG_H__
13 
14 #include <rtthread.h>
15 #include "irq_config.h"
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 
22 #if defined(BSP_USING_SDIO1)
23 #ifndef SDIO1_BUS_CONFIG
24 #define SDIO1_BUS_CONFIG                                        \
25     {                                                           \
26         .name       = "sdio1",                                  \
27         .instance   = CM_SDIOC1,                                \
28         .clock      = FCG1_PERIPH_SDIOC1,                       \
29         .irq_config =                                           \
30         {                                                       \
31             .irq_num  = BSP_SDIO1_IRQ_NUM,                      \
32             .irq_prio = BSP_SDIO1_IRQ_PRIO,                     \
33             .int_src  = INT_SRC_SDIOC1_SD,                      \
34         },                                                      \
35         .dma_rx =                                               \
36         {                                                       \
37             .Instance       = SDIO1_RX_DMA_INSTANCE,            \
38             .channel        = SDIO1_RX_DMA_CHANNEL,             \
39             .clock          = SDIO1_RX_DMA_CLOCK,               \
40             .trigger_select = SDIO1_RX_DMA_TRIG_SELECT,         \
41             .trigger_event  = EVT_SRC_SDIOC1_DMAR,              \
42         },                                                      \
43         .dma_tx =                                               \
44         {                                                       \
45             .Instance       = SDIO1_TX_DMA_INSTANCE,            \
46             .channel        = SDIO1_TX_DMA_CHANNEL,             \
47             .clock          = SDIO1_TX_DMA_CLOCK,               \
48             .trigger_select = SDIO1_TX_DMA_TRIG_SELECT,         \
49             .trigger_event  = EVT_SRC_SDIOC1_DMAW,              \
50         },                                                      \
51     }
52 #endif /* SDIO1_BUS_CONFIG */
53 #endif /* BSP_USING_SDIO1 */
54 
55 #if defined(BSP_USING_SDIO2)
56 #ifndef SDIO2_BUS_CONFIG
57 #define SDIO2_BUS_CONFIG                                        \
58     {                                                           \
59         .name       = "sdio2",                                  \
60         .instance   = CM_SDIOC2,                                \
61         .clock      = FCG1_PERIPH_SDIOC2,                       \
62         .irq_config =                                           \
63         {                                                       \
64             .irq_num  = BSP_SDIO2_IRQ_NUM,                      \
65             .irq_prio = BSP_SDIO2_IRQ_PRIO,                     \
66             .int_src  = INT_SRC_SDIOC2_SD,                      \
67         },                                                      \
68         .dma_rx =                                               \
69         {                                                       \
70             .Instance       = SDIO2_RX_DMA_INSTANCE,            \
71             .channel        = SDIO2_RX_DMA_CHANNEL,             \
72             .clock          = SDIO2_RX_DMA_CLOCK,               \
73             .trigger_select = SDIO2_RX_DMA_TRIG_SELECT,         \
74             .trigger_event  = EVT_SRC_SDIOC2_DMAR,              \
75         },                                                      \
76         .dma_tx =                                               \
77         {                                                       \
78             .Instance       = SDIO2_TX_DMA_INSTANCE,            \
79             .channel        = SDIO2_TX_DMA_CHANNEL,             \
80             .clock          = SDIO2_TX_DMA_CLOCK,               \
81             .trigger_select = SDIO2_TX_DMA_TRIG_SELECT,         \
82             .trigger_event  = EVT_SRC_SDIOC2_DMAW,              \
83         },                                                      \
84     }
85 #endif /* SDIO2_BUS_CONFIG */
86 #endif /* BSP_USING_SDIO2 */
87 
88 #ifdef __cplusplus
89 }
90 #endif
91 
92 #endif
93