diff --git a/doc/libfprint-docs.xml b/doc/libfprint-docs.xml
index ac42ceb0500e20306ec09bda410a15f0c6450513..21fd59053a92d490ab37a83a77f3b3d678cc57bd 100644
--- a/doc/libfprint-docs.xml
+++ b/doc/libfprint-docs.xml
@@ -40,6 +40,8 @@
Writing Drivers
+
+
diff --git a/doc/libfprint-sections.txt b/doc/libfprint-sections.txt
index b09840eee4394c6006fc8569d0069206ba224921..ea6ee945b56f99df72870b9fe84fe485bba33124 100644
--- a/doc/libfprint-sections.txt
+++ b/doc/libfprint-sections.txt
@@ -197,6 +197,20 @@ fp_dev_set_instance_data
FP_INSTANCE_DATA
+
+fpi-core.h
+fpi-core
+usb_id
+fp_driver_type
+
+
+
+fpi-core.h
+fpi-core-img
+FP_IMGDRV_SUPPORTS_UNCONDITIONAL_CAPTURE
+fp_img_driver
+
+
fpi-img.h
fpi-img
diff --git a/libfprint/fpi-core.c b/libfprint/fpi-core.c
index fc197570566d12786520a29414988df7f7b2812e..75b2838d2b0501afcfe14345c3ce36c3fa3a75a9 100644
--- a/libfprint/fpi-core.c
+++ b/libfprint/fpi-core.c
@@ -111,6 +111,25 @@ GSList *opened_devices = NULL;
* verification) on some devices which do not provide images.
*/
+/**
+ * SECTION:fpi-core
+ * @title: Driver structures
+ *
+ * Driver structures need to be defined inside each driver in
+ * order for the core library to know what function to call, and the capabilities
+ * of the driver and the devices it supports.
+ */
+
+/**
+ * SECTION:fpi-core-img
+ * @title: Image driver structures
+ *
+ * Image driver structures need to be defined inside each image driver in
+ * order for the core library to know what function to call, and the capabilities
+ * of the driver and the devices it supports. Its structure is based off the
+ * #fp_driver struct.
+ */
+
static GSList *registered_drivers = NULL;
static void register_driver(struct fp_driver *drv)