wires

summary refs log tree commit diff
diff options
context:
space:
mode:
authorwires <wires@noreply.wires.systems>2025-10-07 15:05:19 -0400
committerwires <wires@noreply.wires.systems>2025-10-07 15:05:19 -0400
commit4753cccb45d6404ea38b3c12e57065a129ec6e3d (patch)
treecff9c493f500b75791397af66f930ae143f9d121
parentoops (diff)
downloadzosimos-4753cccb45d6404ea38b3c12e57065a129ec6e3d.tar.gz
switch to using mmio helpers in gpio
-rw-r--r--src/gpio.zig11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/gpio.zig b/src/gpio.zig
index ba54394..5e30ca7 100644
--- a/src/gpio.zig
+++ b/src/gpio.zig
@@ -1,3 +1,5 @@
+const mmio = @import("mmio.zig");
+
 const PERIPHERAL_BASE = @import("board.zig").PERIPHERAL_BASE;
 
 const FSEL = PERIPHERAL_BASE + 0x200000;
@@ -21,11 +23,10 @@ fn call(
     const reg = base + (pin / n_fields) * 4;
     const shift = (pin % n_fields) * field_size;
 
-    const mmio_ptr: *volatile u32 = @ptrFromInt(reg);
-    var reg_val = mmio_ptr.*;
-    reg_val &= ~(field_mask << shift);
-    reg_val |= value << shift;
-    mmio_ptr.* = reg_val;
+    var val = mmio.read(reg);
+    val &= ~(field_mask << shift);
+    val |= value << shift;
+    mmio.write(reg, val);
 }
 
 pub fn write(pin: comptime_int, value: bool) void {