1 /*
2  * Copyright (C) 2021, Huada Semiconductor Co., Ltd.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2021-08-19     pjq          first version
9  */
10 
11 #ifndef __DRV_GPIO_H__
12 #define __DRV_GPIO_H__
13 
14 #include <rtdevice.h>
15 
16 #ifdef RT_USING_PIN
17 
18 #define __HC_PORT(port)                 GpioPort##port
19 #define GET_PIN(PORT, PIN)              (((rt_uint16_t)__HC_PORT(PORT) / 0x40 * 16) + PIN)
20 
21 #ifndef EXINT0_IRQ_CONFIG
22 #define EXINT0_IRQ_CONFIG                       \
23     {                                           \
24         .irq        = EXINT0_INT_IRQn,          \
25         .irq_prio   = EXINT0_INT_PRIO,          \
26     }
27 #endif /* EXINT1_IRQ_CONFIG */
28 
29 #ifndef EXINT1_IRQ_CONFIG
30 #define EXINT1_IRQ_CONFIG                       \
31     {                                           \
32         .irq        = EXINT1_INT_IRQn,          \
33         .irq_prio   = EXINT1_INT_PRIO,          \
34     }
35 #endif /* EXINT1_IRQ_CONFIG */
36 
37 #ifndef EXINT2_IRQ_CONFIG
38 #define EXINT2_IRQ_CONFIG                       \
39     {                                           \
40         .irq        = EXINT2_INT_IRQn,          \
41         .irq_prio   = EXINT2_INT_PRIO,          \
42     }
43 #endif /* EXINT2_IRQ_CONFIG */
44 
45 #ifndef EXINT3_IRQ_CONFIG
46 #define EXINT3_IRQ_CONFIG                       \
47     {                                           \
48         .irq        = EXINT3_INT_IRQn,          \
49         .irq_prio   = EXINT3_INT_PRIO,          \
50     }
51 #endif /* EXINT3_IRQ_CONFIG */
52 
53 #ifndef EXINT4_IRQ_CONFIG
54 #define EXINT4_IRQ_CONFIG                       \
55     {                                           \
56         .irq        = EXINT4_INT_IRQn,          \
57         .irq_prio   = EXINT4_INT_PRIO,          \
58     }
59 #endif /* EXINT4_IRQ_CONFIG */
60 
61 #ifndef EXINT5_IRQ_CONFIG
62 #define EXINT5_IRQ_CONFIG                       \
63     {                                           \
64         .irq        = EXINT5_INT_IRQn,          \
65         .irq_prio   = EXINT5_INT_PRIO,          \
66     }
67 #endif /* EXINT5_IRQ_CONFIG */
68 
69 #ifndef EXINT6_IRQ_CONFIG
70 #define EXINT6_IRQ_CONFIG                       \
71     {                                           \
72         .irq        = EXINT6_INT_IRQn,          \
73         .irq_prio   = EXINT6_INT_PRIO,          \
74     }
75 #endif /* EXINT6_IRQ_CONFIG */
76 
77 #ifndef EXINT7_IRQ_CONFIG
78 #define EXINT7_IRQ_CONFIG                       \
79     {                                           \
80         .irq        = EXINT7_INT_IRQn,          \
81         .irq_prio   = EXINT7_INT_PRIO,          \
82     }
83 #endif /* EXINT7_IRQ_CONFIG */
84 
85 #ifndef EXINT8_IRQ_CONFIG
86 #define EXINT8_IRQ_CONFIG                       \
87     {                                           \
88         .irq        = EXINT8_INT_IRQn,          \
89         .irq_prio   = EXINT8_INT_PRIO,          \
90     }
91 #endif /* EXINT8_IRQ_CONFIG */
92 
93 #ifndef EXINT9_IRQ_CONFIG
94 #define EXINT9_IRQ_CONFIG                       \
95     {                                           \
96         .irq        = EXINT9_INT_IRQn,          \
97         .irq_prio   = EXINT9_INT_PRIO,          \
98     }
99 #endif /* EXINT9_IRQ_CONFIG */
100 
101 #ifndef EXINT10_IRQ_CONFIG
102 #define EXINT10_IRQ_CONFIG                      \
103     {                                           \
104         .irq        = EXINT10_INT_IRQn,         \
105         .irq_prio   = EXINT10_INT_PRIO,         \
106     }
107 #endif /* EXINT10_IRQ_CONFIG */
108 
109 #ifndef EXINT11_IRQ_CONFIG
110 #define EXINT11_IRQ_CONFIG                      \
111     {                                           \
112         .irq        = EXINT11_INT_IRQn,         \
113         .irq_prio   = EXINT11_INT_PRIO,         \
114     }
115 #endif /* EXINT11_IRQ_CONFIG */
116 
117 #ifndef EXINT12_IRQ_CONFIG
118 #define EXINT12_IRQ_CONFIG                      \
119     {                                           \
120         .irq        = EXINT12_INT_IRQn,         \
121         .irq_prio   = EXINT12_INT_PRIO,         \
122     }
123 #endif /* EXINT12_IRQ_CONFIG */
124 
125 #ifndef EXINT13_IRQ_CONFIG
126 #define EXINT13_IRQ_CONFIG                      \
127     {                                           \
128         .irq        = EXINT13_INT_IRQn,         \
129         .irq_prio   = EXINT13_INT_PRIO,         \
130     }
131 #endif /* EXINT13_IRQ_CONFIG */
132 
133 #ifndef EXINT14_IRQ_CONFIG
134 #define EXINT14_IRQ_CONFIG                      \
135     {                                           \
136         .irq        = EXINT14_INT_IRQn,         \
137         .irq_prio   = EXINT14_INT_PRIO,         \
138     }
139 #endif /* EXINT14_IRQ_CONFIG */
140 
141 #ifndef EXINT15_IRQ_CONFIG
142 #define EXINT15_IRQ_CONFIG                      \
143     {                                           \
144         .irq        = EXINT15_INT_IRQn,         \
145         .irq_prio   = EXINT15_INT_PRIO,         \
146     }
147 #endif /* EXINT15_IRQ_CONFIG */
148 
149 #endif
150 
151 #endif /* __DRV_GPIO_H__ */
152