diff options
Diffstat (limited to 'src/board.zig')
| -rw-r--r-- | src/board.zig | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/board.zig b/src/board.zig new file mode 100644 index 0000000..c55fb99 --- /dev/null +++ b/src/board.zig @@ -0,0 +1,20 @@ +pub const PERIPHERAL_BASE = 0xfe000000; +pub const AUX_BASE = PERIPHERAL_BASE + 0x215000; +pub const AUX_IRQ = AUX_BASE; +pub const AUX_ENABLE = AUX_BASE + 0x4; + +const Auxiliary = enum(u32) { + mini_uart = 1, + spi1 = 2, + spi2 = 4, +}; + +pub fn enableAux(aux: Auxiliary) void { + const mmio_ptr: *volatile u32 = @ptrFromInt(AUX_ENABLE); + mmio_ptr.* |= @intFromEnum(aux); +} + +pub fn disableAux(aux: Auxiliary) void { + const mmio_ptr: *volatile u32 = @ptrFromInt(AUX_ENABLE); + mmio_ptr.* &= ~@intFromEnum(aux); +} |