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

title: Samsung S5KJN1 Image Sensor

description:
  Samsung S5KJN1 (ISOCELL JN1) image sensor is a 50MP image sensor.
  The sensor is controlled over a serial camera control bus protocol,
  the widest supported output image frame size is 8160x6144 at 10 frames
  per second, data output format is RAW10 transferred over 4-lane
  MIPI D-PHY interface.

maintainers:
  - Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>

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

properties:
  compatible:
    const: samsung,s5kjn1

  reg:
    maxItems: 1

  clocks:
    description: MCLK supply clock.
    maxItems: 1

  reset-gpios:
    description: Active low GPIO connected to RESET pad of the sensor.
    maxItems: 1

  afvdd-supply:
    description: Autofocus actuator voltage supply, 2.8-3.0 volts.

  vdda-supply:
    description: Analogue voltage supply, 2.8 volts.

  vddd-supply:
    description: Digital core voltage supply, 1.05 volts.

  vddio-supply:
    description: Digital I/O voltage supply, 1.8 volts.

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

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

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

        required:
          - link-frequencies

required:
  - compatible
  - reg
  - port

unevaluatedProperties: false

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

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

          camera@56 {
              compatible = "samsung,s5kjn1";
              reg = <0x56>;
              clocks = <&camera_mclk 0>;
              assigned-clocks = <&camera_mclk 0>;
              assigned-clock-rates = <24000000>;
              reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
              vdda-supply = <&vreg_2p8>;
              vddd-supply = <&vreg_1p05>;
              vddio-supply = <&vreg_1p8>;

              port {
                  endpoint {
                      link-frequencies = /bits/ 64 <700000000>;
                      remote-endpoint = <&mipi_csi2_ep>;
                  };
              };
          };
      };
...
