diff options
| author | wires <wires@noreply.wires.systems> | 2025-10-07 15:05:19 -0400 |
|---|---|---|
| committer | wires <wires@noreply.wires.systems> | 2025-10-07 15:05:19 -0400 |
| commit | 4753cccb45d6404ea38b3c12e57065a129ec6e3d (patch) | |
| tree | cff9c493f500b75791397af66f930ae143f9d121 | |
| parent | oops (diff) | |
| download | zosimos-4753cccb45d6404ea38b3c12e57065a129ec6e3d.tar.gz | |
switch to using mmio helpers in gpio
| -rw-r--r-- | src/gpio.zig | 11 |
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 { |