Cadence DSI bridge
==================

The Cadence DSI bridge is a DPI to DSI bridge supporting up to 4 DSI lanes.

Required properties:
- compatible: should be set to "cdns,dsi".
- reg: physical base address and length of the controller's registers.
- interrupts: interrupt line connected to the DSI bridge.
- clocks: DSI bridge clocks.
- clock-names: must contain "dsi_p_clk" and "dsi_sys_clk".
- phys: phandle link to the MIPI D-PHY controller.
- phy-names: must contain "dphy".
- #address-cells: must be set to 1.
- #size-cells: must be set to 0.

Optional properties:
- resets: DSI reset lines.
- reset-names: can contain "dsi_p_rst".

Required subnodes:
- ports: Ports as described in Documentation/devicetree/bindings/graph.txt.
  2 ports are available:
  * port 0: this port is only needed if some of your DSI devices are
	    controlled through  an external bus like I2C or SPI. Can have at
	    most 4 endpoints. The endpoint number is directly encoding the
	    DSI virtual channel used by this device.
  * port 1: represents the DPI input.
  Other ports will be added later to support the new kind of inputs.

- one subnode per DSI device connected on the DSI bus. Each DSI device should
  contain a reg property encoding its virtual channel.

Cadence DPHY
============

Cadence DPHY block.

Required properties:
- compatible: should be set to "cdns,dphy".
- reg: physical base address and length of the DPHY registers.
- clocks: DPHY reference clocks.
- clock-names: must contain "psm" and "pll_ref".
- #phy-cells: must be set to 0.


Example:
	dphy0: dphy@fd0e0000{
		compatible = "cdns,dphy";
		reg = <0x0 0xfd0e0000 0x0 0x1000>;
		clocks = <&psm_clk>, <&pll_ref_clk>;
		clock-names = "psm", "pll_ref";
		#phy-cells = <0>;
	};

	dsi0: dsi@fd0c0000 {
		compatible = "cdns,dsi";
		reg = <0x0 0xfd0c0000 0x0 0x1000>;
		clocks = <&pclk>, <&sysclk>;
		clock-names = "dsi_p_clk", "dsi_sys_clk";
		interrupts = <1>;
		phys = <&dphy0>;
		phy-names = "dphy";
		#address-cells = <1>;
		#size-cells = <0>;

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

			port@1 {
				reg = <1>;
				dsi0_dpi_input: endpoint {
					remote-endpoint = <&xxx_dpi_output>;
				};
			};
		};

		panel: dsi-dev@0 {
			compatible = "<vendor,panel>";
			reg = <0>;
		};
	};

or

	dsi0: dsi@fd0c0000 {
		compatible = "cdns,dsi";
		reg = <0x0 0xfd0c0000 0x0 0x1000>;
		clocks = <&pclk>, <&sysclk>;
		clock-names = "dsi_p_clk", "dsi_sys_clk";
		interrupts = <1>;
		phys = <&dphy1>;
		phy-names = "dphy";
		#address-cells = <1>;
		#size-cells = <0>;

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

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

				dsi0_output: endpoint@0 {
					reg = <0>;
					remote-endpoint = <&dsi_panel_input>;
				};
			};

			port@1 {
				reg = <1>;
				dsi0_dpi_input: endpoint {
					remote-endpoint = <&xxx_dpi_output>;
				};
			};
		};
	};

	i2c@xxx {
		panel: panel@59 {
			compatible = "<vendor,panel>";
			reg = <0x59>;

			port {
				dsi_panel_input: endpoint {
					remote-endpoint = <&dsi0_output>;
				};
			};
		};
	};
