# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/allwinner,sun6i-a31-csi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A31 CMOS Sensor Interface (CSI)

maintainers:
  - Chen-Yu Tsai <wens@csie.org>
  - Maxime Ripard <mripard@kernel.org>

properties:
  compatible:
    enum:
      - allwinner,sun6i-a31-csi
      - allwinner,sun8i-a83t-csi
      - allwinner,sun8i-h3-csi
      - allwinner,sun8i-v3s-csi
      - allwinner,sun50i-a64-csi

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: Bus Clock
      - description: Module Clock
      - description: DRAM Clock

  clock-names:
    items:
      - const: bus
      - const: mod
      - const: ram

  resets:
    maxItems: 1

  port:
    $ref: /schemas/graph.yaml#/$defs/port-base
    description: Parallel input port, connect to a parallel sensor

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

        properties:
          bus-width:
            enum: [ 8, 10, 12, 16 ]

          pclk-sample: true
          hsync-active: true
          vsync-active: true

        required:
          - bus-width

    unevaluatedProperties: false

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port@0:
        $ref: "#/properties/port"

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description: MIPI CSI-2 bridge input port

      port@2:
        $ref: /schemas/graph.yaml#/properties/port
        description: Internal output port to the ISP

    anyOf:
      - required:
          - port@0
      - required:
          - port@1

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - resets

oneOf:
  - required:
      - ports
  - required:
      - port

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/sun8i-v3s-ccu.h>
    #include <dt-bindings/reset/sun8i-v3s-ccu.h>

    csi1: csi@1cb4000 {
        compatible = "allwinner,sun8i-v3s-csi";
        reg = <0x01cb4000 0x1000>;
        interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&ccu CLK_BUS_CSI>,
                 <&ccu CLK_CSI1_SCLK>,
                 <&ccu CLK_DRAM_CSI>;
        clock-names = "bus",
                      "mod",
                      "ram";
        resets = <&ccu RST_BUS_CSI>;

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

            port@0 {
                reg = <0>;
                /* Parallel bus endpoint */
                csi1_ep: endpoint {
                    remote-endpoint = <&adv7611_ep>;
                    bus-width = <16>;

                    /*
                     * If hsync-active/vsync-active are missing,
                     * embedded BT.656 sync is used.
                     */
                    hsync-active = <0>; /* Active low */
                    vsync-active = <0>; /* Active low */
                    pclk-sample = <1>;  /* Rising */
                };
            };
        };
    };

...
