Re: [PATCH v3 0/3] media: i2c: Add OmniVision OG0VA1B camera sensor driver - IPU and ACPI
From: Alain Cousinie
Date: Tue Jul 28 2026 - 10:33:48 EST
Hello,
I am a novice when it comes to the Linux kernel.
The og0va1b sensor is also used in laptops (HP, Dell, etc.) with IPU6 and ACPI.
I tried this on my HP Spectre 14-eu0xxx laptop, and it seems to work (though it isn't fully functional yet, as other elements are missing).
I would like to propose adding this configuration for this sensor.
So, I added the ACPI ID—OVTI00AB for og0va1b—to the IPU:
+++ b/drivers/media/pci/intel/ipu-bridge.c
@@ -73,6 +73,8 @@
IPU_SENSOR_CONFIG("INT3537", 1, 437000000),
/* Lontium lt6911uxe */
IPU_SENSOR_CONFIG("INTC10C5", 0),
+ /* Omnivision OG0VA1B */
+ IPU_SENSOR_CONFIG("OVTI00AB", 1, 480000000),
/* Omnivision OV01A10 / OV01A1S */
IPU_SENSOR_CONFIG("OVTI01A0", 1, 400000000),
IPU_SENSOR_CONFIG("OVTI01AS", 1, 400000000),
---
Then, I added the ACPI declaration to `ov0ve1b.c`, following the patches for og0va1b:
diff --git a/drivers/media/i2c/og0ve1b.c b/drivers/media/i2c/og0ve1b.c
--- a/drivers/media/i2c/og0ve1b.c
+++ b/drivers/media/i2c/og0ve1b.c
@@ -978,8 +978,11 @@
og0ve1b->dev = &client->dev;
og0ve1b->data = i2c_get_match_data(client);
- if (!og0ve1b->data)
- return -ENODEV;
+ if (!og0ve1b->data) {
+ og0ve1b->data = device_get_match_data(&client->dev);
+ if (!og0ve1b->data)
+ return -ENODEV;
+ }
v4l2_i2c_subdev_init(&og0ve1b->sd, client, &og0ve1b_subdev_ops);
v4l2_i2c_subdev_set_name(&og0ve1b->sd, client,
@@ -1114,6 +1117,15 @@
SET_RUNTIME_PM_OPS(og0ve1b_power_off, og0ve1b_power_on, NULL)
};
+#ifdef CONFIG_ACPI
+static const struct acpi_device_id og0ve1b_acpi_ids[] = {
+ {"OVTI00AB", (uintptr_t)&og0va1b_data},
+ { /* sentinel */ }
+};
+
+MODULE_DEVICE_TABLE(acpi, og0ve1b_acpi_ids);
+#endif
+
static const struct of_device_id og0ve1b_of_match[] = {
{ .compatible = "ovti,og0va1b", .data = &og0va1b_data },
{ .compatible = "ovti,og0ve1b", .data = &og0ve1b_data },
@@ -1126,6 +1138,7 @@
.name = "og0ve1b",
.pm = &og0ve1b_pm_ops,
.of_match_table = og0ve1b_of_match,
+ .acpi_match_table = ACPI_PTR(og0ve1b_acpi_ids),
},
.probe = og0ve1b_probe,
.remove = og0ve1b_remove,
---
Here is an example of my tests: `$ cam -c2 -C1 -Ftest.bin`
Using camera \_SB_.PC00.LNK1 as cam0
[3:02:57.280464484] [55404] INFO Camera camera.cpp:1216 configuring streams: (0) 640x480-R10/sYCC
cam0: Capture 1 frames
10977.366149 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 614400
This produces a raw image file that I can view using various tools, and it appears to correspond to the sensor.
Best Regards,
Alain
On 23/07/2026 à 04:41, Wenmeng Liu wrote :
On 7/8/2026 10:33 PM, Wenmeng Liu wrote:
Add OmniVision OG0VA1B driver support. The OmniVision OG0VA1B is a
1/10-inch monochrome CMOS VGA image sensor. It outputs 10-bit raw (Y10)
frames at up to 640x480 resolution over a single-lane MIPI CSI-2
interface and is controlled via an I2C-compatible SCCB bus.
This driver has been verified(include tpg) on the Purwa EVK.
Signed-off-by: Wenmeng Liu <wenmeng.liu@xxxxxxxxxxxxxxxx>
---
Changes in v3:
- Generalise the binding title and description for both sensors. -- Vladimir
- Keep the cached pre_isp read so the OG0VE1B test pattern still works,
select it via a per-sensor callback. -- Bryan, Vladimir
- Rename the "sensor" field to "data", drop bpp (derive from code) and
add og0ve1b_pixel_rate(). -- Vladimir
- Sort defines, rename the shared CHIP_ID reg to OG0V_ and order
og0va1b_data first. -- Vladimir
- Expose all four OG0VA1B test patterns instead of one.
- Link to v2: https://lore.kernel.org/r/20260702-og0va1b-v2-0-0071442caa2a@xxxxxxxxxxxxxxxx
Changes in v2:
- Integrate OG0VA1B into the existing og0ve1b driver and binding
instead. -- Vladimir
- Link to v1: https://lore.kernel.org/r/20260618-og0va1b-v1-0-dda71bb83009@xxxxxxxxxxxxxxxx
---
Wenmeng Liu (3):
dt-bindings: media: i2c: og0ve1b: Add OmniVision OG0VA1B camera sensor
media: i2c: og0ve1b: Introduce per-sensor data structure
media: i2c: og0ve1b: Add support for OmniVision OG0VA1B
.../bindings/media/i2c/ovti,og0ve1b.yaml | 15 +-
drivers/media/i2c/og0ve1b.c | 375 ++++++++++++++++++---
2 files changed, 344 insertions(+), 46 deletions(-)
---
base-commit: 5c73cd9f0819c1c44e373e3dabb68318b1de1a12
change-id: 20260618-og0va1b-55bbf3cabb0e
Best regards,
Gentle reminder to review this patchset.
Thanks,
Wenmeng