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
7title: Sony IMX290 1/2.8-Inch CMOS Image Sensor
8
9maintainers:
10  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
11  - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12
13description: |-
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
26properties:
27  compatible:
28    oneOf:
29      - enum:
30          - sony,imx290lqr # Colour
31          - sony,imx290llr # Monochrome
32      - const: sony,imx290
33        deprecated: true
34
35  reg:
36    maxItems: 1
37
38  clocks:
39    maxItems: 1
40
41  clock-names:
42    description: Input clock (37.125 MHz or 74.25 MHz)
43    items:
44      - const: xclk
45
46  clock-frequency:
47    description: Frequency of the xclk clock in Hz
48
49  vdda-supply:
50    description: Analog power supply (2.9V)
51
52  vddd-supply:
53    description: Digital core power supply (1.2V)
54
55  vdddo-supply:
56    description: Digital I/O power supply (1.8V)
57
58  reset-gpios:
59    description: Sensor reset (XCLR) GPIO
60    maxItems: 1
61
62  port:
63    $ref: /schemas/graph.yaml#/$defs/port-base
64    description: |
65      Video output port
66
67    properties:
68      endpoint:
69        $ref: /schemas/media/video-interfaces.yaml#
70        unevaluatedProperties: false
71
72        properties:
73          data-lanes:
74            anyOf:
75              - items:
76                  - const: 1
77                  - const: 2
78              - items:
79                  - const: 1
80                  - const: 2
81                  - const: 3
82                  - const: 4
83
84          link-frequencies: true
85
86        required:
87          - data-lanes
88          - link-frequencies
89
90    additionalProperties: false
91
92required:
93  - compatible
94  - reg
95  - clocks
96  - clock-names
97  - clock-frequency
98  - vdda-supply
99  - vddd-supply
100  - vdddo-supply
101  - port
102
103additionalProperties: false
104
105examples:
106  - |
107    #include <dt-bindings/gpio/gpio.h>
108
109    i2c {
110        #address-cells = <1>;
111        #size-cells = <0>;
112
113        imx290: camera-sensor@1a {
114            compatible = "sony,imx290lqr";
115            reg = <0x1a>;
116
117            pinctrl-names = "default";
118            pinctrl-0 = <&camera_rear_default>;
119
120            clocks = <&gcc 90>;
121            clock-names = "xclk";
122            clock-frequency = <37125000>;
123
124            vdddo-supply = <&camera_vdddo_1v8>;
125            vdda-supply = <&camera_vdda_2v8>;
126            vddd-supply = <&camera_vddd_1v5>;
127
128            reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
129
130            port {
131                imx290_ep: endpoint {
132                    data-lanes = <1 2 3 4>;
133                    link-frequencies = /bits/ 64 <445500000>;
134                    remote-endpoint = <&csiphy0_ep>;
135                };
136            };
137        };
138    };
139...
140