ARM HDLCD

This is a display controller found on several development platforms produced
by ARM Ltd and in more modern of its' Fast Models. The HDLCD is an RGB
streamer that reads the data from a framebuffer and sends it to a single
digital encoder (DVI or HDMI).

Required properties:
  - compatible: "arm,hdlcd"
  - reg: Physical base address and length of the controller's registers.
  - interrupts: One interrupt used by the display controller to notify the
    interrupt controller when any of the interrupt sources programmed in
    the interrupt mask register have activated.
  - clocks: A list of phandle + clock-specifier pairs, one for each
    entry in 'clock-names'.
  - clock-names: A list of clock names. For HDLCD it should contain:
      - "pxlclk" for the clock feeding the output PLL of the controller.

Required sub-nodes:
  - port: The HDLCD connection to an encoder chip. The connection is modeled
    using the OF graph bindings specified in
    Documentation/devicetree/bindings/graph.txt.

Optional properties:
  - memory-region: phandle to a node describing memory (see
    Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt) to be
    used for the framebuffer; if not present, the framebuffer may be located
    anywhere in memory.


Example:

/ {
	...

	hdlcd@2b000000 {
		compatible = "arm,hdlcd";
		reg = <0 0x2b000000 0 0x1000>;
		interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&oscclk5>;
		clock-names = "pxlclk";
		port {
			hdlcd_output: endpoint@0 {
				remote-endpoint = <&hdmi_enc_input>;
			};
		};
	};

	/* HDMI encoder on I2C bus */
	i2c@7ffa0000 {
		....
		hdmi-transmitter@70 {
			compatible = ".....";
			reg = <0x70>;
			port@0 {
				hdmi_enc_input: endpoint {
					remote-endpoint = <&hdlcd_output>;
				};

				hdmi_enc_output: endpoint {
					remote-endpoint = <&hdmi_1_port>;
				};
			};
		};

	};

	hdmi1: connector@1 {
		compatible = "hdmi-connector";
		type = "a";
		port {
			hdmi_1_port: endpoint {
				remote-endpoint = <&hdmi_enc_output>;
			};
		};
	};

	...
};
