[PATCH v2 2/2] libcamera: Add gc08a3 camera sensor proprietary for ciri

Harvey Yang chenghaoyang at chromium.org
Tue Sep 24 10:26:11 CEST 2024


gc08a3 is the second sensor used by ciri.

Signed-off-by: Han-Lin Chen <hanlinchen at chromium.org>
Co-developed-by: Xing Gu <xinggu at chromium.org>
Co-developed-by: Yudhistira Erlandinata <yerlandinata at chromium.org>
Co-developed-by: Harvey Yang <chenghaoyang at chromium.org>
---
 src/ipa/libipa/camera_sensor_helper.cpp         | 17 +++++++++++++++++
 .../sensor/camera_sensor_properties.cpp         |  7 +++++++
 2 files changed, 24 insertions(+)

diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp
index cd7d12d6..afa177fe 100644
--- a/src/ipa/libipa/camera_sensor_helper.cpp
+++ b/src/ipa/libipa/camera_sensor_helper.cpp
@@ -536,6 +536,23 @@ private:
 };
 REGISTER_CAMERA_SENSOR_HELPER("gc05a2", CameraSensorHelperGc05a2)
 
+class CameraSensorHelperGc08a3 : public CameraSensorHelper
+{
+public:
+	uint32_t gainCode(double gain) const override
+	{
+		uint32_t aeGain = std::clamp((uint32_t)gain, kAeBaseGain_, kStep_ * kAeBaseGain_);
+		return aeGain * 0x400 / kAeBaseGain_;
+	}
+
+	// `double gain(uint32_t gainCode)` will not be used.
+
+private:
+	static constexpr uint32_t kStep_ = 16;
+	static constexpr uint32_t kAeBaseGain_ = 1024;
+};
+REGISTER_CAMERA_SENSOR_HELPER("gc08a3", CameraSensorHelperGc08a3)
+
 class CameraSensorHelperImx219 : public CameraSensorHelper
 {
 public:
diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp
index 3e1bd85e..c76c8088 100644
--- a/src/libcamera/sensor/camera_sensor_properties.cpp
+++ b/src/libcamera/sensor/camera_sensor_properties.cpp
@@ -77,6 +77,13 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen
 				{ controls::draft::TestPatternModeColorBars, 1 },
 			},
 		} },
+		{ "gc08a3", {
+			.unitCellSize = { 1120, 1120 },
+			.testPatternModes = {
+				{ controls::draft::TestPatternModeOff, 0 },
+				{ controls::draft::TestPatternModeColorBars, 2 },
+			},
+		} },
 		{ "hi846", {
 			.unitCellSize = { 1120, 1120 },
 			.testPatternModes = {
-- 
2.46.0.792.g87dc391469-goog



More information about the libcamera-devel mailing list