[PATCH v7 0/5] Enable cameras on Dell Latitude 5285 2-in-1
From: Thierry Chatard
Date: Wed Aug 19 2026 - 10:03:32 EST
This series enables the front (OV5670/INT3479) and rear (OV8858/INT3477)
cameras on the Dell Latitude 5285 2-in-1 under Linux.
I prepared this v7 at the end of April, then went on vacation in May and
forgot to send it out - apologies for the long gap since the v6 review.
Nothing has changed since then apart from the v6 review fixes listed below.
Per Documentation/process/coding-assistants.rst, and following up on Sakari's
question during the v6 review: this work was developed with significant help
from an AI coding assistant (Claude Code, by Anthropic). I used it to help
reverse-engineer the ACPI/TPS68470 bring-up, iterate on the board data, and
draft these patches. I have reviewed and tested all of it on the actual
hardware and take full responsibility for the result.
Changes since v6 (addressing feedback from Sakari Ailus and Hans de Goede):
- Patch 2: Move board_data lookup and clk_pdata setup to after the
device-type switch, so they are only reached on the Windows path.
- Patch 5: Revert the supply name reorder (avdd, dvdd, dovdd ->
avdd, dovdd, dvdd); regulator_bulk_enable() does not guarantee enable
ordering between supplies, so the reorder had no functional effect.
Remove the now-stale paragraph from the commit message.
Changes since v5:
- Patch 2: Use a local 'tables' pointer before the gpiod_add/remove_
lookup_table() loops so that neither call ends with a bare '(' (fixes
checkpatch CHECK reported by the Media CI robot).
Also restore the missing VSIO->avdd consumer for INT3479 (OV5670):
the v4 refactor dropped this entry, leaving OV5670 without its analog
supply and causing -EIO from ov5670_identify_module().
Changes since v4 (addressing feedback from Sakari Ailus):
- Patch 1: Drop the data == &spt_i2c_info guard from the probe condition;
the HID (INT3446) + DMI check is already precise enough.
- Patch 2: Revert n_consumers back to int (unsigned int broke the
if (n_consumers < 0) error check on skl_int3472_fill_clk_pdata());
restructure probe so ChromeOS and error cases return early from the
switch and the Windows path follows as straight-line code after it.
- Patch 3: Correct the VIO description in the commit message and code
comment; drop the inaccurate "no enable register" claim and instead
document why VIO is kept always_on (voltage must match VSIO, no direct
consumers).
- Patch 5: Drop the paragraph explaining the VSIO->dovdd mapping from
the commit message (implementation detail belonging in patch 3);
add an explanation for the dvdd/dovdd reorder in supply_names (core
power stable before the I2C passthrough opens).
- Patch 4: Unchanged.
Tested on Ubuntu 25.10 (kernel 6.17.0-22-generic) and Ubuntu 26.04
(kernel 7.0.0-28-generic). Both cameras working in Zoom, Chrome, and
GNOME Camera via PipeWire.
This approach has also been independently tested on the closely-related Dell
Latitude 5290 2-in-1 (same IPU3/TPS68470/OV5670/OV8858/DW9714 stack) by
Vitalii Tytskyi, who got both cameras working across boot and suspend/resume
with additional 5290 board data, and who separately identified a
hibernate-restore fix for the TPS68470. Dell 5290 board data and that
hibernate fix can follow as a separate series on top of this one:
https://github.com/vitovt/dell-5290-camera-kernel/tree/master/patches
Thierry Chatard (5):
platform/x86: intel_lpss: add resource conflict quirk for Dell Latitude 5285
platform/x86: int3472: tps68470: fix clock consumer registration for Dell Latitude 5285
platform/x86: int3472: tps68470: add board data for Dell Latitude 5285
media: ipu-bridge: add sensor configuration for OV8858 (INT3477)
media: ov8858: add ACPI device ID INT3477