diff --git a/include/ipa/ipa_interface.h b/include/ipa/ipa_interface.h
index 3a423e37671f..92f1aac50b85 100644
--- a/include/ipa/ipa_interface.h
+++ b/include/ipa/ipa_interface.h
@@ -80,6 +80,8 @@ struct ipa_context_ops {
 			      const struct ipa_operation_data *data);
 };
 
+struct ipa_context *ipaCreate();
+
 #ifdef __cplusplus
 }
 
diff --git a/src/libcamera/ipa_interface.cpp b/src/libcamera/ipa_interface.cpp
index 89fce0e8347f..cb2767a04711 100644
--- a/src/libcamera/ipa_interface.cpp
+++ b/src/libcamera/ipa_interface.cpp
@@ -261,6 +261,16 @@
  * \sa libcamera::IPAInterface::processEvent()
  */
 
+/**
+ * \fn ipaCreate()
+ * \brief Entry point to the IPA modules
+ *
+ * This function is the entry point to the IPA modules. It is implemented by
+ * every IPA module, and called by libcamera to create a new IPA context.
+ *
+ * \return A newly created IPA context
+ */
+
 namespace libcamera {
 
 /**
