diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h
index 548c06c65bb6..6bad36cbc369 100644
--- a/include/libcamera/controls.h
+++ b/include/libcamera/controls.h
@@ -59,16 +59,15 @@ private:
 class ControlId
 {
 public:
-	unsigned int id() const { return id_; }
-	const std::string &name() const { return name_; }
-	ControlType type() const { return type_; }
-
-protected:
 	ControlId(unsigned int id, const std::string &name, ControlType type)
 		: id_(id), name_(name), type_(type)
 	{
 	}
 
+	unsigned int id() const { return id_; }
+	const std::string &name() const { return name_; }
+	ControlType type() const { return type_; }
+
 private:
 	ControlId &operator=(const ControlId &) = delete;
 	ControlId(const ControlId &) = delete;
