1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2# Copyright (C) 2021 Intel Corporation
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/media/i2c/sony,imx412.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Sony IMX412 Sensor
9
10maintainers:
11  - Paul J. Murphy <paul.j.murphy@intel.com>
12  - Daniele Alessandrelli <daniele.alessandrelli@intel.com>
13
14description:
15  IMX412 sensor is a Sony CMOS active pixel digital image sensor with an active
16  array size of 4072H x 3176V. It is programmable through I2C interface. The
17  I2C client address is fixed to 0x1a as per sensor data sheet. Image data is
18  sent through MIPI CSI-2.
19
20properties:
21  compatible:
22    enum:
23      - sony,imx412
24      - sony,imx577
25  reg:
26    description: I2C address
27    maxItems: 1
28
29  assigned-clocks: true
30  assigned-clock-parents: true
31  assigned-clock-rates: true
32
33  clocks:
34    description: Clock frequency 6MHz, 12MHz, 18MHz, 24MHz or 27MHz
35    maxItems: 1
36
37  dovdd-supply:
38    description: Interface power supply.
39
40  avdd-supply:
41    description: Analog power supply.
42
43  dvdd-supply:
44    description: Digital power supply.
45
46  reset-gpios:
47    description: Reference to the GPIO connected to the XCLR pin, if any.
48    maxItems: 1
49
50  port:
51    additionalProperties: false
52    $ref: /schemas/graph.yaml#/$defs/port-base
53
54    properties:
55      endpoint:
56        $ref: /schemas/media/video-interfaces.yaml#
57        unevaluatedProperties: false
58
59        properties:
60          data-lanes: true
61          link-frequencies: true
62
63        required:
64          - data-lanes
65          - link-frequencies
66
67    required:
68      - endpoint
69
70required:
71  - compatible
72  - reg
73  - clocks
74  - port
75
76additionalProperties: false
77
78examples:
79  - |
80    i2c0 {
81        #address-cells = <1>;
82        #size-cells = <0>;
83
84        camera@1a {
85            compatible = "sony,imx412";
86            reg = <0x1a>;
87            clocks = <&imx412_clk>;
88
89            assigned-clocks = <&imx412_clk>;
90            assigned-clock-parents = <&imx412_clk_parent>;
91            assigned-clock-rates = <24000000>;
92
93            port {
94                imx412: endpoint {
95                    remote-endpoint = <&cam>;
96                    data-lanes = <1 2 3 4>;
97                    link-frequencies = /bits/ 64 <600000000>;
98                };
99            };
100        };
101    };
102...
103