intel / intel/ipu6-drivers

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

Open
#402 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
251
Forks
75
PR merge metrics
No merged PRs in 30d

Description

## 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 ✅
```bash
$ 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:
```bash
$ modinfo ov5678 | grep alias
alias: acpi*:OVTI5678:*

$ lsmod | grep ov5678
ov5678 24576 0
```

However, probe fails at hardware configuration check:
```bash
$ 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 #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!

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.