-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cpu/stm32: Fix periph_gpio_ll_irq #19446
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I trust the output of @maribu and fixes right before release are always welcome. ACK.
bors merge |
🕐 Waiting for PR status (GitHub check) to be set, probably by CI. Bors will automatically try to run when all required PR statuses are set. |
19446: cpu/stm32: Fix periph_gpio_ll_irq r=MrKevinWeiss a=maribu ### Contribution description This fixes a high impact typo that broke GPIO LL IRQ support on a bunch of STM32 families. ### Testing procedure ``` make BOARD=nucleo-f429zi flash test-with-config -j16 -C tests/periph_gpio_ll [...] TEST SUCCEEDED ``` Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
Build failed: |
3bee0ba
to
1c13d3c
Compare
|
||
#ifdef RCC_APBENR2_SYSCFGEN | ||
# define SYSFG_ENABLE_MASK RCC_APBENR2_SYSCFGEN | ||
#elif defined(RCC_APB2ENR_SYSCFGEN) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has to be an #elif
instead because for STM32F0 both are defined:
/* Old Bit definition maintained for legacy purpose */
#define RCC_APB2ENR_SYSCFGEN RCC_APB2ENR_SYSCFGCOMPEN /*!< SYSCFG clock enable */
#define RCC_APB2ENR_ADC1EN RCC_APB2ENR_ADCEN /*!< ADC1 clock enable */
@MrKevinWeiss this should now be ready again |
bors merge |
19446: cpu/stm32: Fix periph_gpio_ll_irq r=MrKevinWeiss a=maribu ### Contribution description This fixes a high impact typo that broke GPIO LL IRQ support on a bunch of STM32 families. This also adds a compile time check that prevents using `SYSFG` without having `SYSFG_CLOCK` defined to prevent future issues like this. ### Testing procedure ``` make BOARD=nucleo-f429zi flash test-with-config -j16 -C tests/periph_gpio_ll [...] TEST SUCCEEDED ``` Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
Build failed: |
Perfect, the sanity check is working :) |
Fixing a high impact typo that broke GPIO LL IRQ support on a bunch of STM32 families.
1c13d3c
to
8bfd74d
Compare
I dropped the check again. STM32WL, STM32WB and STM32MP1 don't need to enable a lock to SYSCFG in order to use it. This is consistent with what the GPIO driver (non-LL-version) does: RIOT/cpu/stm32/periph/gpio_all.c Lines 247 to 259 in d6dc3a1
|
We don't need to super rush, RC1 is already out so it will have to be backported. The script works fine as well. |
bors try |
tryBuild succeeded: |
OK, well then... |
bors merge |
Build succeeded: |
Thx :) |
Sorry for the confusion, #19412 actually didn't make it into the release branch. We don't have STM32F1 GPIO LL support in the release, but we also don't have the bug that sneaked in with the GPIO LL support for STM32F1 this fixed. |
That was an exciting one, thanks for the clarification! |
Contribution description
This fixes a high impact typo that broke GPIO LL IRQ support on a bunch of STM32 families.
Testing procedure
Full log output
Issues/PRs references
Introduced in #19412