From 76199f21616ad86cf68f3b063c1ce23c6fc5a52f Mon Sep 17 00:00:00 2001 From: Ian McIntyre Date: Sun, 30 Nov 2025 18:52:34 -0500 Subject: First commit --- drivers/gpio/Cargo.toml | 7 +++++++ drivers/gpio/src/lib.rs | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 drivers/gpio/Cargo.toml create mode 100644 drivers/gpio/src/lib.rs (limited to 'drivers/gpio') diff --git a/drivers/gpio/Cargo.toml b/drivers/gpio/Cargo.toml new file mode 100644 index 0000000..9e7f4e1 --- /dev/null +++ b/drivers/gpio/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "imxrt-drivers-gpio" +version = "0.1.0" +edition = "2024" + +[dependencies] +ral-registers = { workspace = true } diff --git a/drivers/gpio/src/lib.rs b/drivers/gpio/src/lib.rs new file mode 100644 index 0000000..31a04b1 --- /dev/null +++ b/drivers/gpio/src/lib.rs @@ -0,0 +1,34 @@ +#![no_std] + +use ral_registers::register; + +#[allow(non_snake_case)] +#[repr(C)] +pub struct RegisterBlock { + pub DR: u32, + pub GDIR: u32, + pub PSR: u32, + pub ICR1: u32, + pub ICR2: u32, + pub IMR: u32, + pub ISR: u32, + pub EDGE_SEL: u32, + _reserved0: [u8; 0x64], + pub DR_SET: u32, + pub DR_CLEAR: u32, + pub DR_TOGGLE: u32, +} + +pub type GPIO = ral_registers::Instance; + +register!(pub DR RW []); +register!(pub GDIR RW []); +register!(pub PSR RO []); +register!(pub ICR1 RW []); +register!(pub ICR2 RW []); +register!(pub IMR RW []); +register!(pub ISR RW []); +register!(pub EDGE_SEL RW []); +register!(pub DR_SET WO []); +register!(pub DR_CLEAR WO []); +register!(pub DR_TOGGLE WO []); -- cgit v1.2.3