aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authori509VCB <[email protected]>2025-10-30 18:11:21 +0000
committerGitHub <[email protected]>2025-10-30 18:11:21 +0000
commit9b1add3d83e98c6c9ae9230bf35cd89bba530a20 (patch)
tree0fc58eb44606e709e7750404ae18466223e393ab
parent2c1c5232e8767887cbad5f28abf9a39ae78dd6c4 (diff)
parent102cceb30ec0af85f0fee66ae9e4cba049b5fffd (diff)
Merge pull request #4794 from doxxx/gpio-nointr
mspm0: group irq handlers must check for NO_INTR (#4785)
-rw-r--r--embassy-mspm0/CHANGELOG.md3
-rw-r--r--embassy-mspm0/build.rs11
2 files changed, 11 insertions, 3 deletions
diff --git a/embassy-mspm0/CHANGELOG.md b/embassy-mspm0/CHANGELOG.md
index fcb0f9dbd..d9910a7ab 100644
--- a/embassy-mspm0/CHANGELOG.md
+++ b/embassy-mspm0/CHANGELOG.md
@@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7 7
8<!-- next-header --> 8<!-- next-header -->
9## Unreleased - ReleaseDate 9## Unreleased - ReleaseDate
10 10
11- feat: Add I2C Controller (blocking & async) + examples for mspm0l1306, mspm0g3507 (tested MCUs) (#4435) 11- feat: Add I2C Controller (blocking & async) + examples for mspm0l1306, mspm0g3507 (tested MCUs) (#4435)
12- fix gpio interrupt not being set for mspm0l110x 12- fix gpio interrupt not being set for mspm0l110x
13- feat: Add window watchdog implementation based on WWDT0, WWDT1 peripherals (#4574) 13- feat: Add window watchdog implementation based on WWDT0, WWDT1 peripherals (#4574)
@@ -17,3 +17,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
17- fix: add MSPM0C1106 to build test matrix 17- fix: add MSPM0C1106 to build test matrix
18- feat: add MSPM0H3216 support 18- feat: add MSPM0H3216 support
19- feat: Add i2c target implementation (#4605) 19- feat: Add i2c target implementation (#4605)
20- fix: group irq handlers must check for NO_INTR (#4785)
diff --git a/embassy-mspm0/build.rs b/embassy-mspm0/build.rs
index 1d118ad66..4942364aa 100644
--- a/embassy-mspm0/build.rs
+++ b/embassy-mspm0/build.rs
@@ -194,8 +194,15 @@ fn generate_groups() -> TokenStream {
194 use crate::pac::#group_enum; 194 use crate::pac::#group_enum;
195 195
196 let group = crate::pac::CPUSS.int_group(#group_number); 196 let group = crate::pac::CPUSS.int_group(#group_number);
197 // MUST subtract by 1 since 0 is NO_INTR 197 let stat = group.iidx().read().stat();
198 let iidx = group.iidx().read().stat().to_bits() - 1; 198
199 // check for spurious interrupts
200 if stat == crate::pac::cpuss::vals::Iidx::NO_INTR {
201 return;
202 }
203
204 // MUST subtract by 1 because NO_INTR offsets IIDX values.
205 let iidx = stat.to_bits() - 1;
199 206
200 let Ok(group) = #group_enum::try_from(iidx as u8) else { 207 let Ok(group) = #group_enum::try_from(iidx as u8) else {
201 return; 208 return;