[PATCH v5 1/2] dt-bindings: media: i2c: Add Sony IMX678

From: Jai Luthra

Date: Fri Jul 03 2026 - 05:22:52 EST


Sony IMX678 is an 8.4 Megapixel (3856x2180) CMOS sensor, that can output
pixels over MIPI CSI-2 bus. Add bindings for it.

Runtime detection for mono vs color variant of this sensor is feasible
by reading a register, but it's not always desirable given the sensor
needs to be powered on for it, potentially flashing a privacy LED or
wasting precious boot time.

The manufacturer or vendor knows which sensor variant they are putting
on their board, so we define the compatible property to expect the
(color/mono) specific name of the sensor, along with a generic fallback.

Reviewed-by: Conor Dooley <conor.dooley@xxxxxxxxxxxxx>
Signed-off-by: Jai Luthra <jai.luthra@xxxxxxxxxxxxxxxx>
---
Changes in v5:
- Drop note about the fallback name in the commit message
- No change in patch
---
.../devicetree/bindings/media/i2c/sony,imx678.yaml | 130 +++++++++++++++++++++
MAINTAINERS | 6 +
2 files changed, 136 insertions(+)

diff --git a/Documentation/devicetree/bindings/media/i2c/sony,imx678.yaml b/Documentation/devicetree/bindings/media/i2c/sony,imx678.yaml
new file mode 100644
index 000000000000..098f72544216
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/sony,imx678.yaml
@@ -0,0 +1,130 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (C) 2026 Ideas on Board Oy
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/sony,imx678.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sony IMX678 Sensor
+
+maintainers:
+ - Jai Luthra <jai.luthra@xxxxxxxxxxxxxxxx>
+
+description:
+ Sony IMX678 diagonal 8.86 mm (Type 1/1.8) CMOS active pixel type solid-state
+ image sensor with a square pixel array and 8.40M (3856x2180) effective pixels.
+
+allOf:
+ - $ref: /schemas/media/video-interface-devices.yaml#
+
+properties:
+ compatible:
+ items:
+ - enum:
+ - sony,imx678-aamr
+ - sony,imx678-aaqr
+ - const: sony,imx678
+ description:
+ The IMX678 sensor exists in a colour variant (IMX678-AAQR) and a mono
+ variant (IMX678-AAMR). The variant-specific compatible describes the
+ exact sensor variant, with the generic IMX678 compatible as a fallback.
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ description: |
+ Input clock (INCK). Only the rates listed in the datasheet are supported:
+ 13.5, 18, 24, 27, 36, 37.125, 72, and 74.25 MHz.
+ maxItems: 1
+
+ avdd-supply:
+ description: Analog power supply (3.3V)
+
+ ovdd-supply:
+ description: Interface power supply (1.8V)
+
+ dvdd-supply:
+ description: Digital power supply (1.1V)
+
+ reset-gpios:
+ description: Sensor RESETN (XCLR) GPIO
+ maxItems: 1
+
+ port:
+ $ref: /schemas/graph.yaml#/$defs/port-base
+ additionalProperties: false
+
+ properties:
+ endpoint:
+ $ref: /schemas/media/video-interfaces.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ data-lanes:
+ oneOf:
+ - items:
+ - const: 1
+ - const: 2
+ - items:
+ - const: 1
+ - const: 2
+ - const: 3
+ - const: 4
+ - items:
+ - const: 1
+ - const: 2
+ - const: 3
+ - const: 4
+ - const: 5
+ - const: 6
+ - const: 7
+ - const: 8
+
+ required:
+ - data-lanes
+ - link-frequencies
+
+ required:
+ - endpoint
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - avdd-supply
+ - ovdd-supply
+ - dvdd-supply
+ - port
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ camera@1a {
+ compatible = "sony,imx678-aaqr", "sony,imx678";
+ reg = <0x1a>;
+ clocks = <&imx678_clk>;
+
+ avdd-supply = <&camera_avdd_3v3>;
+ ovdd-supply = <&camera_ovdd_1v8>;
+ dvdd-supply = <&camera_dvdd_1v1>;
+
+ reset-gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+
+ port {
+ imx678: endpoint {
+ remote-endpoint = <&cam>;
+ data-lanes = <1 2 3 4>;
+ link-frequencies = /bits/ 64 <720000000>;
+ };
+ };
+ };
+ };
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 15011f5752a9..e764bc2a6627 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -25260,6 +25260,12 @@ T: git git://linuxtv.org/media.git
F: Documentation/devicetree/bindings/media/i2c/sony,imx415.yaml
F: drivers/media/i2c/imx415.c

+SONY IMX678 SENSOR DRIVER
+M: Jai Luthra <jai.luthra@xxxxxxxxxxxxxxxx>
+L: linux-media@xxxxxxxxxxxxxxx
+S: Maintained
+F: Documentation/devicetree/bindings/media/i2c/sony,imx678.yaml
+
SONY MEMORYSTICK SUBSYSTEM
M: Maxim Levitsky <maximlevitsky@xxxxxxxxx>
M: Alex Dubov <oakad@xxxxxxxxx>

--
2.54.0