diff mbox

[v3,5/6] dt-bindings: display: stm32: Add DSI host driver

Message ID 1496414235-20098-6-git-send-email-philippe.cornu@st.com (mailing list archive)
State New, archived
Headers show

Commit Message

Philippe CORNU June 2, 2017, 2:37 p.m. UTC
This patch adds documentation of device tree bindings for the STM32
DSI host driver based on the Synopsys DW MIPI DSI bridge driver.
---
 .../devicetree/bindings/display/st,stm32-ltdc.txt  | 83 +++++++++++++++++++++-
 1 file changed, 82 insertions(+), 1 deletion(-)

Comments

Neil Armstrong June 6, 2017, 8:05 a.m. UTC | #1
Hi Philippe,

On 06/02/2017 04:37 PM, Philippe CORNU wrote:
> This patch adds documentation of device tree bindings for the STM32
> DSI host driver based on the Synopsys DW MIPI DSI bridge driver.
> ---
>  .../devicetree/bindings/display/st,stm32-ltdc.txt  | 83 +++++++++++++++++++++-
>  1 file changed, 82 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/display/st,stm32-ltdc.txt b/Documentation/devicetree/bindings/display/st,stm32-ltdc.txt
> index 90a8459..4cd32bd 100644
> --- a/Documentation/devicetree/bindings/display/st,stm32-ltdc.txt
> +++ b/Documentation/devicetree/bindings/display/st,stm32-ltdc.txt
> @@ -12,8 +12,39 @@
>    Required nodes:
>      - Video port for RGB output.
>  
> -Example:
> +* STMicroelectronics STM32 dsi specific extensions to Synopsys DesignWare MIPI
> +  DSI host controller

Why is "dsi" in low-case only here and below ?

>  
> +The STMicroelectronics STM32 dsi driver uses the Synopsys DesignWare MIPI
> +DSI host controller driver (related documentation in [5]).
> +
> +Required properties:
> +- #address-cells: Should be <1>.
> +- #size-cells: Should be <0>.
> +- compatible: "st,stm32-dsi".
> +- reg: Memory mapped base address and length of the DWC MIPI DSI registers.
> +- clocks: References to all the clocks specified in the clock-names property
> +  as specified in [1].
> +- clock-names:
> +  - peripheral clock string name, must be "pclk".
> +  - phy pll reference clock string name, must be "ref".
> +- resets: References to all the resets specified in the reset-names property
> +  as specified in [2].
> +- reset-names: string reset name, must be "apb".
> +
> +Required nodes:
> +- dsi input port node: connected to the ltdc rgb output port, see [3] & [4].
> +- panel or bridge node: see [6].
> +
> +Note: You can find more documentation
> +[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 +64,53 @@ 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";
> +
> +			port {
> +				dsi_in: endpoint {
> +					remote-endpoint = <&ltdc_out_dsi>;
> +				};
> +			};
> +
> +			panel-dsi@0 {
> +				reg = <0>; /* dsi virtual channel (0..3) */
> +				compatible = ...;
> +				enable-gpios = ...;
> +
> +			};
> +
> +		};
> +
> +	};
> +};
> 

Apart from that :
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Rob Herring (Arm) June 8, 2017, 5:12 p.m. UTC | #2
On Fri, Jun 02, 2017 at 04:37:14PM +0200, Philippe CORNU wrote:
> This patch adds documentation of device tree bindings for the STM32
> DSI host driver based on the Synopsys DW MIPI DSI bridge driver.
> ---
>  .../devicetree/bindings/display/st,stm32-ltdc.txt  | 83 +++++++++++++++++++++-
>  1 file changed, 82 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/display/st,stm32-ltdc.txt b/Documentation/devicetree/bindings/display/st,stm32-ltdc.txt
> index 90a8459..4cd32bd 100644
> --- a/Documentation/devicetree/bindings/display/st,stm32-ltdc.txt
> +++ b/Documentation/devicetree/bindings/display/st,stm32-ltdc.txt
> @@ -12,8 +12,39 @@
>    Required nodes:
>      - Video port for RGB output.
>  
> -Example:
> +* STMicroelectronics STM32 dsi specific extensions to Synopsys DesignWare MIPI
> +  DSI host controller
>  
> +The STMicroelectronics STM32 dsi driver uses the Synopsys DesignWare MIPI
> +DSI host controller driver (related documentation in [5]).
> +
> +Required properties:
> +- #address-cells: Should be <1>.
> +- #size-cells: Should be <0>.
> +- compatible: "st,stm32-dsi".
> +- reg: Memory mapped base address and length of the DWC MIPI DSI registers.
> +- clocks: References to all the clocks specified in the clock-names property
> +  as specified in [1].
> +- clock-names:
> +  - peripheral clock string name, must be "pclk".
> +  - phy pll reference clock string name, must be "ref".

I still have the same comment as v1.

> +- resets: References to all the resets specified in the reset-names property
> +  as specified in [2].
> +- reset-names: string reset name, must be "apb".
> +
> +Required nodes:
> +- dsi input port node: connected to the ltdc rgb output port, see [3] & [4].
> +- panel or bridge node: see [6].

Need to be explicit here. Port 0 is ... Port 1 is ...

> +
> +Note: You can find more documentation
> +[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 +64,53 @@ 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";
> +
> +			port {
> +				dsi_in: endpoint {
> +					remote-endpoint = <&ltdc_out_dsi>;
> +				};
> +			};
> +
> +			panel-dsi@0 {

This should use graph binding instead. Or at least we should allow that 
and be clear above that we do.

> +				reg = <0>; /* dsi virtual channel (0..3) */
> +				compatible = ...;
> +				enable-gpios = ...;
> +
> +			};
> +
> +		};
> +
> +	};
> +};
> -- 
> 1.9.1
>
Philippe CORNU June 19, 2017, 4:58 p.m. UTC | #3
On 06/08/2017 07:12 PM, Rob Herring wrote:
> On Fri, Jun 02, 2017 at 04:37:14PM +0200, Philippe CORNU wrote:
>> This patch adds documentation of device tree bindings for the STM32
>> DSI host driver based on the Synopsys DW MIPI DSI bridge driver.
>> ---
>>   .../devicetree/bindings/display/st,stm32-ltdc.txt  | 83 +++++++++++++++++++++-
>>   1 file changed, 82 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/display/st,stm32-ltdc.txt b/Documentation/devicetree/bindings/display/st,stm32-ltdc.txt
>> index 90a8459..4cd32bd 100644
>> --- a/Documentation/devicetree/bindings/display/st,stm32-ltdc.txt
>> +++ b/Documentation/devicetree/bindings/display/st,stm32-ltdc.txt
>> @@ -12,8 +12,39 @@
>>     Required nodes:
>>       - Video port for RGB output.
>>   
>> -Example:
>> +* STMicroelectronics STM32 dsi specific extensions to Synopsys DesignWare MIPI
>> +  DSI host controller
>>   
>> +The STMicroelectronics STM32 dsi driver uses the Synopsys DesignWare MIPI
>> +DSI host controller driver (related documentation in [5]).
>> +
>> +Required properties:
>> +- #address-cells: Should be <1>.
>> +- #size-cells: Should be <0>.
>> +- compatible: "st,stm32-dsi".
>> +- reg: Memory mapped base address and length of the DWC MIPI DSI registers.
>> +- clocks: References to all the clocks specified in the clock-names property
>> +  as specified in [1].
>> +- clock-names:
>> +  - peripheral clock string name, must be "pclk".
>> +  - phy pll reference clock string name, must be "ref".
> 
> I still have the same comment as v1.
> 
Hi Rob,
I added the "reference to [5]" just few lines above (before the required 
properties) and I though it was enough : )
In the v4 version I have just sent, I have tried to be more explicit 
regarding this reference to [5] (what is optional and what is mandatory...).
Many thanks for your help,

>> +- resets: References to all the resets specified in the reset-names property
>> +  as specified in [2].
>> +- reset-names: string reset name, must be "apb".
>> +
>> +Required nodes:
>> +- dsi input port node: connected to the ltdc rgb output port, see [3] & [4].
>> +- panel or bridge node: see [6].
> 
> Need to be explicit here. Port 0 is ... Port 1 is ...
> 
Done in v4, many thanks for your comment.

>> +
>> +Note: You can find more documentation
>> +[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 +64,53 @@ 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";
>> +
>> +			port {
>> +				dsi_in: endpoint {
>> +					remote-endpoint = <&ltdc_out_dsi>;
>> +				};
>> +			};
>> +
>> +			panel-dsi@0 {
> 
> This should use graph binding instead. Or at least we should allow that
> and be clear above that we do.
> 
Done in v4, many thanks for your comment.
Philippe

>> +				reg = <0>; /* dsi virtual channel (0..3) */
>> +				compatible = ...;
>> +				enable-gpios = ...;
>> +
>> +			};
>> +
>> +		};
>> +
>> +	};
>> +};
>> -- 
>> 1.9.1
>>
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/display/st,stm32-ltdc.txt b/Documentation/devicetree/bindings/display/st,stm32-ltdc.txt
index 90a8459..4cd32bd 100644
--- a/Documentation/devicetree/bindings/display/st,stm32-ltdc.txt
+++ b/Documentation/devicetree/bindings/display/st,stm32-ltdc.txt
@@ -12,8 +12,39 @@ 
   Required nodes:
     - Video port for RGB output.
 
-Example:
+* STMicroelectronics STM32 dsi specific extensions to Synopsys DesignWare MIPI
+  DSI host controller
 
+The STMicroelectronics STM32 dsi driver uses the Synopsys DesignWare MIPI
+DSI host controller driver (related documentation in [5]).
+
+Required properties:
+- #address-cells: Should be <1>.
+- #size-cells: Should be <0>.
+- compatible: "st,stm32-dsi".
+- reg: Memory mapped base address and length of the DWC MIPI DSI registers.
+- clocks: References to all the clocks specified in the clock-names property
+  as specified in [1].
+- clock-names:
+  - peripheral clock string name, must be "pclk".
+  - phy pll reference clock string name, must be "ref".
+- resets: References to all the resets specified in the reset-names property
+  as specified in [2].
+- reset-names: string reset name, must be "apb".
+
+Required nodes:
+- dsi input port node: connected to the ltdc rgb output port, see [3] & [4].
+- panel or bridge node: see [6].
+
+Note: You can find more documentation
+[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 +64,53 @@  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";
+
+			port {
+				dsi_in: endpoint {
+					remote-endpoint = <&ltdc_out_dsi>;
+				};
+			};
+
+			panel-dsi@0 {
+				reg = <0>; /* dsi virtual channel (0..3) */
+				compatible = ...;
+				enable-gpios = ...;
+
+			};
+
+		};
+
+	};
+};