diff options
| author | Bobby <[email protected]> | 2026-02-25 06:09:23 +0530 |
|---|---|---|
| committer | Bobby <[email protected]> | 2026-02-25 06:09:23 +0530 |
| commit | bd462bccea2a637486f863a6342b9870b35c69aa (patch) | |
| tree | c68dc848542f53b701c553bd0124874948598c8d /common/constants/serial | |
| parent | 313ab7ea7d5a5d902005d8543ab6b323ed948048 (diff) | |
| download | akiba-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.zig | 16 | ||||
| -rw-r--r-- | common/constants/serial/registers.zig | 30 | ||||
| -rw-r--r-- | common/constants/serial/serial.zig | 4 |
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"); |
