# 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:
            enum:
              - 1 # CSI-2 C-PHY
              - 3 # CCP2
              - 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>;
                };
            };
        };
    };
...
