[v2,1/2] libcamera: libipa: camera_sensor: Add Sony IMX678 properties
diff mbox series

Message ID 20260618-imx678-v2-1-a288102744c3@ideasonboard.com
State New
Headers show
Series
  • libcamera: sensor: Add support for Sony IMX678
Related show

Commit Message

Jai Luthra June 18, 2026, 2:56 p.m. UTC
Add Sony IMX678 properties, along with the black level and gain model
through a libipa camera sensor helper.

The test patterns are intentionally left empty, as they are similar to
IMX335/IMX283 and don't map very well to libcamera's enum values.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com>
---
 src/ipa/libipa/camera_sensor_helper.cpp           | 12 ++++++++++++
 src/libcamera/sensor/camera_sensor_properties.cpp | 10 ++++++++++
 2 files changed, 22 insertions(+)

Patch
diff mbox series

diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp
index 3028197e1..9ab7a52f2 100644
--- a/src/ipa/libipa/camera_sensor_helper.cpp
+++ b/src/ipa/libipa/camera_sensor_helper.cpp
@@ -642,6 +642,18 @@  public:
 };
 REGISTER_CAMERA_SENSOR_HELPER("imx477", CameraSensorHelperImx477)
 
+class CameraSensorHelperImx678 : public CameraSensorHelper
+{
+public:
+	CameraSensorHelperImx678()
+	{
+		/* From datasheet: 0x32 at 10bits. */
+		blackLevel_ = 3200;
+		gain_ = AnalogueGainExp{ 1.0, expGainDb(0.3) };
+	}
+};
+REGISTER_CAMERA_SENSOR_HELPER("imx678", CameraSensorHelperImx678)
+
 class CameraSensorHelperImx708 : public CameraSensorHelper
 {
 public:
diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp
index b217363d8..28043150e 100644
--- a/src/libcamera/sensor/camera_sensor_properties.cpp
+++ b/src/libcamera/sensor/camera_sensor_properties.cpp
@@ -309,6 +309,16 @@  const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen
 				.hblankDelay = 3
 			},
 		} },
+		{ "imx678", {
+			.unitCellSize = { 2000, 2000 },
+			.testPatternModes = {},
+			.sensorDelays = {
+				.exposureDelay = 2,
+				.gainDelay = 2,
+				.vblankDelay = 2,
+				.hblankDelay = 2
+			},
+		} },
 		{ "imx708", {
 			.unitCellSize = { 1400, 1400 },
 			.testPatternModes = {