[4/4] libcamera: libipa: Add vd55g1 support for libipa
diff mbox series

Message ID 20250905-vd55g1_support-v1-4-545d39f280b2@foss.st.com
State Superseded
Headers show
Series
  • Add vd55g1 support for rpi and libipa
Related show

Commit Message

Benjamin Mugnier Sept. 5, 2025, 9:08 a.m. UTC
Values are sourced initially from the vd55g1 user manual.

Signed-off-by: Benjamin Mugnier <benjamin.mugnier@foss.st.com>
---
 src/ipa/libipa/camera_sensor_helper.cpp | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Kieran Bingham Sept. 16, 2025, 1:35 p.m. UTC | #1
Quoting Benjamin Mugnier (2025-09-05 10:08:25)
> Values are sourced initially from the vd55g1 user manual.
> 
> Signed-off-by: Benjamin Mugnier <benjamin.mugnier@foss.st.com>

After embarassingly getting this inverted when trying to verify this I
realised I was comparing the gain calc against the gainCode calculation
:D

But net result is ... now I believe this is correct and matches the RPi
implementation so:

I think I interpret from this and the driver that we have 28 codes
that range from a gain of x1.0->8.0

Picking up from Paul's tools with desmos [0] for cool graphs ;D
[0] https://www.desmos.com/calculator/yowz4dby6d

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> ---
>  src/ipa/libipa/camera_sensor_helper.cpp | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp
> index dcd69d9f2bbb39feabfefe41cee8b45f0f958127..4f052151940fbc5db2628a7f53abcc135cbdb55c 100644
> --- a/src/ipa/libipa/camera_sensor_helper.cpp
> +++ b/src/ipa/libipa/camera_sensor_helper.cpp
> @@ -745,6 +745,18 @@ public:
>  };
>  REGISTER_CAMERA_SENSOR_HELPER("ov13858", CameraSensorHelperOv13858)
>  
> +class CameraSensorHelperVd55g1 : public CameraSensorHelper
> +{
> +public:
> +       CameraSensorHelperVd55g1()
> +       {
> +               /* From datasheet: 0x40 at 10bits. */
> +               blackLevel_ = 4096;
> +               gain_ = AnalogueGainLinear{ 0, 32, -1, 32 };
> +       }
> +};
> +REGISTER_CAMERA_SENSOR_HELPER("vd55g1", CameraSensorHelperVd55g1)
> +
>  class CameraSensorHelperVd56g3 : public CameraSensorHelper
>  {
>  public:
> 
> -- 
> 2.25.1
>

Patch
diff mbox series

diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp
index dcd69d9f2bbb39feabfefe41cee8b45f0f958127..4f052151940fbc5db2628a7f53abcc135cbdb55c 100644
--- a/src/ipa/libipa/camera_sensor_helper.cpp
+++ b/src/ipa/libipa/camera_sensor_helper.cpp
@@ -745,6 +745,18 @@  public:
 };
 REGISTER_CAMERA_SENSOR_HELPER("ov13858", CameraSensorHelperOv13858)
 
+class CameraSensorHelperVd55g1 : public CameraSensorHelper
+{
+public:
+	CameraSensorHelperVd55g1()
+	{
+		/* From datasheet: 0x40 at 10bits. */
+		blackLevel_ = 4096;
+		gain_ = AnalogueGainLinear{ 0, 32, -1, 32 };
+	}
+};
+REGISTER_CAMERA_SENSOR_HELPER("vd55g1", CameraSensorHelperVd55g1)
+
 class CameraSensorHelperVd56g3 : public CameraSensorHelper
 {
 public: