Add YAML bindings for the Omnivision OV08D10 CMOS image sensor.
Signed-off-by: Matthias Fend <matthias.fend@emfend.at>
---
.../bindings/media/i2c/ovti,ov08d10.yaml | 101 +++++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 102 insertions(+)
diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov08d10.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov08d10.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..96dbf61cf7c188544f4120216ae2b8e0155128b7
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov08d10.yaml
@@ -0,0 +1,101 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/ovti,ov08d10.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Omnivision OV08D10 1/4-Inch 8MP CMOS color image sensor
+
+maintainers:
+ - Jimmy Su <jimmy.su@intel.com>
+
+description:
+ The Omnivision OV08D10 is a 1/4-Inch 8MP CMOS color image sensor with an
+ active array size of 3280 x 2464. It is programmable through I2C
+ interface. Image data is transmitted via MIPI CSI-2 using 2 lanes.
+
+allOf:
+ - $ref: /schemas/media/video-interface-devices.yaml#
+
+properties:
+ compatible:
+ const: ovti,ov08d10
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ description: MCLK input clock (6 - 27 MHz)
+ maxItems: 1
+
+ reset-gpios:
+ description: Active low XSHUTDN pin
+ maxItems: 1
+
+ dovdd-supply:
+ description: IO power supply (1.8V)
+
+ avdd-supply:
+ description: Analog power supply (2.8V)
+
+ dvdd-supply:
+ description: Core power supply (1.2V)
+
+ port:
+ $ref: /schemas/graph.yaml#/$defs/port-base
+ additionalProperties: false
+
+ properties:
+ endpoint:
+ $ref: /schemas/media/video-interfaces.yaml#
+ unevaluatedProperties: false
+
+ required:
+ - data-lanes
+ - link-frequencies
+
+ required:
+ - endpoint
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - port
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/media/video-interfaces.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ sensor@36 {
+ compatible = "ovti,ov08d10";
+ reg = <0x36>;
+
+ clocks = <&ov08d10_clk>;
+
+ dovdd-supply = <&ov08d10_vdddo_1v8>;
+ avdd-supply = <&ov08d10_vdda_2v8>;
+ dvdd-supply = <&ov08d10_vddd_1v2>;
+
+ orientation = <2>;
+ rotation = <0>;
+
+ reset-gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+
+ port {
+ ov08d10_output: endpoint {
+ data-lanes = <1 2>;
+ link-frequencies = /bits/ 64 <360000000 720000000>;
+ remote-endpoint = <&csi_input>;
+ };
+ };
+ };
+ };
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 55af015174a54e17cc7449e5a80b6cdc83aa6fde..2484d0bcc1f09582828cafbdb7d45dd12b55af60 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -19505,6 +19505,7 @@ M: Jimmy Su <jimmy.su@intel.com>
L: linux-media@vger.kernel.org
S: Maintained
T: git git://linuxtv.org/media.git
+F: Documentation/devicetree/bindings/media/i2c/ovti,ov08d10.yaml
F: drivers/media/i2c/ov08d10.c
OMNIVISION OV08X40 SENSOR DRIVER
--
2.34.1
On Thu, Feb 26, 2026 at 09:56:01AM +0100, Matthias Fend wrote: > Add YAML bindings for the Omnivision OV08D10 CMOS image sensor. Drop YAML. You add DT bindings, not YAML. No YAML is bound here to anything. > > Signed-off-by: Matthias Fend <matthias.fend@emfend.at> > --- > .../bindings/media/i2c/ovti,ov08d10.yaml | 101 +++++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 102 insertions(+) > > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov08d10.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov08d10.yaml > new file mode 100644 > index 0000000000000000000000000000000000000000..96dbf61cf7c188544f4120216ae2b8e0155128b7 > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov08d10.yaml > @@ -0,0 +1,101 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/media/i2c/ovti,ov08d10.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Omnivision OV08D10 1/4-Inch 8MP CMOS color image sensor > + > +maintainers: > + - Jimmy Su <jimmy.su@intel.com> > + > +description: > + The Omnivision OV08D10 is a 1/4-Inch 8MP CMOS color image sensor with an > + active array size of 3280 x 2464. It is programmable through I2C > + interface. Image data is transmitted via MIPI CSI-2 using 2 lanes. > + > +allOf: > + - $ref: /schemas/media/video-interface-devices.yaml# > + > +properties: > + compatible: > + const: ovti,ov08d10 > + > + reg: > + maxItems: 1 > + > + clocks: > + description: MCLK input clock (6 - 27 MHz) > + maxItems: 1 > + > + reset-gpios: > + description: Active low XSHUTDN pin So maybe rather powerdown-gpios, see gpio-consumer-common.yaml? > + maxItems: 1 Best regards, Krzysztof
Hi Krzysztof, thanks for your comments. Am 27.02.2026 um 11:45 schrieb Krzysztof Kozlowski: > On Thu, Feb 26, 2026 at 09:56:01AM +0100, Matthias Fend wrote: >> Add YAML bindings for the Omnivision OV08D10 CMOS image sensor. > > Drop YAML. You add DT bindings, not YAML. No YAML is bound here to > anything. ACK > >> >> Signed-off-by: Matthias Fend <matthias.fend@emfend.at> >> --- >> .../bindings/media/i2c/ovti,ov08d10.yaml | 101 +++++++++++++++++++++ >> MAINTAINERS | 1 + >> 2 files changed, 102 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov08d10.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov08d10.yaml >> new file mode 100644 >> index 0000000000000000000000000000000000000000..96dbf61cf7c188544f4120216ae2b8e0155128b7 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov08d10.yaml >> @@ -0,0 +1,101 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/media/i2c/ovti,ov08d10.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Omnivision OV08D10 1/4-Inch 8MP CMOS color image sensor >> + >> +maintainers: >> + - Jimmy Su <jimmy.su@intel.com> >> + >> +description: >> + The Omnivision OV08D10 is a 1/4-Inch 8MP CMOS color image sensor with an >> + active array size of 3280 x 2464. It is programmable through I2C >> + interface. Image data is transmitted via MIPI CSI-2 using 2 lanes. >> + >> +allOf: >> + - $ref: /schemas/media/video-interface-devices.yaml# >> + >> +properties: >> + compatible: >> + const: ovti,ov08d10 >> + >> + reg: >> + maxItems: 1 >> + >> + clocks: >> + description: MCLK input clock (6 - 27 MHz) >> + maxItems: 1 >> + >> + reset-gpios: >> + description: Active low XSHUTDN pin > > So maybe rather powerdown-gpios, see gpio-consumer-common.yaml? As activating the XSHUTDN pin on this sensor works like a reset, I guess it's okay as it is. From what I've seen, it's also common practice for some other Omnivision sensors to designate the XSHUTDN pin as the reset pin. This is also the case, for example, with the recently added OS05B10. During a review for another sensor, I was asked to use the reset controller framework instead of the GPIO pin for the reset function, which I did in this case as well. To my knowledge, the fallback from the reset controller to a simple reset pin only works with the 'reset-gpios' property. Thanks ~Matthias > >> + maxItems: 1 > > Best regards, > Krzysztof >
Hi Matthias, Krzysztof, On Fri, Feb 27, 2026 at 04:10:50PM +0100, Matthias Fend wrote: > > > + reset-gpios: > > > + description: Active low XSHUTDN pin > > > > So maybe rather powerdown-gpios, see gpio-consumer-common.yaml? > > As activating the XSHUTDN pin on this sensor works like a reset, I guess > it's okay as it is. > > From what I've seen, it's also common practice for some other Omnivision > sensors to designate the XSHUTDN pin as the reset pin. > This is also the case, for example, with the recently added OS05B10. > > During a review for another sensor, I was asked to use the reset controller > framework instead of the GPIO pin for the reset function, which I did in > this case as well. > To my knowledge, the fallback from the reset controller to a simple reset > pin only works with the 'reset-gpios' property. I'd use "reset" for this, too: it's first and foremost reset. In most camera sensors with "xshutdown" or similar pin the function of the pin is documented to be hardware reset. Most such devices still use very little power in hardware reset state but from software point of view that is still secondary to the reset function. -- Regards, Sakari Ailus
© 2016 - 2026 Red Hat, Inc.