Renesas R-Car Video Input driver (rcar_vin)
-------------------------------------------

The rcar_vin device provides video input capabilities for the Renesas R-Car
family of devices.

Each VIN instance has a single parallel input that supports RGB and YUV video,
with both external synchronization and BT.656 synchronization for the latter.
Depending on the instance the VIN input is connected to external SoC pins, or
on Gen3 and RZ/G2 platforms to a CSI-2 receiver.

 - compatible: Must be one or more of the following
   - "renesas,vin-r8a7743" for the R8A7743 device
   - "renesas,vin-r8a7744" for the R8A7744 device
   - "renesas,vin-r8a7745" for the R8A7745 device
   - "renesas,vin-r8a774a1" for the R8A774A1 device
   - "renesas,vin-r8a774b1" for the R8A774B1 device
   - "renesas,vin-r8a774c0" for the R8A774C0 device
   - "renesas,vin-r8a7778" for the R8A7778 device
   - "renesas,vin-r8a7779" for the R8A7779 device
   - "renesas,vin-r8a7790" for the R8A7790 device
   - "renesas,vin-r8a7791" for the R8A7791 device
   - "renesas,vin-r8a7792" for the R8A7792 device
   - "renesas,vin-r8a7793" for the R8A7793 device
   - "renesas,vin-r8a7794" for the R8A7794 device
   - "renesas,vin-r8a7795" for the R8A7795 device
   - "renesas,vin-r8a7796" for the R8A7796 device
   - "renesas,vin-r8a77965" for the R8A77965 device
   - "renesas,vin-r8a77970" for the R8A77970 device
   - "renesas,vin-r8a77980" for the R8A77980 device
   - "renesas,vin-r8a77990" for the R8A77990 device
   - "renesas,vin-r8a77995" for the R8A77995 device
   - "renesas,rcar-gen2-vin" for a generic R-Car Gen2 or RZ/G1 compatible
     device.

   When compatible with the generic version nodes must list the
   SoC-specific version corresponding to the platform first
   followed by the generic version.

 - reg: the register base and size for the device registers
 - interrupts: the interrupt for the device
 - clocks: Reference to the parent clock

Additionally, an alias named vinX will need to be created to specify
which video input device this is.

The per-board settings for Gen2 and RZ/G1 platforms:

- port - sub-node describing a single endpoint connected to the VIN
  from external SoC pins as described in video-interfaces.txt[1].
  Only the first one will be considered as each vin interface has one
  input port.

  - Optional properties for endpoint nodes:
    - hsync-active: see [1] for description. Default is active high.
    - vsync-active: see [1] for description. Default is active high.
      If both HSYNC and VSYNC polarities are not specified, embedded
      synchronization is selected.
    - field-active-even: see [1] for description. Default is active high.
    - bus-width: see [1] for description. The selected bus width depends on
      the SoC type and selected input image format.
      Valid values are: 8, 10, 12, 16, 24 and 32.
    - data-shift: see [1] for description. Valid values are 0 and 8.
    - data-enable-active: polarity of CLKENB signal, see [1] for
      description. Default is active high.

The per-board settings for Gen3 and RZ/G2 platforms:

Gen3 and RZ/G2 platforms can support both a single connected parallel input
source from external SoC pins (port@0) and/or multiple parallel input sources
from local SoC CSI-2 receivers (port@1) depending on SoC.

- renesas,id - ID number of the VIN, VINx in the documentation.
- ports
    - port@0 - sub-node describing a single endpoint connected to the VIN
      from external SoC pins as described in video-interfaces.txt[1].
      Describing more than one endpoint in port@0 is invalid. Only VIN
      instances that are connected to external pins should have port@0.

      Endpoint nodes of port@0 support the optional properties listed in
      the Gen2 per-board settings description.

    - port@1 - sub-nodes describing one or more endpoints connected to
      the VIN from local SoC CSI-2 receivers. The endpoint numbers must
      use the following schema.

        - endpoint@0 - sub-node describing the endpoint connected to CSI20
        - endpoint@1 - sub-node describing the endpoint connected to CSI21
        - endpoint@2 - sub-node describing the endpoint connected to CSI40
        - endpoint@3 - sub-node describing the endpoint connected to CSI41

      Endpoint nodes of port@1 do not support any optional endpoint property.

Device node example for Gen2 platforms
--------------------------------------

        aliases {
                vin0 = &vin0;
        };

        vin0: vin@e6ef0000 {
                compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin";
                clocks = <&mstp8_clks R8A7790_CLK_VIN0>;
                reg = <0 0xe6ef0000 0 0x1000>;
                interrupts = <0 188 IRQ_TYPE_LEVEL_HIGH>;
                status = "disabled";
        };

Board setup example for Gen2 platforms (vin1 composite video input)
-------------------------------------------------------------------

&i2c2   {
        status = "okay";
        pinctrl-0 = <&i2c2_pins>;
        pinctrl-names = "default";

        adv7180@20 {
                compatible = "adi,adv7180";
                reg = <0x20>;
                remote = <&vin1>;

                port {
                        adv7180: endpoint {
                                bus-width = <8>;
                                remote-endpoint = <&vin1ep0>;
                        };
                };
        };
};

/* composite video input */
&vin1 {
        pinctrl-0 = <&vin1_pins>;
        pinctrl-names = "default";

        status = "okay";

        port {
                vin1ep0: endpoint {
                        remote-endpoint = <&adv7180>;
                        bus-width = <8>;
                };
        };
};

Device node example for Gen3 platforms
--------------------------------------

        vin0: video@e6ef0000 {
                compatible = "renesas,vin-r8a7795";
                reg = <0 0xe6ef0000 0 0x1000>;
                interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 811>;
                power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
                resets = <&cpg 811>;
                renesas,id = <0>;

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

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

                                reg = <1>;

                                vin0csi20: endpoint@0 {
                                        reg = <0>;
                                        remote-endpoint= <&csi20vin0>;
                                };
                                vin0csi21: endpoint@1 {
                                        reg = <1>;
                                        remote-endpoint= <&csi21vin0>;
                                };
                                vin0csi40: endpoint@2 {
                                        reg = <2>;
                                        remote-endpoint= <&csi40vin0>;
                                };
                        };
                };
        };

        csi20: csi2@fea80000 {
                compatible = "renesas,r8a7795-csi2";
                reg = <0 0xfea80000 0 0x10000>;
                interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 714>;
                power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
                resets = <&cpg 714>;

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

                        port@0 {
                                reg = <0>;
                                csi20_in: endpoint {
                                        clock-lanes = <0>;
                                        data-lanes = <1>;
                                        remote-endpoint = <&adv7482_txb>;
                                };
                        };

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

                                reg = <1>;

                                csi20vin0: endpoint@0 {
                                        reg = <0>;
                                        remote-endpoint = <&vin0csi20>;
                                };
                        };
                };
        };

[1] video-interfaces.txt common video media interface
