diff --git a/src/ds323x/configuration.rs b/src/ds323x/configuration.rs
index 8d53048..d337726 100644
--- a/src/ds323x/configuration.rs
+++ b/src/ds323x/configuration.rs
@@ -29,4 +29,26 @@ where
         }
         Ok(())
     }
+
+    /// Enable the 32kHz output.
+    ///
+    /// (Does not alter the device register if already enabled).
+    pub fn enable_32khz_output(&mut self) -> Result<(), Error<E>> {
+        let control = self.iface.read_register(Register::STATUS)?;
+        if (control & BitFlags::EN32KHZ) == 0 {
+            self.iface.write_register(Register::STATUS, control | BitFlags::EN32KHZ)?;
+        }
+        Ok(())
+    }
+
+    /// Disable the 32kHz output.
+    ///
+    /// (Does not alter the device register if already disabled).
+    pub fn disable_32khz_output(&mut self) -> Result<(), Error<E>> {
+        let control = self.iface.read_register(Register::STATUS)?;
+        if (control & BitFlags::EN32KHZ) != 0 {
+            self.iface.write_register(Register::STATUS, control & !BitFlags::EN32KHZ)?;
+        }
+        Ok(())
+    }
 }
diff --git a/src/lib.rs b/src/lib.rs
index 70e186a..24d4cc3 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -296,6 +296,7 @@ impl BitFlags {
     const CENTURY    : u8 = 0b1000_0000;
     const EOSC       : u8 = 0b1000_0000;
     const BUSY       : u8 = 0b0000_0100;
+    const EN32KHZ    : u8 = 0b0000_1000;
     const OSC_STOP   : u8 = 0b1000_0000;
 }
 
diff --git a/tests/common/mod.rs b/tests/common/mod.rs
index 3efd4da..b06f2ea 100644
--- a/tests/common/mod.rs
+++ b/tests/common/mod.rs
@@ -26,6 +26,7 @@ pub struct BitFlags;
 impl BitFlags {
     pub const EOSC       : u8 = 0b1000_0000;
     pub const BUSY       : u8 = 0b0000_0100;
+    pub const EN32KHZ    : u8 = 0b0000_1000;
     pub const OSC_STOP   : u8 = 0b1000_0000;
 }
 
diff --git a/tests/configuration.rs b/tests/configuration.rs
index afc59e2..35da152 100644
--- a/tests/configuration.rs
+++ b/tests/configuration.rs
@@ -39,5 +39,7 @@ macro_rules! change_if_necessary_test {
 
 change_if_necessary_test!(enable, enable, CONTROL, 0xFF & !BF::EOSC,  0xFF);
 change_if_necessary_test!(disable, disable, CONTROL, 0xFF, 0xFF & !BF::EOSC);
+change_if_necessary_test!(en_32khz_out,  enable_32khz_output,  STATUS, 0xFF, 0xFF & !BF::EN32KHZ);
+change_if_necessary_test!(dis_32khz_out, disable_32khz_output, STATUS, 0xFF & !BF::EN32KHZ, 0xFF);
 change_if_necessary_test!(clr_stop, clear_has_been_stopped_flag, STATUS, 0xFF & !BF::OSC_STOP, 0xFF);