Skip to content

media: i2c: add Sony IMX681 sensor support - #85

Draft
ooaklee wants to merge 2 commits into
jglathe:jg/ubuntu-qcom-x1e-7.2.yfrom
ooaklee:x/sp11-camera-imx681
Draft

media: i2c: add Sony IMX681 sensor support#85
ooaklee wants to merge 2 commits into
jglathe:jg/ubuntu-qcom-x1e-7.2.yfrom
ooaklee:x/sp11-camera-imx681

Conversation

@ooaklee

@ooaklee ooaklee commented Aug 31, 2026

Copy link
Copy Markdown

Summary

  • document the Sony IMX681 image sensor and its currently validated one-trio C-PHY profile
  • add a standalone V4L2 sensor driver for 3840x2640 RAW10 at approximately 30 frames per second
  • expose frame length, 24-bit exposure, analog-gain, and digital-gain controls
  • enable the driver in the Ubuntu X1E kernel configuration and package policy

Dependency and status

This PR is intended to target jg/ubuntu-qcom-x1e-7.2.y directly. It is the first camera topic in the ordered release-line extraction after the Denali baseline in #82 and the QSPI/touch core in #83. It follows the staging correction merged through #81 but does not replay #81 or merge the broad -sp11 staging branch.

There is no camera-topic dependency: this branch is based directly on jg/ubuntu-qcom-x1e-7.2.y at 032e174490d2. The X1E80100 C-PHY receiver support and the Denali OLED camera graph will follow in separate stacked PRs.

This PR is a draft. The driver cannot be exercised end to end until those receiver and board-description topics are present, so the exact split stack still needs the hardware checks listed below.

Containment

  • this topic adds the sensor binding, driver, register table, configuration, and maintainer entry only
  • it adds no Denali device-tree node and changes no Qualcomm PHY or CAMSS driver
  • the driver binds only to sony,imx681
  • probe rejects any endpoint other than one CSI-2 C-PHY trio on lane/trio 0 at the 1.203 GHz V4L2 link frequency, and rejects any input clock other than 19.2 MHz
  • only the validated 3840x2640 RAW10 mode is exposed
  • none of the staging source's CCS changes, VFE write-mode changes, CSID crop/drop changes, diagnostic logging, or sensor-specific CAMSS format handling is included

Provenance

Both commits are authored by Leon Silcott and carry the authorized Signed-off-by: Leon Silcott <leon@boasi.io>. They are focused rewrites of the final integration state recorded in d915d679423e.

The register tables and initial standalone sensor work derive from @turbineBMW's public camera review patch at immutable revision 05e5335bc724. That contribution is credited in both commit messages, and @turbineBMW is listed as the binding and driver maintainer. No Signed-off-by or Co-authored-by trailer is attributed to @turbineBMW because the referenced source did not provide one for these rewritten commits.

Validation

  • git diff --check 032e174490d2..HEAD
  • strict checkpatch: no errors or checks; only the generic new-file/MAINTAINERS prompt for the driver/table commit, with both files covered by the new SONY IMX681 SENSOR DRIVER entry
  • ARM64 ubuntu_x1e_defconfig W=1 build of drivers/media/i2c/imx681.o
  • DT binding/schema validation for Documentation/devicetree/bindings/media/i2c/sony,imx681.yaml
  • scripts/get_maintainer.pl resolves both new driver files to the new IMX681 maintainer entry
  • source audit confirms this topic contains no board-DT, Qualcomm PHY, CAMSS, CCS, or userspace-ABI changes

Hardware checks still required

These checks apply once this branch is combined with the dependent C-PHY and Denali graph topics:

  • boot the exact cumulative branch on an X1E Surface Pro 11 OLED
  • verify IMX681 identification, media-graph enumeration, and runtime power transitions
  • verify repeated and continuous 3840x2640 RAW10 capture at approximately 30 frames per second
  • verify exposure, analog-gain, and digital-gain controls and repeated stream start/stop
  • verify suspend/resume followed by a successful camera reopen
  • verify that a system without a sony,imx681 firmware node gains no device and sees no probe regression when the module is present

Document the Sony IMX681 image sensor and its currently validated
3840x2640 RAW10 profile. The profile uses a single CSI-2 C-PHY trio at
2406 Msymbol/s and an external 19.2 MHz clock.

List turbinebmw as maintainer, following the original public camera
review series from which the sensor work was developed.

Link: https://github.com/turbineBMW/surface-pro-11-linux/blob/05e5335bc72476d44390336701cf03efa5fd0165/kernel/sp11-camera-review.patch
Link: d915d67
Signed-off-by: Leon Silcott <leon@boasi.io>
Add a standalone V4L2 driver for the IMX681 front-camera mode validated
on the Surface Pro 11. The driver programs 3840x2640 RAW10 at about
30 frames per second and supports frame length, 24-bit exposure, analog
gain, and digital gain controls.

Reject firmware descriptions other than the validated one-trio C-PHY
topology, 1.203 GHz V4L2 link frequency, and 19.2 MHz input clock before
powering the sensor. This keeps the observed register sequence scoped to
the hardware profile on which it was tested.

The register tables and initial driver were developed from turbinebmw's
public camera review series, then corrected and runtime-validated in the
SP11 integration branch.

Link: https://github.com/turbineBMW/surface-pro-11-linux/blob/05e5335bc72476d44390336701cf03efa5fd0165/kernel/sp11-camera-review.patch
Link: d915d67
Signed-off-by: Leon Silcott <leon@boasi.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant