diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 28e849a4..70a5e9ce 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -48,8 +48,27 @@ static constexpr unsigned int IMGU_OUTPUT_WIDTH_MARGIN = 64;
 static constexpr unsigned int IMGU_OUTPUT_HEIGHT_MARGIN = 32;
 static constexpr Size IPU3ViewfinderSize(1280, 720);
 
+const std::array<const ControlValue, 3> IPU3NoiseReductionModeValues = {
+	static_cast<int32_t>(controls::draft::NoiseReductionModeOff),
+	static_cast<int32_t>(controls::draft::NoiseReductionModeFast),
+	static_cast<int32_t>(controls::draft::NoiseReductionModeHighQuality),
+};
+
 static const ControlInfoMap::Map IPU3Controls = {
 	{ &controls::draft::PipelineDepth, ControlInfo(2, 3) },
+	{ &controls::draft::BlackLevelLocked, ControlInfo(false, true) },
+	{ &controls::AeLocked, ControlInfo(false, true) },
+	{ &controls::draft::AePrecaptureTrigger,
+		ControlInfo(controls::draft::AePrecaptureTriggerValues) },
+	{ &controls::AwbMode, ControlInfo(controls::AwbModeValues) },
+	{ &controls::AwbLocked, ControlInfo(false, true) },
+	{ &controls::draft::EdgeMode,
+		ControlInfo(controls::draft::EdgeModeValues) },
+	{ &controls::draft::NoiseReductionMode,
+		ControlInfo(IPU3NoiseReductionModeValues) },
+	{ &controls::draft::SensorSensitivity, ControlInfo(32, 2400) },
+	{ &controls::draft::TonemapMode,
+		ControlInfo(controls::draft::TonemapModeValues) },
 };
 
 class IPU3CameraData : public CameraData
