# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/sony,imx111.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Sony IMX111 8MP CMOS Digital Image Sensor

maintainers:
  - Svyatoslav Ryhel <clamor95@gmail.com>

description:
  IMX111 sensor is a Sony CMOS active pixel digital image sensor with an active
  array size of 2464H x 3280V. It is programmable through I2C interface. Image
  data is sent through MIPI CSI-2, through 1 or 2 lanes.

allOf:
  - $ref: /schemas/media/video-interface-devices.yaml#
  - $ref: /schemas/nvmem/nvmem-consumer.yaml#

properties:
  compatible:
    const: sony,imx111

  reg:
    maxItems: 1

  clocks:
    description: EXTCLK with possible frequency from 6 to 54 MHz
    maxItems: 1

  reset-gpios:
    maxItems: 1

  iovdd-supply:
    description: Digital IO power supply (1.8V)

  dvdd-supply:
    description: Digital power supply (1.2V)

  avdd-supply:
    description: Analog power supply (2.7V)

  port:
    additionalProperties: false
    $ref: /schemas/graph.yaml#/$defs/port-base

    properties:
      endpoint:
        $ref: /schemas/media/video-interfaces.yaml#
        unevaluatedProperties: false

        required:
          - data-lanes
          - link-frequencies

    required:
      - endpoint

required:
  - compatible
  - reg
  - clocks
  - port

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/media/video-interfaces.h>

    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        camera@10 {
            compatible = "sony,imx111";
            reg = <0x10>;

            clocks = <&imx111_clk>;

            iovdd-supply = <&camera_vddio_1v8>;
            dvdd-supply = <&camera_vddd_1v2>;
            avdd-supply = <&camera_vdda_2v7>;

            orientation = <1>;
            rotation = <90>;

            nvmem = <&eeprom>;
            flash-leds = <&led>;
            lens-focus = <&vcm>;

            reset-gpios = <&gpio 84 GPIO_ACTIVE_LOW>;

            port {
                imx111_output: endpoint {
                    data-lanes = <1 2>;
                    link-frequencies = /bits/ 64 <542400000>;
                    remote-endpoint = <&csi_input>;
                };
            };
        };
    };
...
