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