aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/ports/STM32/LLD/GPIOv3/hal_pal_lld.c
diff options
context:
space:
mode:
Diffstat (limited to 'os/hal/ports/STM32/LLD/GPIOv3/hal_pal_lld.c')
-rw-r--r--os/hal/ports/STM32/LLD/GPIOv3/hal_pal_lld.c39
1 files changed, 15 insertions, 24 deletions
diff --git a/os/hal/ports/STM32/LLD/GPIOv3/hal_pal_lld.c b/os/hal/ports/STM32/LLD/GPIOv3/hal_pal_lld.c
index 7568ccc59..92b61b52b 100644
--- a/os/hal/ports/STM32/LLD/GPIOv3/hal_pal_lld.c
+++ b/os/hal/ports/STM32/LLD/GPIOv3/hal_pal_lld.c
@@ -30,15 +30,6 @@
/* Driver local definitions. */
/*===========================================================================*/
-/* Handling a difference in ST headers.*/
-#if defined(STM32L4XX) || defined(STM32L4XXP)
-#define EMR EMR1
-#define IMR IMR1
-#define PR PR1
-#define RTSR RTSR1
-#define FTSR FTSR1
-#endif
-
/*===========================================================================*/
/* Driver exported variables. */
/*===========================================================================*/
@@ -174,8 +165,8 @@ void _pal_lld_enablepadevent(ioportid_t port,
/* Multiple channel setting of the same channel not allowed, first disable
it. This is done because on STM32 the same channel cannot be mapped on
multiple ports.*/
- osalDbgAssert(((EXTI->RTSR & padmask) == 0U) &&
- ((EXTI->FTSR & padmask) == 0U), "channel already in use");
+ osalDbgAssert(((EXTI->RTSR1 & padmask) == 0U) &&
+ ((EXTI->FTSR1 & padmask) == 0U), "channel already in use");
/* Index and mask of the SYSCFG CR register to be used.*/
cridx = (uint32_t)pad >> 2U;
@@ -191,17 +182,17 @@ void _pal_lld_enablepadevent(ioportid_t port,
/* Programming edge registers.*/
if (mode & PAL_EVENT_MODE_RISING_EDGE)
- EXTI->RTSR |= padmask;
+ EXTI->RTSR1 |= padmask;
else
- EXTI->RTSR &= ~padmask;
+ EXTI->RTSR1 &= ~padmask;
if (mode & PAL_EVENT_MODE_FALLING_EDGE)
- EXTI->FTSR |= padmask;
+ EXTI->FTSR1 |= padmask;
else
- EXTI->FTSR &= ~padmask;
+ EXTI->FTSR1 &= ~padmask;
/* Programming interrupt and event registers.*/
- EXTI->IMR |= padmask;
- EXTI->EMR &= ~padmask;
+ EXTI->IMR1 |= padmask;
+ EXTI->EMR1 &= ~padmask;
}
/**
@@ -216,8 +207,8 @@ void _pal_lld_enablepadevent(ioportid_t port,
void _pal_lld_disablepadevent(ioportid_t port, iopadid_t pad) {
uint32_t padmask, rtsr1, ftsr1;
- rtsr1 = EXTI->RTSR;
- ftsr1 = EXTI->FTSR;
+ rtsr1 = EXTI->RTSR1;
+ ftsr1 = EXTI->FTSR1;
/* Mask of the pad.*/
padmask = 1U << (uint32_t)pad;
@@ -239,11 +230,11 @@ void _pal_lld_disablepadevent(ioportid_t port, iopadid_t pad) {
osalDbgAssert(crport == portidx, "channel mapped on different port");
/* Disabling channel.*/
- EXTI->IMR &= ~padmask;
- EXTI->EMR &= ~padmask;
- EXTI->RTSR = rtsr1 & ~padmask;
- EXTI->FTSR = ftsr1 & ~padmask;
- EXTI->PR = padmask;
+ EXTI->IMR1 &= ~padmask;
+ EXTI->EMR1 &= ~padmask;
+ EXTI->RTSR1 = rtsr1 & ~padmask;
+ EXTI->FTSR1 = ftsr1 & ~padmask;
+ EXTI->PR1 = padmask;
#if PAL_USE_CALLBACKS || PAL_USE_WAIT
/* Callback cleared and/or thread reset.*/