Skip to content

Requesting support for OmniVision OV5678 sensor (ACPI ID: OVTI5678) used in Lenovo IdeaPad Duet 5 12IRU8 and other recent 2-in-1 laptops. #402

@hokgt

Description

@hokgt

Hardware Information

  • Laptop: Lenovo IdeaPad Duet 5 12IRU8 (Model 83B3)
  • Operating System: Fedora Linux (kernel 6.17.9-300.fc43.x86_64)
  • Camera Sensor: OmniVision OV5678
  • ACPI Device ID: OVTI5678
  • I2C Bus: i2c-3 (i2c_designware.3, address 0x36 likely)
  • Camera PMIC: TPS68470 (INT3472)
  • IPU: Intel IPU6

Camera Specifications

According to Lenovo specifications:

  • Front Camera: 5MP Fixed-Focus with IR support (for Windows Hello)
  • Rear Camera: 5MP Auto-Focus
  • Sensor Type: RGB-IR (Bayer 4x4 format, similar to OV01A1S)

Current Status

Hardware Detection ✅

$ ls -la /sys/bus/i2c/devices/ | grep OVTI
i2c-OVTI5678:00 -> .../i2c-3/i2c-OVTI5678:00

$ cat /sys/bus/i2c/devices/i2c-OVTI5678:00/modalias
acpi:OVTI5678:

$ cat /sys/bus/i2c/devices/i2c-OVTI5678:00/waiting_for_supplier
0

IPU6 Infrastructure ✅

All required components are loaded:

  • intel_ipu6 and intel_ipu6_isys
  • ivsc_csi and mei_vsc
  • intel_skl_int3472_tps68470, tps68470_regulator, clk_tps68470
  • ✅ IPU6 firmware present in /lib/firmware/intel/ipu/
  • ✅ IPU6 camera HAL installed

Missing: Sensor Driver ❌

No driver in the mainline kernel or ipu6-drivers repository supports OVTI5678.

What I've Tried

I created a custom driver by adapting ov01a1s.c:

  1. Changed ACPI ID to OVTI5678
  2. Renamed all symbols from ov01a1s to ov5678
  3. Compiled, signed (Secure Boot), and loaded successfully

Result

The driver loads and recognizes the device:

$ modinfo ov5678 | grep alias
alias:          acpi*:OVTI5678:*

$ lsmod | grep ov5678
ov5678                 24576  0

However, probe fails at hardware configuration check:

$ sudo dmesg | grep ov5678
ov5678 i2c-OVTI5678:00: failed to check hwcfg: -517

Analysis: Error -517 (EPROBE_DEFER) occurs in the ov5678_check_hwcfg() function. The ov01a1s-based driver expects different hardware resources than what OV5678 actually needs:

  • Clock frequencies
  • Regulator names/voltages
  • GPIO configurations
  • ACPI _DSM method parameters

Request

Could you please add official support for the OV5678 sensor to ipu6-drivers?

I've gotten 90% of the way there - the entire stack is working and the driver successfully binds to the device. The remaining 10% requires OV5678-specific hardware configuration that needs:

  • OV5678 sensor specifications (clock rates, power requirements)
  • Correct regulator/GPIO mappings
  • ACPI configuration specific to this sensor

Affected Devices

The OV5678 sensor (OVTI5678) is used in:

  • Lenovo IdeaPad Duet 5 12IRU8 (my device)
  • Dell Latitude 7320 (mentioned in issue Add support for OV5678 sensor #24)
  • Likely other recent Intel-based 2-in-1 convertibles with Windows Hello

Additional Context

Reference: Issue #24 also mentions OV5678 support needed for Dell Latitude 7320.

Technical Notes:

  • OV5678 uses similar RGB-IR Bayer 4x4 format as OV01A1S
  • Based on Lenovo specs, it's a 5MP sensor with dual RGB-IR capability
  • Hardware dependencies (INT3472 PMIC) are already met

Files Available

I can provide:

  • Complete ACPI DSDT tables (/tmp/dsdt.dsl)
  • Custom driver source (ov5678.c)
  • Full dmesg output
  • Hardware topology information
  • Any additional debugging information needed

Workaround

None available. Camera is completely non-functional on Linux without proper driver support.

Willingness to Help

I'm happy to:

  • Test patches
  • Provide debugging logs
  • Test different configurations
  • Contribute to driver development if guidance is provided

Thank you for maintaining this project!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions