Allwinner A31 DSI Encoder
=========================

The DSI pipeline consists of two separate blocks: the DSI controller
itself, and its associated D-PHY.

DSI Encoder
-----------

The DSI Encoder generates the DSI signal from the TCON's.

Required properties:
  - compatible: value must be one of:
    * allwinner,sun6i-a31-mipi-dsi
  - reg: base address and size of memory-mapped region
  - interrupts: interrupt associated to this IP
  - clocks: phandles to the clocks feeding the DSI encoder
    * bus: the DSI interface clock
    * mod: the DSI module clock
  - clock-names: the clock names mentioned above
  - phys: phandle to the D-PHY
  - phy-names: must be "dphy"
  - resets: phandle to the reset controller driving the encoder

  - ports: A ports node with endpoint definitions as defined in
    Documentation/devicetree/bindings/media/video-interfaces.txt. The
    first port should be the input endpoint, usually coming from the
    associated TCON.

Any MIPI-DSI device attached to this should be described according to
the bindings defined in ../mipi-dsi-bus.txt

D-PHY
-----

Required properties:
  - compatible: value must be one of:
    * allwinner,sun6i-a31-mipi-dphy
  - reg: base address and size of memory-mapped region
  - clocks: phandles to the clocks feeding the DSI encoder
    * bus: the DSI interface clock
    * mod: the DSI module clock
  - clock-names: the clock names mentioned above
  - resets: phandle to the reset controller driving the encoder

Example:

dsi0: dsi@1ca0000 {
	compatible = "allwinner,sun6i-a31-mipi-dsi";
	reg = <0x01ca0000 0x1000>;
	interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
	clocks = <&ccu CLK_BUS_MIPI_DSI>,
		 <&ccu CLK_DSI_SCLK>;
	clock-names = "bus", "mod";
	resets = <&ccu RST_BUS_MIPI_DSI>;
	phys = <&dphy0>;
	phy-names = "dphy";
	#address-cells = <1>;
	#size-cells = <0>;

	panel@0 {
		compatible = "bananapi,lhr050h41", "ilitek,ili9881c";
		reg = <0>;
		power-gpios = <&pio 1 7 GPIO_ACTIVE_HIGH>; /* PB07 */
		reset-gpios = <&r_pio 0 5 GPIO_ACTIVE_LOW>; /* PL05 */
		backlight = <&pwm_bl>;
	};

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

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

			dsi0_in_tcon0: endpoint {
				remote-endpoint = <&tcon0_out_dsi0>;
			};
		};
	};
};

dphy0: d-phy@1ca1000 {
	compatible = "allwinner,sun6i-a31-mipi-dphy";
	reg = <0x01ca1000 0x1000>;
	clocks = <&ccu CLK_BUS_MIPI_DSI>,
		 <&ccu CLK_DSI_DPHY>;
	clock-names = "bus", "mod";
	resets = <&ccu RST_BUS_MIPI_DSI>;
	#phy-cells = <0>;
};
