aboutsummaryrefslogtreecommitdiff
path: root/mirai/drivers/pit/init.zig
blob: f31e47fe2bdaa8695307dcb75709ab032fc02664 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//! PIT Initialization

const constants = @import("constants.zig");
const asm_io = @import("../../asm/io/io.zig");

pub fn init(frequency: u32) void {
    const divisor: u16 = @truncate(constants.base_frequency / frequency);

    asm_io.outb(constants.command, constants.mode_square_wave);
    asm_io.outb(constants.channel0_data, @truncate(divisor));
    asm_io.outb(constants.channel0_data, @truncate(divisor >> 8));
}

pub fn init_default() void {
    init(constants.target_frequency);
}