diff --git a/Cargo.lock b/Cargo.lock
index 85d351b..7a750c7 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -37,9 +37,9 @@
 
 [[package]]
 name = "safe-mmio"
-version = "0.2.0"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bc59a975d8faa0b4475145266e9f9eac01f0b3f393d0e5eecc8b88646ca2d29"
+checksum = "f96d86dc25e8f742cf117e00b58db99e0c3505208babc33f124f0067f6c22024"
 dependencies = [
  "zerocopy",
 ]
@@ -63,18 +63,18 @@
 
 [[package]]
 name = "zerocopy"
-version = "0.8.23"
+version = "0.8.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6"
+checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.8.23"
+version = "0.8.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154"
+checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be"
 dependencies = [
  "proc-macro2",
  "quote",
diff --git a/Cargo.toml b/Cargo.toml
index ec18ddd..f184a8e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -8,16 +8,16 @@
     "Balint Dobszay <balint.dobszay@arm.com>",
     "Imre Kis <imre.kis@arm.com>",
 ]
+categories = ["hardware-support", "embedded", "no-std", "no-std::no-alloc"]
 description = "Arm Watchdog Module (SP805) driver"
 edition = "2021"
 license = "MIT OR Apache-2.0"
-repository = "https://git.trustedfirmware.org/rust-spmc/rust-spmc.git"
+repository = "https://git.trustedfirmware.org/rust-spmc/arm-sp805.git"
 keywords = ["arm", "sp805", "watchdog", "timer", "driver"]
+readme = "README.md"
 rust-version = "1.82"
 
-# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
-
 [dependencies]
 bitflags = "2.9"
 safe-mmio = "0.2"
-zerocopy = "0.8"
\ No newline at end of file
+zerocopy = "0.8"
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..9f4fb11
--- /dev/null
+++ b/README.md
@@ -0,0 +1,64 @@
+# Arm Watchdog Module (SP805) driver
+
+Driver implementation for the [SP805 watchdog module](https://developer.arm.com/documentation/ddi0270/latest/).
+
+## Implemented features
+
+* Enable/disable watchdog timer
+* Update timer value
+
+## Example
+
+```rust
+use arm_sp805::{SP805Registers, Watchdog, UniqueMmioPointer};
+use core::ptr::NonNull;
+# use zerocopy::transmute_mut;
+# let mut fake_registers = [0u32; 1024];
+# let WATCHDOG_ADDRESS : *mut SP805Registers = transmute_mut!(&mut fake_registers);
+# fn handler() {}
+
+// SAFETY: `WATCHDOG_ADDRESS` is the base address of a SP805 watchdog register block. It remains
+// valid for the lifetime of the application and nothing else references this address range.
+let watchdog_pointer = unsafe { UniqueMmioPointer::new(NonNull::new(WATCHDOG_ADDRESS).unwrap()) };
+
+let mut watchdog = Watchdog::new(watchdog_pointer, 0x0001_0000);
+watchdog.enable();
+
+loop {
+  handler();
+  watchdog.update();
+  # break
+}
+```
+
+## License
+
+The project is MIT and Apache-2.0 dual licensed, see `LICENSE-APACHE` and `LICENSE-MIT`.
+
+## Maintainers
+
+arm-sp805 is a trustedfirmware.org maintained project. All contributions are ultimately merged by the maintainers
+listed below.
+
+* Bálint Dobszay <balint.dobszay@arm.com>
+  [balint-dobszay-arm](https://github.com/balint-dobszay-arm)
+* Imre Kis <imre.kis@arm.com>
+  [imre-kis-arm](https://github.com/imre-kis-arm)
+* Sandrine Afsa <sandrine.afsa@arm.com>
+  [sandrine-bailleux-arm](https://github.com/sandrine-bailleux-arm)
+
+## Contributing
+
+Please follow the directions of the [Trusted Firmware Processes](https://trusted-firmware-docs.readthedocs.io/en/latest/generic_processes/index.html)
+
+Contributions are handled through [review.trustedfirmware.org](https://review.trustedfirmware.org/q/project:rust-spmc/arm-pl011-uart).
+
+## Reporting Security Issues
+
+Please follow the directions of the [Trusted Firmware Security Center](https://trusted-firmware-docs.readthedocs.io/en/latest/security_center/index.html)
+
+--------------
+
+*Copyright 2025 Arm Limited and/or its affiliates <open-source-office@arm.com>*
+
+*Arm is a registered trademark of Arm Limited (or its subsidiaries or affiliates).*
diff --git a/src/lib.rs b/src/lib.rs
index 0126c94..b328a86 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,17 +1,15 @@
 // SPDX-FileCopyrightText: Copyright 2023-2025 Arm Limited and/or its affiliates <open-source-office@arm.com>
 // SPDX-License-Identifier: MIT OR Apache-2.0
 
-//! Arm Watchdog Module (SP805) driver
-//!
-//! Driver implementation for the [SP805 watchdog module](https://developer.arm.com/documentation/ddi0270/latest/).
-
 #![no_std]
+#![doc = include_str!("../README.md")]
+#![deny(clippy::undocumented_unsafe_blocks)]
 
 use bitflags::bitflags;
+pub use safe_mmio::UniqueMmioPointer;
 use safe_mmio::{
     field,
     fields::{ReadPure, ReadPureWrite, WriteOnly},
-    UniqueMmioPointer,
 };
 use zerocopy::{FromBytes, Immutable, IntoBytes, KnownLayout};
 
@@ -41,7 +39,7 @@
     }
 }
 
-/// SP805 register map.
+/// SP805 Watchdog register map.
 #[derive(Clone, Eq, FromBytes, Immutable, IntoBytes, KnownLayout, PartialEq)]
 #[repr(C, align(4))]
 pub struct SP805Registers {
@@ -109,16 +107,13 @@
         self.with_unlock(|mut regs| {
             field!(regs, wdog_load).write(load_value);
             field!(regs, wdog_intclr).write(1);
-            field!(regs, wdog_control)
-                .write(ControlRegister::INTEN | ControlRegister::RESEN);
+            field!(regs, wdog_control).write(ControlRegister::INTEN | ControlRegister::RESEN);
         });
     }
 
     /// Disable watchdog
     pub fn disable(&mut self) {
-        self.with_unlock(|mut regs| {
-            field!(regs, wdog_control).write(ControlRegister::empty())
-        });
+        self.with_unlock(|mut regs| field!(regs, wdog_control).write(ControlRegister::empty()));
     }
 
     /// Update watchdog
@@ -143,7 +138,7 @@
     use super::*;
     use zerocopy::transmute_mut;
 
-    const LOAD_VALUE : u32 = 0xabcd_ef01;
+    const LOAD_VALUE: u32 = 0xabcd_ef01;
 
     #[repr(align(4096))]
     pub struct FakeSp805Registers {
@@ -183,7 +178,7 @@
 
     #[test]
     fn enable() {
-          let mut regs = FakeSp805Registers::new();
+        let mut regs = FakeSp805Registers::new();
 
         {
             // Enable
@@ -219,4 +214,4 @@
 
         assert_eq!(LOAD_VALUE, regs.reg_read(0x00));
     }
-}
\ No newline at end of file
+}
