aboutsummaryrefslogtreecommitdiff
path: root/common/constants/serial
diff options
context:
space:
mode:
authorBobby <[email protected]>2026-02-25 06:09:23 +0530
committerBobby <[email protected]>2026-02-25 06:09:23 +0530
commitbd462bccea2a637486f863a6342b9870b35c69aa (patch)
treec68dc848542f53b701c553bd0124874948598c8d /common/constants/serial
parent313ab7ea7d5a5d902005d8543ab6b323ed948048 (diff)
downloadakiba-bd462bccea2a637486f863a6342b9870b35c69aa.tar.xz
akiba-bd462bccea2a637486f863a6342b9870b35c69aa.zip
feat: Add common constants, errors, and serial driver functionality
Diffstat (limited to 'common/constants/serial')
-rw-r--r--common/constants/serial/ports.zig16
-rw-r--r--common/constants/serial/registers.zig30
-rw-r--r--common/constants/serial/serial.zig4
3 files changed, 50 insertions, 0 deletions
diff --git a/common/constants/serial/ports.zig b/common/constants/serial/ports.zig
new file mode 100644
index 0000000..e9c11f4
--- /dev/null
+++ b/common/constants/serial/ports.zig
@@ -0,0 +1,16 @@
+//! Serial Port Constants
+
+pub const com1: u16 = 0x3F8;
+pub const com2: u16 = 0x2F8;
+pub const com3: u16 = 0x3E8;
+pub const com4: u16 = 0x2E8;
+
+pub const default_port: u16 = com1;
+
+pub const baud_rate_115200: u16 = 1;
+pub const baud_rate_57600: u16 = 2;
+pub const baud_rate_38400: u16 = 3;
+pub const baud_rate_19200: u16 = 6;
+pub const baud_rate_9600: u16 = 12;
+
+pub const default_baud_divisor: u16 = baud_rate_115200;
diff --git a/common/constants/serial/registers.zig b/common/constants/serial/registers.zig
new file mode 100644
index 0000000..633bc45
--- /dev/null
+++ b/common/constants/serial/registers.zig
@@ -0,0 +1,30 @@
+//! Serial Register Constants
+
+pub const data_register: u16 = 0;
+pub const interrupt_enable_register: u16 = 1;
+pub const fifo_control_register: u16 = 2;
+pub const line_control_register: u16 = 3;
+pub const modem_control_register: u16 = 4;
+pub const line_status_register: u16 = 5;
+pub const modem_status_register: u16 = 6;
+pub const scratch_register: u16 = 7;
+
+pub const divisor_latch_low: u16 = 0;
+pub const divisor_latch_high: u16 = 1;
+
+pub const line_control_8_bits: u8 = 0x03;
+pub const line_control_dlab: u8 = 0x80;
+
+pub const fifo_enable: u8 = 0x01;
+pub const fifo_clear_receive: u8 = 0x02;
+pub const fifo_clear_transmit: u8 = 0x04;
+pub const fifo_trigger_14: u8 = 0xC0;
+
+pub const modem_dtr: u8 = 0x01;
+pub const modem_rts: u8 = 0x02;
+pub const modem_out1: u8 = 0x04;
+pub const modem_out2: u8 = 0x08;
+pub const modem_loopback: u8 = 0x10;
+
+pub const line_status_data_ready: u8 = 0x01;
+pub const line_status_transmit_empty: u8 = 0x20;
diff --git a/common/constants/serial/serial.zig b/common/constants/serial/serial.zig
new file mode 100644
index 0000000..883bd02
--- /dev/null
+++ b/common/constants/serial/serial.zig
@@ -0,0 +1,4 @@
+//! Serial Constants
+
+pub const ports = @import("ports.zig");
+pub const registers = @import("registers.zig");