Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / media / i2c / sony,imx290.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/media/i2c/sony,imx290.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Sony IMX290 1/2.8-Inch CMOS Image Sensor
8
9 maintainers:
10   - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
11   - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12
13 description: |-
14   The Sony IMX290 is a 1/2.8-Inch CMOS Solid-state image sensor with Square
15   Pixel, available in either mono or colour variants. It is programmable
16   through I2C and 4-wire interfaces.
17
18   The sensor output is available via CMOS logic parallel SDR output, Low voltage
19   LVDS DDR output and CSI-2 serial data output. The CSI-2 bus is the default.
20   No bindings have been defined for the other busses.
21
22   imx290lqr is the full model identifier for the colour variant. "sony,imx290"
23   is treated the same as this as it was the original compatible string.
24   imx290llr is the mono version of the sensor.
25
26 properties:
27   compatible:
28     oneOf:
29       - enum:
30           - sony,imx290lqr # Colour
31           - sony,imx290llr # Monochrome
32           - sony,imx327lqr # Colour
33       - const: sony,imx290
34         deprecated: true
35
36   reg:
37     maxItems: 1
38
39   clocks:
40     maxItems: 1
41
42   clock-names:
43     description: Input clock (37.125 MHz or 74.25 MHz)
44     items:
45       - const: xclk
46
47   clock-frequency:
48     description: Frequency of the xclk clock in Hz
49
50   vdda-supply:
51     description: Analog power supply (2.9V)
52
53   vddd-supply:
54     description: Digital core power supply (1.2V)
55
56   vdddo-supply:
57     description: Digital I/O power supply (1.8V)
58
59   reset-gpios:
60     description: Sensor reset (XCLR) GPIO
61     maxItems: 1
62
63   port:
64     $ref: /schemas/graph.yaml#/$defs/port-base
65     description: |
66       Video output port
67
68     properties:
69       endpoint:
70         $ref: /schemas/media/video-interfaces.yaml#
71         unevaluatedProperties: false
72
73         properties:
74           data-lanes:
75             anyOf:
76               - items:
77                   - const: 1
78                   - const: 2
79               - items:
80                   - const: 1
81                   - const: 2
82                   - const: 3
83                   - const: 4
84
85           link-frequencies: true
86
87         required:
88           - data-lanes
89           - link-frequencies
90
91     additionalProperties: false
92
93 required:
94   - compatible
95   - reg
96   - clocks
97   - clock-names
98   - clock-frequency
99   - vdda-supply
100   - vddd-supply
101   - vdddo-supply
102   - port
103
104 additionalProperties: false
105
106 examples:
107   - |
108     #include <dt-bindings/gpio/gpio.h>
109
110     i2c {
111         #address-cells = <1>;
112         #size-cells = <0>;
113
114         imx290: camera-sensor@1a {
115             compatible = "sony,imx290lqr";
116             reg = <0x1a>;
117
118             pinctrl-names = "default";
119             pinctrl-0 = <&camera_rear_default>;
120
121             clocks = <&gcc 90>;
122             clock-names = "xclk";
123             clock-frequency = <37125000>;
124
125             vdddo-supply = <&camera_vdddo_1v8>;
126             vdda-supply = <&camera_vdda_2v8>;
127             vddd-supply = <&camera_vddd_1v5>;
128
129             reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
130
131             port {
132                 imx290_ep: endpoint {
133                     data-lanes = <1 2 3 4>;
134                     link-frequencies = /bits/ 64 <445500000>;
135                     remote-endpoint = <&csiphy0_ep>;
136                 };
137             };
138         };
139     };
140 ...