Commit 4c308b98 authored by Philippe CORNU's avatar Philippe CORNU Committed by Benjamin Gaignard
Browse files

dt-bindings: display: stm32: Add DSI controller



This patch adds documentation of device tree bindings for the STM32 DSI
controller based on the Synopsys DesignWare MIPI DSI host controller.

Signed-off-by: default avatarPhilippe CORNU <philippe.cornu@st.com>
Reviewed-by: default avatarNeil Armstrong <narmstrong@baylibre.com>
Acked-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarBenjamin Gaignard <benjamin.gaignard@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/1500277223-29553-7-git-send-email-philippe.cornu@st.com
parent 97b2c684
Loading
Loading
Loading
Loading
+103 −1
Original line number Diff line number Diff line
@@ -12,8 +12,40 @@
  Required nodes:
    - Video port for RGB output.

Example:
* STMicroelectronics STM32 DSI controller specific extensions to Synopsys
  DesignWare MIPI DSI host controller

The STMicroelectronics STM32 DSI controller uses the Synopsys DesignWare MIPI
DSI host controller. For all mandatory properties & nodes, please refer
to the related documentation in [5].

Mandatory properties specific to STM32 DSI:
- #address-cells: Should be <1>.
- #size-cells: Should be <0>.
- compatible: "st,stm32-dsi".
- clock-names:
  - phy pll reference clock string name, must be "ref".
- resets: see [5].
- reset-names: see [5].

Mandatory nodes specific to STM32 DSI:
- ports: A node containing DSI input & output port nodes with endpoint
  definitions as documented in [3] & [4].
  - port@0: DSI input port node, connected to the ltdc rgb output port.
  - port@1: DSI output port node, connected to a panel or a bridge input port.
- panel or bridge node: A node containing the panel or bridge description as
  documented in [6].
  - port: panel or bridge port node, connected to the DSI output port (port@1).

Note: You can find more documentation in the following references
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
[2] Documentation/devicetree/bindings/reset/reset.txt
[3] Documentation/devicetree/bindings/media/video-interfaces.txt
[4] Documentation/devicetree/bindings/graph.txt
[5] Documentation/devicetree/bindings/display/bridge/dw_mipi_dsi.txt
[6] Documentation/devicetree/bindings/display/mipi-dsi-bus.txt

Example 1: RGB panel
/ {
	...
	soc {
@@ -33,3 +65,73 @@ Example:
		};
	};
};

Example 2: DSI panel

/ {
	...
	soc {
	...
		ltdc: display-controller@40016800 {
			compatible = "st,stm32-ltdc";
			reg = <0x40016800 0x200>;
			interrupts = <88>, <89>;
			resets = <&rcc STM32F4_APB2_RESET(LTDC)>;
			clocks = <&rcc 1 CLK_LCD>;
			clock-names = "lcd";

			port {
				ltdc_out_dsi: endpoint {
					remote-endpoint = <&dsi_in>;
				};
			};
		};


		dsi: dsi@40016c00 {
			#address-cells = <1>;
			#size-cells = <0>;
			compatible = "st,stm32-dsi";
			reg = <0x40016c00 0x800>;
			clocks = <&rcc 1 CLK_F469_DSI>, <&clk_hse>;
			clock-names = "ref", "pclk";
			resets = <&rcc STM32F4_APB2_RESET(DSI)>;
			reset-names = "apb";

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

				port@0 {
					reg = <0>;
					dsi_in: endpoint {
						remote-endpoint = <&ltdc_out_dsi>;
					};
				};

				port@1 {
					reg = <1>;
					dsi_out: endpoint {
						remote-endpoint = <&dsi_in_panel>;
					};
				};

			};

			panel-dsi@0 {
				reg = <0>; /* dsi virtual channel (0..3) */
				compatible = ...;
				enable-gpios = ...;

				port {
					dsi_in_panel: endpoint {
						remote-endpoint = <&dsi_out>;
					};
				};

			};

		};

	};
};