diff --git a/src/libcamera/control_ids.cpp.in b/src/libcamera/control_ids.cpp.in
index 99c511d0..cba6258d 100644
--- a/src/libcamera/control_ids.cpp.in
+++ b/src/libcamera/control_ids.cpp.in
@@ -33,6 +33,9 @@ ${controls_def}
 
 /**
  * \brief List of all supported libcamera controls
+ *
+ * Unless otherwise stated, all controls are bi-directional, i.e. they can be
+ * set through Request::controls() and returned out through Request::metadata().
  */
 extern const ControlIdMap controls {
 ${controls_map}
diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml
index 4befec74..bcbab195 100644
--- a/src/libcamera/control_ids.yaml
+++ b/src/libcamera/control_ids.yaml
@@ -4,6 +4,8 @@
 #
 %YAML 1.2
 ---
+# Unless otherwise stated, all controls are bi-directional, i.e. they can be
+# set through Request::controls() and returned out through Request::metadata().
 controls:
   - AeEnable:
       type: bool
