* Analog Devices ADV7604/11/12 video decoder with HDMI receiver

The ADV7604 and ADV7611/12 are multiformat video decoders with an integrated
HDMI receiver. The ADV7604 has four multiplexed HDMI inputs and one analog
input, and the ADV7611 has one HDMI input and no analog input. The 7612 is
similar to the 7611 but has 2 HDMI inputs.

These device tree bindings support the ADV7611/12 only at the moment.

Required Properties:

  - compatible: Must contain one of the following
    - "adi,adv7611" for the ADV7611
    - "adi,adv7612" for the ADV7612

  - reg: I2C slave address

  - hpd-gpios: References to the GPIOs that control the HDMI hot-plug
    detection pins, one per HDMI input. The active flag indicates the GPIO
    level that enables hot-plug detection.

The device node must contain one 'port' child node per device input and output
port, in accordance with the video interface bindings defined in
Documentation/devicetree/bindings/media/video-interfaces.txt. The port nodes
are numbered as follows.

  Port			ADV7611    ADV7612
------------------------------------------------------------
  HDMI			0             0, 1
  Digital output	1                2

The digital output port node must contain at least one endpoint.

Optional Properties:

  - reset-gpios: Reference to the GPIO connected to the device's reset pin.
  - default-input: Select which input is selected after reset.

Optional Endpoint Properties:

  The following three properties are defined in video-interfaces.txt and are
  valid for source endpoints only.

  - hsync-active: Horizontal synchronization polarity. Defaults to active low.
  - vsync-active: Vertical synchronization polarity. Defaults to active low.
  - pclk-sample: Pixel clock polarity. Defaults to output on the falling edge.

  If none of hsync-active, vsync-active and pclk-sample is specified the
  endpoint will use embedded BT.656 synchronization.

Example:

	hdmi_receiver@4c {
		compatible = "adi,adv7611";
		reg = <0x4c>;

		reset-gpios = <&ioexp 0 GPIO_ACTIVE_LOW>;
		hpd-gpios = <&ioexp 2 GPIO_ACTIVE_HIGH>;

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

		default-input = <0>;

		port@0 {
			reg = <0>;
		};
		port@1 {
			reg = <1>;
			hdmi_in: endpoint {
				remote-endpoint = <&ccdc_in>;
			};
		};
	};
