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

title: Samsung S5C73M3 8Mp camera ISP

maintainers:
  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  - Sylwester Nawrocki <s.nawrocki@samsung.com>

description:
  The S5C73M3 camera ISP supports MIPI CSI-2 and parallel (ITU-R BT.656)
  video data busses. The I2C bus is the main control bus and additionally the
  SPI bus is used, mostly for transferring the firmware to and from the
  device. Two slave device nodes corresponding to these control bus
  interfaces are required and should be placed under respective bus
  controller nodes.

properties:
  compatible:
    const: samsung,s5c73m3

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    items:
      - const: cis_extclk

  clock-frequency:
    default: 24000000
    description: cis_extclk clock frequency.

  standby-gpios:
    maxItems: 1
    description: STANDBY pin.

  vdda-supply:
    description: Analog power supply (1.2V).

  vdd-af-supply:
    description: lens power supply (2.8V).

  vddio-cis-supply:
    description: CIS I/O power supply (1.2V to 1.8V).

  vddio-host-supply:
    description: Host I/O power supply (1.8V to 2.8V).

  vdd-int-supply:
    description: Digital power supply (1.2V).

  vdd-reg-supply:
    description: Regulator input power supply (2.8V).

  xshutdown-gpios:
    maxItems: 1
    description: XSHUTDOWN pin.

  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:
  - compatible
  - reg

allOf:
  - $ref: /schemas/spi/spi-peripheral-props.yaml#
  - if:
      required:
        - spi-max-frequency
    then:
      properties:
        # The SPI node is simplified firmware-transfer interface only
        clocks: false
        clock-names: false
        standby-gpios: false
        vdda-supply: false
        vdd-af-supply: false
        vddio-cis-supply: false
        vddio-host-supply: false
        vdd-int-supply: false
        vdd-reg-supply: false
        xshutdown-gpios: false
        port: false
    else:
      required:
        - clocks
        - clock-names
        - standby-gpios
        - vdda-supply
        - vdd-af-supply
        - vddio-cis-supply
        - vddio-host-supply
        - vdd-int-supply
        - vdd-reg-supply
        - xshutdown-gpios
        - port

unevaluatedProperties: false

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

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

        image-sensor@3c {
            compatible = "samsung,s5c73m3";
            reg = <0x3c>;
            clock-frequency = <24000000>;
            clocks = <&camera 0>;
            clock-names = "cis_extclk";
            standby-gpios = <&gpm0 6 GPIO_ACTIVE_LOW>;
            vdda-supply = <&cam_vdda_reg>;
            vdd-af-supply = <&cam_af_reg>;
            vddio-cis-supply = <&ldo9_reg>;
            vddio-host-supply = <&ldo18_reg>;
            vdd-int-supply = <&buck9_reg>;
            vdd-reg-supply = <&cam_io_reg>;
            xshutdown-gpios = <&gpf1 3 GPIO_ACTIVE_LOW>; /* ISP_RESET */

            port {
                s5c73m3_ep: endpoint {
                    remote-endpoint = <&csis0_ep>;
                    data-lanes = <1 2 3 4>;
                };
            };
        };
    };

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

        image-sensor@0 {
            compatible = "samsung,s5c73m3";
            reg = <0>;
            spi-max-frequency = <50000000>;
            controller-data {
                samsung,spi-feedback-delay = <2>;
            };
        };
    };
