Skip to content

Commit 3bdb26a

Browse files
committed
Remap pin management
Fix stm32duino#1180 Signed-off-by: Frederic Pillon <[email protected]>
1 parent acce8e3 commit 3bdb26a

File tree

1 file changed

+34
-17
lines changed

1 file changed

+34
-17
lines changed

Diff for: libraries/SrcWrapper/src/stm32/pinmap.c

+34-17
Original file line numberDiff line numberDiff line change
@@ -73,25 +73,42 @@ void pin_function(PinName pin, int function)
7373
}
7474

7575
/* Handle pin remap if any */
76-
#if defined(LL_SYSCFG_PIN_RMP_PA11) && defined(LL_SYSCFG_PIN_RMP_PA12)
77-
if ((pin >= PA_9) && (pin <= PA_12)) {
78-
__HAL_RCC_SYSCFG_CLK_ENABLE();
79-
switch ((int)pin) {
80-
case PA_9:
76+
#if defined(LL_SYSCFG_PIN_RMP_PA11) && defined(LL_SYSCFG_PIN_RMP_PA12) || defined(SYSCFG_CFGR1_PA11_PA12_RMP)
77+
__HAL_RCC_SYSCFG_CLK_ENABLE();
78+
switch (pin & PNAME_MASK) {
79+
#if defined(SYSCFG_CFGR1_PA11_PA12_RMP)
80+
/* Disable PIN pair PA11/12 mapped instead of PA9/10 */
81+
case PA_9:
82+
case PA_10:
83+
LL_SYSCFG_DisablePinRemap();
84+
break;
85+
/* Enable PIN pair PA11/12 mapped instead of PA9/10 */
86+
case PA_11:
87+
case PA_12:
88+
if (pin & PREMAP) {
89+
LL_SYSCFG_EnablePinRemap();
90+
}
91+
break;
92+
#else
93+
case PA_9:
94+
if (pin & PREMAP) {
8195
LL_SYSCFG_EnablePinRemap(LL_SYSCFG_PIN_RMP_PA11);
82-
break;
83-
case PA_11:
84-
LL_SYSCFG_DisablePinRemap(LL_SYSCFG_PIN_RMP_PA11);
85-
break;
86-
case PA_10:
96+
}
97+
break;
98+
case PA_10:
99+
if (pin & PREMAP) {
87100
LL_SYSCFG_EnablePinRemap(LL_SYSCFG_PIN_RMP_PA12);
88-
break;
89-
case PA_12:
90-
LL_SYSCFG_DisablePinRemap(LL_SYSCFG_PIN_RMP_PA12);
91-
break;
92-
default:
93-
break;
94-
}
101+
}
102+
break;
103+
case PA_11:
104+
LL_SYSCFG_DisablePinRemap(LL_SYSCFG_PIN_RMP_PA11);
105+
break;
106+
case PA_12:
107+
LL_SYSCFG_DisablePinRemap(LL_SYSCFG_PIN_RMP_PA12);
108+
break;
109+
#endif
110+
default:
111+
break;
95112
}
96113
#endif
97114

0 commit comments

Comments
 (0)