diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index af47739d8d4f..4cbd7ba3007b 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -12,6 +12,7 @@
 #include <vector>
 
 #include <libcamera/camera.h>
+#include <libcamera/control_ids.h>
 #include <libcamera/formats.h>
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
@@ -40,6 +41,10 @@ static constexpr unsigned int IMGU_OUTPUT_HEIGHT_ALIGN = 4;
 static constexpr unsigned int IMGU_OUTPUT_WIDTH_MARGIN = 64;
 static constexpr unsigned int IMGU_OUTPUT_HEIGHT_MARGIN = 32;
 
+static const ControlInfoMap IPU3Controls = {
+	{ &controls::draft::PipelineDepth, ControlInfo(2, 3) },
+};
+
 class IPU3CameraData : public CameraData
 {
 public:
@@ -770,6 +775,8 @@ int PipelineHandlerIPU3::registerCameras()
 
 		/* Initialize the camera properties. */
 		data->properties_ = cio2->sensor()->properties();
+		/* Initialze the camera controls. */
+		data->controlInfo_ = IPU3Controls;
 
 		/**
 		 * \todo Dynamically assign ImgU and output devices to each
