xref: /freebsd/sys/contrib/device-tree/Bindings/media/i2c/ovti,ov5640.yaml (revision 5b56413d04e608379c9a306373554a8e4d321bc0)
1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/media/i2c/ovti,ov5640.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: OmniVision OV5640 Image Sensor
8
9maintainers:
10  - Steve Longerbeam <slongerbeam@gmail.com>
11
12allOf:
13  - $ref: /schemas/media/video-interface-devices.yaml#
14
15properties:
16  compatible:
17    const: ovti,ov5640
18
19  reg:
20    maxItems: 1
21
22  clocks:
23    description: XCLK Input Clock
24
25  clock-names:
26    const: xclk
27
28  AVDD-supply:
29    description: Analog voltage supply, 2.8 volts
30
31  DVDD-supply:
32    description: Digital core voltage supply, 1.5 volts
33
34  DOVDD-supply:
35    description: Digital I/O voltage supply, 1.8 volts
36
37  powerdown-gpios:
38    maxItems: 1
39    description: >
40      Reference to the GPIO connected to the powerdown pin, if any.
41
42  reset-gpios:
43    maxItems: 1
44    description: >
45      Reference to the GPIO connected to the reset pin, if any.
46
47  port:
48    description: Digital Output Port
49    $ref: /schemas/graph.yaml#/$defs/port-base
50    additionalProperties: false
51
52    properties:
53      endpoint:
54        $ref: /schemas/media/video-interfaces.yaml#
55        unevaluatedProperties: false
56
57        properties:
58          clock-lanes:
59            const: 0
60
61          data-lanes:
62            minItems: 1
63            maxItems: 2
64            items:
65              enum: [1, 2]
66
67          bus-width:
68            enum: [8, 10]
69
70          data-shift:
71            enum: [0, 2]
72
73required:
74  - compatible
75  - reg
76  - clocks
77  - clock-names
78  - AVDD-supply
79  - DVDD-supply
80  - DOVDD-supply
81  - port
82
83unevaluatedProperties: false
84
85examples:
86  - |
87      #include <dt-bindings/clock/imx6qdl-clock.h>
88      #include <dt-bindings/gpio/gpio.h>
89
90      i2c {
91          #address-cells = <1>;
92          #size-cells = <0>;
93
94          camera@3c {
95              compatible = "ovti,ov5640";
96              pinctrl-names = "default";
97              pinctrl-0 = <&pinctrl_ov5640>;
98              reg = <0x3c>;
99              clocks = <&clks IMX6QDL_CLK_CKO>;
100              clock-names = "xclk";
101              DOVDD-supply = <&vgen4_reg>; /* 1.8v */
102              AVDD-supply = <&vgen3_reg>;  /* 2.8v */
103              DVDD-supply = <&vgen2_reg>;  /* 1.5v */
104              powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
105              reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
106              rotation = <180>;
107
108              port {
109                  /* MIPI CSI-2 bus endpoint */
110                  ov5640_to_mipi_csi2: endpoint {
111                      remote-endpoint = <&mipi_csi2_from_ov5640>;
112                      clock-lanes = <0>;
113                      data-lanes = <1 2>;
114                  };
115              };
116          };
117      };
118
119  - |
120      i2c {
121          #address-cells = <1>;
122          #size-cells = <0>;
123
124          camera@3c {
125              compatible = "ovti,ov5640";
126              pinctrl-names = "default";
127              pinctrl-0 = <&pinctrl_ov5640>;
128              reg = <0x3c>;
129              clocks = <&clk_ext_camera>;
130              clock-names = "xclk";
131              DOVDD-supply = <&vgen4_reg>; /* 1.8v */
132              AVDD-supply = <&vgen3_reg>;  /* 2.8v */
133              DVDD-supply = <&vgen2_reg>;  /* 1.5v */
134
135              port {
136                  /* Parallel bus endpoint */
137                  ov5640_to_parallel: endpoint {
138                      remote-endpoint = <&parallel_from_ov5640>;
139                      bus-width = <8>;
140                      data-shift = <2>; /* lines 9:2 are used */
141                      hsync-active = <0>;
142                      vsync-active = <0>;
143                      pclk-sample = <1>;
144                  };
145              };
146          };
147      };
148
149...
150