1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/media/i2c/imx258.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Sony IMX258 13 Mpixel CMOS Digital Image Sensor
8
9maintainers:
10  - Krzysztof Kozlowski <krzk@kernel.org>
11
12description: |-
13  IMX258 is a diagonal 5.867mm (Type 1/3.06) 13 Mega-pixel CMOS active pixel
14  type stacked image sensor with a square pixel array of size 4208 x 3120. It
15  is programmable through I2C interface.  Image data is sent through MIPI
16  CSI-2.
17
18properties:
19  compatible:
20    const: sony,imx258
21
22  assigned-clocks: true
23  assigned-clock-parents: true
24  assigned-clock-rates: true
25
26  clocks:
27    description:
28      Clock frequency from 6 to 27 MHz.
29    maxItems: 1
30
31  reg:
32    maxItems: 1
33
34  reset-gpios:
35    description: |-
36      Reference to the GPIO connected to the XCLR pin, if any.
37
38  vana-supply:
39    description:
40      Analog voltage (VANA) supply, 2.7 V
41
42  vdig-supply:
43    description:
44      Digital I/O voltage (VDIG) supply, 1.2 V
45
46  vif-supply:
47    description:
48      Interface voltage (VIF) supply, 1.8 V
49
50  # See ../video-interfaces.txt for more details
51  port:
52    $ref: /schemas/graph.yaml#/$defs/port-base
53    additionalProperties: false
54
55    properties:
56      endpoint:
57        $ref: /schemas/media/video-interfaces.yaml#
58        unevaluatedProperties: false
59
60        properties:
61          data-lanes:
62            oneOf:
63              - items:
64                  - const: 1
65                  - const: 2
66                  - const: 3
67                  - const: 4
68              - items:
69                  - const: 1
70                  - const: 2
71
72          link-frequencies: true
73
74        required:
75          - data-lanes
76          - link-frequencies
77
78required:
79  - compatible
80  - reg
81  - port
82
83additionalProperties: false
84
85examples:
86  - |
87    i2c {
88        #address-cells = <1>;
89        #size-cells = <0>;
90
91        sensor@6c {
92            compatible = "sony,imx258";
93            reg = <0x6c>;
94            clocks = <&imx258_clk>;
95
96            port {
97                endpoint {
98                    remote-endpoint = <&csi1_ep>;
99                    data-lanes = <1 2 3 4>;
100                    link-frequencies = /bits/ 64 <320000000>;
101                };
102            };
103        };
104    };
105
106    /* Oscillator on the camera board */
107    imx258_clk: clk {
108        compatible = "fixed-clock";
109        #clock-cells = <0>;
110        clock-frequency = <19200000>;
111    };
112
113  - |
114    i2c {
115        #address-cells = <1>;
116        #size-cells = <0>;
117
118        sensor@6c {
119            compatible = "sony,imx258";
120            reg = <0x6c>;
121            clocks = <&imx258_clk>;
122
123            assigned-clocks = <&imx258_clk>;
124            assigned-clock-rates = <19200000>;
125
126            port {
127                endpoint {
128                    remote-endpoint = <&csi1_ep>;
129                    data-lanes = <1 2 3 4>;
130                    link-frequencies = /bits/ 64 <633600000>;
131                };
132            };
133        };
134    };
135