[PATCH v5 0/2] media: Add bindings and driver for Sony IMX678
From: Jai Luthra <hidden>
Date: 2026-07-03 09:20:24
Also in:
linux-media, lkml
Hi, This series adds dt-bindings and a basic V4L2 driver for Sony IMX678 camera sensor. More details about the sensor and features supported in the driver are in the relevant patches. Support for binning and cropping has been dropped from this series, in favor of implementing it with the new raw sensor model proposed by Sakari. [1] I have a WIP branch [2] that uses the new raw sensor model to implement the following features for this sensor driver: - Internal pads - Streams - Generic raw formats - Embedded line data - Configurable analogue crop - Configurable binning mode - RAW10 output [1]: https://lore.kernel.org/all/20260409201501.975242-1-sakari.ailus@linux.intel.com/ (local) [2]: https://github.com/jailuthra/linux/commits/imx678-meta Signed-off-by: Jai Luthra <redacted> --- Changes in v5: - Rebase on v7.2-rc1 - Drop note about the fallback name in the bindings commit message - Drop unnecessary code like set_pad_format() or set_framing_limits(), those will be added later when we use them for cropping and binning - Explicitly set format in init_state() - No need to track rpm_in_use flag, so drop it - Drop SUBDEV_FL_HAS_EVENTS flag - Drop unused format parameter from program_window() - Use container_of_const() - Add missing media-bus-format.h header - Cleanup comments - Link to v4: https://lore.kernel.org/r/20260605-imx678-v4-0-58e57c67143d@ideasonboard.com (local) Changes in v4: - Drop support for freely-configurable resolution through cropping and binning - Expect both specific and generic device name in device tree compatible - Reduce analogue gain maximum to 100 (30dB) as the gain register includes digital gain from 101 (30.3dB) -> 240 (72dB) - Minor bug fixes and cleanups following review comments from Sakari, Tarang on v3 - Link to v3: https://lore.kernel.org/r/20260520-imx678-v3-0-8b5f9676486e@ideasonboard.com (local) Changes in v3: - Use `reset-gpios`, mentioning the sensor XCLR acts like RESETN, instead of `xclr-gpios` - Update minimum crop width and height according to the PIX_[HV]WIDTH register limits - Expect the user to first select a crop rectangle using S_SELECTION, and then choose one of two sizes (non-binned or binned) in S_FMT. This matches what IMX296 already does, simplifying the selection logic quite a bit. - Enumerate only the frame sizes possible for the current crop rectangle in ENUM_FRAMESIZES - Link to v2: https://lore.kernel.org/r/20260516-imx678-v2-0-4854ac61d6fb@ideasonboard.com (local) Changes in v2: PATCH 1: - Add per-variant compatibles for mono and colour, alongside the generic fallback, so the variant can be declared without powering the sensor at probe. - Rename reset GPIO to xclr as that's what it's called in the datasheet, and how it behaves. - Reference the generic video interface devices schema and switch to unevaluatedProperties. - Drop "link-frequencies: true" - Drop the T: entry for media.git from MAINTAINERS. PATCH 2: - Treat the pixel rate as a fixed sensor property rather than deriving it from link frequency and bit depth. Removes the iclk<->pixel conversion helpers, instead using a fixed 8x ratio. - Express HBLANK in pixels with a step of 8. - Make VBLANK step = 2 and rewrite the exposure register when VBLANK changes, so the effective exposure does not silently shift. - Fix power sequencing: hold the sensor in reset until power_on, add the missing post-reset delay, and disable the clock before the regulators on power_off. - Drop the "common regs written" flag, program them in power_on. - Add variant match data and cross-check the register-reported type against DT; rename detect() to identify_model(). - Use v4l2_link_freq_to_bitmap() and expose the full link frequency menu with the configured one as the selected RO option. - Drop unused includes and defines, misc cleanups - Kconfig: depend on OF_GPIO - Link to v1: https://lore.kernel.org/r/20260513-imx678-v1-0-30fc593ed8fa@ideasonboard.com (local) --- Jai Luthra (2): dt-bindings: media: i2c: Add Sony IMX678 media: i2c: imx678: Add driver for Sony IMX678 .../devicetree/bindings/media/i2c/sony,imx678.yaml | 130 ++ MAINTAINERS | 7 + drivers/media/i2c/Kconfig | 11 + drivers/media/i2c/Makefile | 1 + drivers/media/i2c/imx678.c | 1446 ++++++++++++++++++++ 5 files changed, 1595 insertions(+) --- base-commit: dc59e4fea9d83f03bad6bddf3fa2e52491777482 change-id: 20260513-imx678-5c1aee9c1dcf Best regards, -- Jai Luthra [off-list ref]