# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2014--2020 Intel Corporation
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/mipi-ccs.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MIPI CCS, SMIA++ and SMIA compliant camera sensors

maintainers:
  - Sakari Ailus <sakari.ailus@linux.intel.com>

description:

  CCS (Camera Command Set) is a raw Bayer camera sensor standard defined by the
  MIPI Alliance; see
  <URL:https://www.mipi.org/specifications/camera-command-set>.

  SMIA (Standard Mobile Imaging Architecture) is an image sensor standard
  defined jointly by Nokia and ST. SMIA++, defined by Nokia, is an extension of
  that.

  More detailed documentation can be found in
  Documentation/devicetree/bindings/media/video-interfaces.txt .

properties:
  compatible:
    oneOf:
      - items:
          - const: mipi-ccs-1.1
          - const: mipi-ccs
      - items:
          - const: mipi-ccs-1.0
          - const: mipi-ccs
      - const: nokia,smia

  reg:
    maxItems: 1

  vana-supply:
    description: Analogue voltage supply (VANA), sensor dependent.

  vcore-supply:
    description: Core voltage supply (VCore), sensor dependent.

  vio-supply:
    description: I/O voltage supply (VIO), sensor dependent.

  clocks:
    description: External clock to the sensor.
    maxItems: 1

  clock-frequency:
    description: Frequency of the external clock to the sensor in Hz.

  reset-gpios:
    description: Reset GPIO. Also commonly called XSHUTDOWN in hardware
      documentation.
    maxItems: 1

  flash-leds:
    description: Flash LED phandles. See ../video-interfaces.txt for details.

  lens-focus:
    description: Lens focus controller phandles. See ../video-interfaces.txt
      for details.

  rotation:
    description: Rotation of the sensor.  See ../video-interfaces.txt for
      details.
    enum: [ 0, 180 ]

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

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

        properties:
          link-frequencies: true
          data-lanes: true
          bus-type:
            oneOf:
              - const: 1 # CSI-2 C-PHY
              - const: 3 # CCP2
              - const: 4 # CSI-2 D-PHY

        required:
          - link-frequencies
          - data-lanes
          - bus-type

required:
  - compatible
  - reg
  - clock-frequency
  - clocks

additionalProperties: false

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

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

        clock-frequency = <400000>;

        camera-sensor@10 {
            compatible = "mipi-ccs-1.0", "mipi-ccs";
            reg = <0x10>;
            reset-gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
            vana-supply = <&vaux3>;
            clocks = <&omap3_isp 0>;
            clock-frequency = <9600000>;
            port {
                ccs_ep: endpoint {
                    data-lanes = <1 2>;
                    remote-endpoint = <&csi2a_ep>;
                    link-frequencies = /bits/ 64 <199200000 210000000
                                                  499200000>;
                    bus-type = <4>;
                };
            };
        };
    };
...
