# 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.

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:
    description: See ../video-interfaces.txt

  lens-focus:
    description: See ../video-interfaces.txt

  port:
    type: object
    description: |
      Video output port. See ../video-interfaces.txt.

    properties:
      endpoint:
        type: object

        properties:
          data-lanes:
            $ref: /schemas/types.yaml#/definitions/uint32-array
            description: See ../video-interfaces.txt
            anyOf:
              - items:
                  - const: 1
                  - const: 2
              - items:
                  - const: 1
                  - const: 2
                  - const: 3
                  - const: 4

          link-frequencies:
            $ref: /schemas/types.yaml#/definitions/uint64-array
            description: See ../video-interfaces.txt

        required:
          - data-lanes
          - link-frequencies

        unevaluatedProperties: false

    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>;
                };
            };
        };
    };

...
