[PATCH v9 0/3] Add support for the Sony IMX681 camera sensor
From: Sergey Lebedev
Date: Thu Nov 05 2026 - 23:12:43 EST
The Sony IMX681 is the user-facing camera on the Microsoft Surface Pro 11
for Business (Intel Lunar Lake, IPU7), ACPI device SONY0681. Without a
driver the camera does not appear at all.
1/3 dt-bindings: media: Add Sony IMX681 (mine)
2/3 media: i2c: Add Sony IMX681 sensor driver (Andre's, co-developed)
3/3 media: ipu-bridge: Add Sony IMX681 (mine)
The driver is Andre's, reverse-engineered from I2C traces taken under
Windows.
Changes in v9
=============
Rebased on v7.4-rc1, where v8 no longer applied: imx576 went in next to
2/3's Makefile line. No functional change; imx681.c is byte for byte v8's.
- 2/3: the Makefile line follows imx678.
- 3/3: the bridge entry follows the IMX471 ones, in the table's order
there. This also keeps it apart from the VD55G0 entry in [1], so the
two series apply in either order.
All tags are kept. On v7.4-rc1, 2/3 and 3/3 build with W=1 and sparse
clean, alone and together with [1]; the tests below are v8's.
While this sensor streams, IPU7's CSI-2 receiver logs "Received packet is
too long" once per frame, and the frames are complete. Andre sees the same
with his downstream driver, so it does not come from this series.
Tested with v8 on the Surface Pro 11 for Business, on media next
2dcdfb625c3 with KASAN and lockdep:
- the clock is INT3472:02-clk at 19.2 MHz, with the sensor as consumer;
- v4l2-compliance 46 of 46, no warnings;
- 3844x2640 at 30.01 fps;
- the four flip states give the four Bayer orders, and EBUSY while
streaming;
- runtime suspend after streaming, and capture after unbind and bind;
- no KASAN or lockdep report from the driver;
- W=1 and sparse clean, dt_binding_check clean.
[1] https://lore.kernel.org/all/20261103103235.94397-1-lsa.uz@xxxxx/
v8: https://lore.kernel.org/all/20261002082537.74084-1-lsa.uz@xxxxx/
Andre Gilerson (1):
media: i2c: Add Sony IMX681 sensor driver
Sergey Lebedev (2):
dt-bindings: media: Add Sony IMX681
media: ipu-bridge: Add Sony IMX681
.../bindings/media/i2c/sony,imx681.yaml | 108 ++
MAINTAINERS | 8 +
drivers/media/i2c/Kconfig | 10 +
drivers/media/i2c/Makefile | 1 +
drivers/media/i2c/imx681.c | 1032 +++++++++++++++++
drivers/media/pci/intel/ipu-bridge.c | 2 +
6 files changed, 1161 insertions(+)
create mode 100644 Documentation/devicetree/bindings/media/i2c/sony,imx681.yaml
create mode 100644 drivers/media/i2c/imx681.c
base-commit: 6628e7d4c6b25c8d18f1345e3a20d21829aae7e4
--
2.54.0