xref: /linux/Documentation/devicetree/bindings/media/i2c/ov7670.txt (revision c13aca79ff3c4af5fd31a5b2743a90eba6e36a26)
1bba58289SHans Verkuil* Omnivision OV7670 CMOS sensor
2bba58289SHans Verkuil
3bba58289SHans VerkuilThe Omnivision OV7670 sensor supports multiple resolutions output, such as
4bba58289SHans VerkuilCIF, SVGA, UXGA. It also can support the YUV422/420, RGB565/555 or raw RGB
5bba58289SHans Verkuiloutput formats.
6bba58289SHans Verkuil
7bba58289SHans VerkuilRequired Properties:
8bba58289SHans Verkuil- compatible: should be "ovti,ov7670"
9bba58289SHans Verkuil- clocks: reference to the xclk input clock.
10bba58289SHans Verkuil- clock-names: should be "xclk".
11bba58289SHans Verkuil
12*622b2d10SJacopo MondiRequired Endpoint Properties:
13*622b2d10SJacopo Mondi- hsync-active: active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
14*622b2d10SJacopo Mondi- vsync-active: active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
15*622b2d10SJacopo Mondi
16bba58289SHans VerkuilOptional Properties:
17bba58289SHans Verkuil- reset-gpios: reference to the GPIO connected to the resetb pin, if any.
18bba58289SHans Verkuil  Active is low.
19bba58289SHans Verkuil- powerdown-gpios: reference to the GPIO connected to the pwdn pin, if any.
20bba58289SHans Verkuil  Active is high.
21*622b2d10SJacopo Mondi- ov7670,pclk-hb-disable: a boolean property to suppress pixel clock output
22*622b2d10SJacopo Mondi  signal during horizontal blankings.
23bba58289SHans Verkuil
24*622b2d10SJacopo MondiThe device node must contain one 'port' child node with one 'endpoint' child
25*622b2d10SJacopo Mondisub-node for its digital output video port, in accordance with the video
26*622b2d10SJacopo Mondiinterface bindings defined in:
27bba58289SHans VerkuilDocumentation/devicetree/bindings/media/video-interfaces.txt.
28bba58289SHans Verkuil
29bba58289SHans VerkuilExample:
30bba58289SHans Verkuil
31bba58289SHans Verkuil	i2c1: i2c@f0018000 {
32bba58289SHans Verkuil		ov7670: camera@21 {
33bba58289SHans Verkuil			compatible = "ovti,ov7670";
34bba58289SHans Verkuil			reg = <0x21>;
35bba58289SHans Verkuil			pinctrl-names = "default";
36bba58289SHans Verkuil			pinctrl-0 = <&pinctrl_pck0_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
37bba58289SHans Verkuil			reset-gpios = <&pioE 11 GPIO_ACTIVE_LOW>;
38bba58289SHans Verkuil			powerdown-gpios = <&pioE 13 GPIO_ACTIVE_HIGH>;
39bba58289SHans Verkuil			clocks = <&pck0>;
40bba58289SHans Verkuil			clock-names = "xclk";
41bba58289SHans Verkuil			assigned-clocks = <&pck0>;
42bba58289SHans Verkuil			assigned-clock-rates = <25000000>;
43bba58289SHans Verkuil
44*622b2d10SJacopo Mondi			ov7670,pclk-hb-disable;
45*622b2d10SJacopo Mondi
46bba58289SHans Verkuil			port {
47bba58289SHans Verkuil				ov7670_0: endpoint {
48*622b2d10SJacopo Mondi					hsync-active = <0>;
49*622b2d10SJacopo Mondi					vsync-active = <0>;
50*622b2d10SJacopo Mondi
51bba58289SHans Verkuil					remote-endpoint = <&isi_0>;
52bba58289SHans Verkuil				};
53bba58289SHans Verkuil			};
54bba58289SHans Verkuil		};
55bba58289SHans Verkuil	};
56