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

title: Sony 1/3.06-Inch 13.13MP CMOS Digital Image Sensor

maintainers:
  - Ricardo Ribalda <ribalda@kernel.org>

description: |
  The Sony IMX214 is a 1/3.06-inch CMOS active pixel digital image sensor with
  an active array size of 4224H x 3200V. It is programmable through an I2C
  interface. Image data is sent through MIPI CSI-2, through 2 or 4 lanes at a
  maximum throughput of 1.2Gbps/lane.

allOf:
  - $ref: ../video-interface-devices.yaml#

properties:
  compatible:
    const: sony,imx214

  reg:
    enum:
      - 0x10
      - 0x1a

  clocks:
    description: Reference to the xclk clock.
    maxItems: 1

  clock-frequency:
    description: Frequency of the xclk clock in Hz.

  enable-gpios:
    description: GPIO descriptor for the enable pin.
    maxItems: 1

  vdddo-supply:
    description: Chip digital IO regulator (1.8V).

  vdda-supply:
    description: Chip analog regulator (2.7V).

  vddd-supply:
    description: Chip digital core regulator (1.12V).

  flash-leds: true
  lens-focus: true

  port:
    $ref: /schemas/graph.yaml#/$defs/port-base
    description: |
      Video output port.

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

        properties:
          data-lanes:
            anyOf:
              - items:
                  - const: 1
                  - const: 2
              - items:
                  - const: 1
                  - const: 2
                  - const: 3
                  - const: 4

          link-frequencies: true

        required:
          - data-lanes
          - link-frequencies

    additionalProperties: false

required:
  - compatible
  - reg
  - clocks
  - clock-frequency
  - enable-gpios
  - vdddo-supply
  - vdda-supply
  - vddd-supply
  - port

additionalProperties: false

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

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

        camera-sensor@1a {
            compatible = "sony,imx214";
            reg = <0x1a>;
            vdddo-supply = <&pm8994_lvs1>;
            vddd-supply = <&camera_vddd_1v12>;
            vdda-supply = <&pm8994_l17>;
            lens-focus = <&ad5820>;
            enable-gpios = <&msmgpio 25 GPIO_ACTIVE_HIGH>;
            clocks = <&camera_clk>;
            clock-frequency = <24000000>;

            port {
                imx214_ep: endpoint {
                    data-lanes = <1 2 3 4>;
                    link-frequencies = /bits/ 64 <480000000>;
                    remote-endpoint = <&csiphy0_ep>;
                };
            };
        };
    };

...
