17 #ifndef HAL_PIN_STM32_COMMON_H_INCLUDED
18 #define HAL_PIN_STM32_COMMON_H_INCLUDED
20 #if !defined(HAL_PIN_H_INCLUDED)
21 # error please do not include HAL library internals directly
24 #include <libopencm3/cm3/nvic.h>
25 #include <libopencm3/stm32/rcc.h>
26 #include <libopencm3/stm32/gpio.h>
32 #if defined(GPIO_PORT_A_BASE)
33 #define PA0 (GPIOA | 0)
34 #define PA1 (GPIOA | 1)
35 #define PA2 (GPIOA | 2)
36 #define PA3 (GPIOA | 3)
37 #define PA4 (GPIOA | 4)
38 #define PA5 (GPIOA | 5)
39 #define PA6 (GPIOA | 6)
40 #define PA7 (GPIOA | 7)
41 #define PA8 (GPIOA | 8)
42 #define PA9 (GPIOA | 9)
43 #define PA10 (GPIOA | 10)
44 #define PA11 (GPIOA | 11)
45 #define PA12 (GPIOA | 12)
46 #define PA13 (GPIOA | 13)
47 #define PA14 (GPIOA | 14)
48 #define PA15 (GPIOA | 15)
51 #if defined(GPIO_PORT_B_BASE)
52 #define PB0 (GPIOB | 0)
53 #define PB1 (GPIOB | 1)
54 #define PB2 (GPIOB | 2)
55 #define PB3 (GPIOB | 3)
56 #define PB4 (GPIOB | 4)
57 #define PB5 (GPIOB | 5)
58 #define PB6 (GPIOB | 6)
59 #define PB7 (GPIOB | 7)
60 #define PB8 (GPIOB | 8)
61 #define PB9 (GPIOB | 9)
62 #define PB10 (GPIOB | 10)
63 #define PB11 (GPIOB | 11)
64 #define PB12 (GPIOB | 12)
65 #define PB13 (GPIOB | 13)
66 #define PB14 (GPIOB | 14)
67 #define PB15 (GPIOB | 15)
70 #if defined(GPIO_PORT_C_BASE)
71 #define PC0 (GPIOC | 0)
72 #define PC1 (GPIOC | 1)
73 #define PC2 (GPIOC | 2)
74 #define PC3 (GPIOC | 3)
75 #define PC4 (GPIOC | 4)
76 #define PC5 (GPIOC | 5)
77 #define PC6 (GPIOC | 6)
78 #define PC7 (GPIOC | 7)
79 #define PC8 (GPIOC | 8)
80 #define PC9 (GPIOC | 9)
81 #define PC10 (GPIOC | 10)
82 #define PC11 (GPIOC | 11)
83 #define PC12 (GPIOC | 12)
84 #define PC13 (GPIOC | 13)
85 #define PC14 (GPIOC | 14)
86 #define PC15 (GPIOC | 15)
89 #if defined(GPIO_PORT_D_BASE)
90 #define PD0 (GPIOD | 0)
91 #define PD1 (GPIOD | 1)
92 #define PD2 (GPIOD | 2)
93 #define PD3 (GPIOD | 3)
94 #define PD4 (GPIOD | 4)
95 #define PD5 (GPIOD | 5)
96 #define PD6 (GPIOD | 6)
97 #define PD7 (GPIOD | 7)
98 #define PD8 (GPIOD | 8)
99 #define PD9 (GPIOD | 9)
100 #define PD10 (GPIOD | 10)
101 #define PD11 (GPIOD | 11)
102 #define PD12 (GPIOD | 12)
103 #define PD13 (GPIOD | 13)
104 #define PD14 (GPIOD | 14)
105 #define PD15 (GPIOD | 15)
108 #if defined(GPIO_PORT_E_BASE)
109 #define PE0 (GPIOE | 0)
110 #define PE1 (GPIOE | 1)
111 #define PE2 (GPIOE | 2)
112 #define PE3 (GPIOE | 3)
113 #define PE4 (GPIOE | 4)
114 #define PE5 (GPIOE | 5)
115 #define PE6 (GPIOE | 6)
116 #define PE7 (GPIOE | 7)
117 #define PE8 (GPIOE | 8)
118 #define PE9 (GPIOE | 9)
119 #define PE10 (GPIOE | 10)
120 #define PE11 (GPIOE | 11)
121 #define PE12 (GPIOE | 12)
122 #define PE13 (GPIOE | 13)
123 #define PE14 (GPIOE | 14)
124 #define PE15 (GPIOE | 15)
127 #if defined(GPIO_PORT_F_BASE)
128 #define PF0 (GPIOF | 0)
129 #define PF1 (GPIOF | 1)
130 #define PF2 (GPIOF | 2)
131 #define PF3 (GPIOF | 3)
132 #define PF4 (GPIOF | 4)
133 #define PF5 (GPIOF | 5)
134 #define PF6 (GPIOF | 6)
135 #define PF7 (GPIOF | 7)
136 #define PF8 (GPIOF | 8)
137 #define PF9 (GPIOF | 9)
138 #define PF10 (GPIOF | 10)
139 #define PF11 (GPIOF | 11)
140 #define PF12 (GPIOF | 12)
141 #define PF13 (GPIOF | 13)
142 #define PF14 (GPIOF | 14)
143 #define PF15 (GPIOF | 15)
146 #if defined(GPIO_PORT_G_BASE)
147 #define PG0 (GPIOG | 0)
148 #define PG1 (GPIOG | 1)
149 #define PG2 (GPIOG | 2)
150 #define PG3 (GPIOG | 3)
151 #define PG4 (GPIOG | 4)
152 #define PG5 (GPIOG | 5)
153 #define PG6 (GPIOG | 6)
154 #define PG7 (GPIOG | 7)
155 #define PG8 (GPIOG | 8)
156 #define PG9 (GPIOG | 9)
157 #define PG10 (GPIOG | 10)
158 #define PG11 (GPIOG | 11)
159 #define PG12 (GPIOG | 12)
160 #define PG13 (GPIOG | 13)
161 #define PG14 (GPIOG | 14)
162 #define PG15 (GPIOG | 15)
165 #if defined(GPIO_PORT_H_BASE)
166 #define PH0 (GPIOH | 0)
167 #define PH1 (GPIOH | 1)
168 #define PH2 (GPIOH | 2)
169 #define PH3 (GPIOH | 3)
170 #define PH4 (GPIOH | 4)
171 #define PH5 (GPIOH | 5)
172 #define PH6 (GPIOH | 6)
173 #define PH7 (GPIOH | 7)
174 #define PH8 (GPIOH | 8)
175 #define PH9 (GPIOH | 9)
176 #define PH10 (GPIOH | 10)
177 #define PH11 (GPIOH | 11)
178 #define PH12 (GPIOH | 12)
179 #define PH13 (GPIOH | 13)
180 #define PH14 (GPIOH | 14)
181 #define PH15 (GPIOH | 15)
184 #if defined(GPIO_PORT_I_BASE)
185 #define PI0 (GPIOI | 0)
186 #define PI1 (GPIOI | 1)
187 #define PI2 (GPIOI | 2)
188 #define PI3 (GPIOI | 3)
189 #define PI4 (GPIOI | 4)
190 #define PI5 (GPIOI | 5)
191 #define PI6 (GPIOI | 6)
192 #define PI7 (GPIOI | 7)
193 #define PI8 (GPIOI | 8)
194 #define PI9 (GPIOI | 9)
195 #define PI10 (GPIOI | 10)
196 #define PI11 (GPIOI | 11)
197 #define PI12 (GPIOI | 12)
198 #define PI13 (GPIOI | 13)
199 #define PI14 (GPIOI | 14)
200 #define PI15 (GPIOI | 15)
212 #if defined(GPIO_PORT_A_BASE)
213 case GPIOA: rcc_periph_clock_enable(RCC_GPIOA);
break;
215 #if defined(GPIO_PORT_B_BASE)
216 case GPIOB: rcc_periph_clock_enable(RCC_GPIOB);
break;
218 #if defined(GPIO_PORT_C_BASE)
219 case GPIOC: rcc_periph_clock_enable(RCC_GPIOC);
break;
221 #if defined(GPIO_PORT_D_BASE)
222 case GPIOD: rcc_periph_clock_enable(RCC_GPIOD);
break;
224 #if defined(GPIO_PORT_E_BASE)
225 case GPIOE: rcc_periph_clock_enable(RCC_GPIOE);
break;
227 #if defined(GPIO_PORT_F_BASE)
228 case GPIOF: rcc_periph_clock_enable(RCC_GPIOF);
break;
230 #if defined(GPIO_PORT_G_BASE)
231 case GPIOG: rcc_periph_clock_enable(RCC_GPIOG);
break;
233 #if defined(GPIO_PORT_H_BASE)
234 case GPIOH: rcc_periph_clock_enable(RCC_GPIOH);
break;
236 #if defined(GPIO_PORT_I_BASE)
237 case GPIOI: rcc_periph_clock_enable(RCC_GPIOI);
break;