xref: /linux/Documentation/devicetree/bindings/media/i2c/sony,imx258.yaml (revision 79d2e1919a2728ef49d938eb20ebd5903c14dfb0)
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/sony,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. The sensor exists in two different models, a standard variant
17  (IMX258) and a variant with phase detection autofocus (IMX258-PDAF).
18  The camera module does not expose the model through registers, so the
19  exact model needs to be specified.
20
21properties:
22  compatible:
23    enum:
24      - sony,imx258
25      - sony,imx258-pdaf
26
27  clocks:
28    description:
29      Clock frequency from 6 to 27 MHz.
30    maxItems: 1
31
32  reg:
33    maxItems: 1
34
35  reset-gpios:
36    description: |-
37      Reference to the GPIO connected to the XCLR pin, if any.
38
39  vana-supply:
40    description:
41      Analog voltage (VANA) supply, 2.7 V
42
43  vdig-supply:
44    description:
45      Digital I/O voltage (VDIG) supply, 1.2 V
46
47  vif-supply:
48    description:
49      Interface voltage (VIF) supply, 1.8 V
50
51  # See ../video-interfaces.txt for more details
52  port:
53    $ref: /schemas/graph.yaml#/$defs/port-base
54    additionalProperties: false
55
56    properties:
57      endpoint:
58        $ref: /schemas/media/video-interfaces.yaml#
59        unevaluatedProperties: false
60
61        properties:
62          data-lanes:
63            oneOf:
64              - items:
65                  - const: 1
66                  - const: 2
67                  - const: 3
68                  - const: 4
69              - items:
70                  - const: 1
71                  - const: 2
72
73          link-frequencies: true
74
75        required:
76          - data-lanes
77          - link-frequencies
78
79required:
80  - compatible
81  - reg
82  - port
83
84additionalProperties: false
85
86examples:
87  - |
88    i2c {
89        #address-cells = <1>;
90        #size-cells = <0>;
91
92        sensor@6c {
93            compatible = "sony,imx258";
94            reg = <0x6c>;
95            clocks = <&imx258_clk>;
96
97            port {
98                endpoint {
99                    remote-endpoint = <&csi1_ep>;
100                    data-lanes = <1 2 3 4>;
101                    link-frequencies = /bits/ 64 <320000000>;
102                };
103            };
104        };
105    };
106
107    /* Oscillator on the camera board */
108    imx258_clk: clk {
109        compatible = "fixed-clock";
110        #clock-cells = <0>;
111        clock-frequency = <19200000>;
112    };
113
114  - |
115    i2c {
116        #address-cells = <1>;
117        #size-cells = <0>;
118
119        sensor@6c {
120            compatible = "sony,imx258";
121            reg = <0x6c>;
122            clocks = <&imx258_clk>;
123
124            port {
125                endpoint {
126                    remote-endpoint = <&csi1_ep>;
127                    data-lanes = <1 2 3 4>;
128                    link-frequencies = /bits/ 64 <633600000>;
129                };
130            };
131        };
132    };
133