Device-Tree bindings for DesignWare DSI Host Controller v1.20a driver

A DSI Host Controller resides in the middle of display controller and external
HDMI converter or panel.

Required properties:
- compatible: value should be "hisilicon,hi6220-dsi".
- reg: physical base address and length of dsi controller's registers.
- clocks: contains APB clock phandle + clock-specifier pair.
- clock-names: should be "pclk".
- ports: contains DSI controller input and output sub port.
  The input port connects to ADE output port with the reg value "0".
  The output port with the reg value "1", it could connect to panel or
  any other bridge endpoints.
  See Documentation/devicetree/bindings/graph.txt for more device graph info.

A example of HiKey board hi6220 SoC and board specific DT entry:
Example:

SoC specific:
	dsi: dsi@f4107800 {
		compatible = "hisilicon,hi6220-dsi";
		reg = <0x0 0xf4107800 0x0 0x100>;
		clocks = <&media_ctrl  HI6220_DSI_PCLK>;
		clock-names = "pclk";
		status = "disabled";

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

			/* 0 for input port */
			port@0 {
				reg = <0>;
				dsi_in: endpoint {
					remote-endpoint = <&ade_out>;
				};
			};
		};
	};


Board specific:
	&dsi {
		status = "ok";

		ports {
			/* 1 for output port */
			port@1 {
				reg = <1>;

				dsi_out0: endpoint@0 {
					remote-endpoint = <&adv7533_in>;
				};
			};
		};
	};

	&i2c2 {
		...

		adv7533: adv7533@39 {
			...

			port {
				adv7533_in: endpoint {
					remote-endpoint = <&dsi_out0>;
				};
			};
		};
	};

