Skip to content

Commit

Permalink
Add imxrt1180 feature and pads
Browse files Browse the repository at this point in the history
Derived from the 1189 CM33 SVD. The pad definitions are exactly the same
in the CM7 SVD; confirmed by diffing the iomuxc output for the CM33-
and CM7-based outputs.
  • Loading branch information
nilfit authored and mciantyre committed Oct 31, 2024
1 parent abf105d commit 3b5624f
Show file tree
Hide file tree
Showing 7 changed files with 2,500 additions and 0 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ Enable an open drain when preparing I2C pins on 10xx MCUs.

- Add remaining FlexPWM pins for the 1060 MCUs.

- Add i.MX RT 1180 support with the `"imxrt1180"` feature.

## [0.2.7] 2024-06-10

- Fix many 1170 GPIO implementations, most which incorrectly specified their
Expand Down
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ keywords = ["imxrt", "nxp", "embedded", "no_std"]
categories = ["embedded", "no-std"]

[features]
imxrt1180 = []
imxrt1170 = []
imxrt1060 = []
imxrt1020 = []
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ instance, the 1060 feature supports 1061 and 1062 chip variants.
| 1020 | `"imxrt1020"` |
| 1060 | `"imxrt1060"` |
| 1170 | `"imxrt1170"` |
| 1180 | `"imxrt1180"` |

Read on if you're interested in adding support for another i.MX RT
microcontroller, or if you want to expand existing support.
Expand Down
3 changes: 3 additions & 0 deletions iomuxc.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,13 @@ def iomuxc(path):
root = tree.getroot()
iomuxc = root.find("./peripherals/peripheral[name='IOMUXC']")
iomuxc_lpsr = root.find("./peripherals/peripheral[name='IOMUXC_LPSR']")
iomuxc_aon = root.find("./peripherals/peripheral[name='IOMUXC_AON']")

pads = extract_pads(iomuxc)
if iomuxc_lpsr is not None:
pads |= extract_pads(iomuxc_lpsr)
if iomuxc_aon is not None:
pads |= extract_pads(iomuxc_aon)

# Create pad groups.
groups = defaultdict(list)
Expand Down
7 changes: 7 additions & 0 deletions src/imxrt1180/mod.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
//! Pads for the i.MX RT 1180 processor family.
//!
//! The module exports all of the i.MX RT 1180 processor's pads. Pads that can support
//! peripheral functions are tagged with `imxrt-iomuxc` traits.
mod pads;
pub use pads::*;
Loading

0 comments on commit 3b5624f

Please sign in to comment.