diff mbox

[8/9] dt-bindings: msm/dsi: Modify port and PHY bindings

Message ID 1462273081-5814-9-git-send-email-architt@codeaurora.org
State Changes Requested, archived
Headers show

Commit Message

Archit Taneja May 3, 2016, 10:58 a.m. UTC
The DSI node now has two ports that describe the connection between the
MDP interface output and the DSI input, and the connection between the DSI
output and the connected panel/bridge. Update the properties and the
example.

Also, use generic PHY bindings instead of the custom one.

Signed-off-by: Archit Taneja <architt@codeaurora.org>
---
 .../devicetree/bindings/display/msm/dsi.txt        | 53 +++++++++++++++-------
 1 file changed, 37 insertions(+), 16 deletions(-)

Comments

Philipp Zabel May 3, 2016, 2:02 p.m. UTC | #1
Am Dienstag, den 03.05.2016, 16:28 +0530 schrieb Archit Taneja:
> The DSI node now has two ports that describe the connection between the
> MDP interface output and the DSI input, and the connection between the DSI
> output and the connected panel/bridge. Update the properties and the
> example.
> 
> Also, use generic PHY bindings instead of the custom one.
> 
> Signed-off-by: Archit Taneja <architt@codeaurora.org>
> ---
>  .../devicetree/bindings/display/msm/dsi.txt        | 53 +++++++++++++++-------
>  1 file changed, 37 insertions(+), 16 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/display/msm/dsi.txt b/Documentation/devicetree/bindings/display/msm/dsi.txt
> index bf41d7c..0223f06 100644
> --- a/Documentation/devicetree/bindings/display/msm/dsi.txt
> +++ b/Documentation/devicetree/bindings/display/msm/dsi.txt
> @@ -25,12 +25,18 @@ Required properties:
>  - vdd-supply: phandle to vdd regulator device node
>  - vddio-supply: phandle to vdd-io regulator device node
>  - vdda-supply: phandle to vdda regulator device node
> -- qcom,dsi-phy: phandle to DSI PHY device node
> +- phys: phandle to DSI PHY device node
> +- phy-names: the name of the corresponding PHY device

Should "dsi_phy" be specified here?

Also is there any kind of system to the PHY naming? I've seen more
bindings use hyphen instead of underscore in the name, for example.
I have called the MediaTek MIPI_TX PHY "dphy" for no other reason than
it's a MIPI D-PHY.

>  - syscon-sfpb: A phandle to mmss_sfpb syscon node (only for DSIv2)
> +- ports: Contains 2 DSI controller ports as child nodes. Each port contains
> +  an endpoint subnode as defined in [2] and [3]. port@0 describes the
> +  connection between the MDP interface output and the DSI input. port@1
> +  describes the connection between the DSI output and the connected
> +  panel/bridge.
>  
>  Optional properties:
>  - panel@0: Node of panel connected to this DSI controller.
> -  See files in [2] for each supported panel.
> +  See files in [4] for each supported panel.
>  - qcom,dual-dsi-mode: Boolean value indicating if the DSI controller is
>    driving a panel which needs 2 DSI links.
>  - qcom,master-dsi: Boolean value indicating if the DSI controller is driving
> @@ -42,15 +48,15 @@ Optional properties:
>  - pinctrl-names: the pin control state names; should contain "default"
>  - pinctrl-0: the default pinctrl state (active)
>  - pinctrl-n: the "sleep" pinctrl state
> -- port: DSI controller output port, containing one endpoint subnode.
>  
>    DSI Endpoint properties:
> -  - remote-endpoint: set to phandle of the connected panel's endpoint.
> -    See [3] for device graph info.
> +  - remote-endpoint: For port@0, set to phandle of the connected panel/bridge's
> +    input endpoint. For port@1, set to the MDP interface output.
>    - qcom,data-lane-map: this describes how the logical DSI lanes are mapped
>      to the physical lanes on the given platform. The value contained in
>      index n describes what logical data lane is mapped to the physical data
> -    lane n (DATAn, where n lies between 0 and 3).
> +    lane n (DATAn, where n lies between 0 and 3). Only for the endpoint in
> +    port@1.

I approve of the of graph change, but I notice that the
qcom,data-lane-map is very similar to the data-lanes property documented
in Documentation/devicetree/bindings/media/video-interfaces.txt for MIPI
CSI-2. Could that maybe be reused for DSI?

>      For example:
>  
> @@ -97,8 +103,9 @@ Optional properties:
>    regulator is wanted.
>  
>  [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
> -[2] Documentation/devicetree/bindings/display/panel/
> -[3] Documentation/devicetree/bindings/graph.txt
> +[2] Documentation/devicetree/bindings/graph.txt
> +[3] Documentation/devicetree/bindings/media/video-interfaces.txt
> +[4] Documentation/devicetree/bindings/display/panel/
>  
>  Example:
>  	dsi0: dsi@fd922800 {
> @@ -129,7 +136,8 @@ Example:
>  		vdd-supply = <&pma8084_l22>;
>  		vddio-supply = <&pma8084_l12>;
>  
> -		qcom,dsi-phy = <&dsi_phy0>;
> +		phys = <&dsi_phy0>;
> +		phy-names ="dsi_phy";
>  
>  		qcom,dual-dsi-mode;
>  		qcom,master-dsi;
> @@ -139,6 +147,26 @@ Example:
>  		pinctrl-0 = <&mdss_dsi_active>;
>  		pinctrl-1 = <&mdss_dsi_suspend>;
>  
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@0 {
> +				reg = <0>;
> +				dsi0_in: endpoint {
> +					remote-endpoint = <&mdp_intf1_out>;
> +				};
> +			};
> +
> +			port@1 {
> +				reg = <1>;
> +				dsi0_out: endpoint {
> +					remote-endpoint = <&panel_in>;
> +					qcom,data-lane-map = <0 1 2 3>;
> +				};
> +			};
> +		};
> +
>  		panel: panel@0 {
>  			compatible = "sharp,lq101r1sx01";
>  			reg = <0>;

If the panel is connected via port@1, why is this still needed?

> @@ -153,13 +181,6 @@ Example:
>  				};
>  			};
>  		};
> -
> -		port {
> -			dsi0_out: endpoint {
> -				remote-endpoint = <&panel_in>;
> -				qcom,data-lane-map = <0 1 2 3>;
> -			};
> -		};
>  	};
>  
>  	dsi_phy0: dsi_phy@fd922a00 {

regards
Philipp

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Archit Taneja May 4, 2016, 8:09 a.m. UTC | #2
On 05/03/2016 07:32 PM, Philipp Zabel wrote:
> Am Dienstag, den 03.05.2016, 16:28 +0530 schrieb Archit Taneja:
>> The DSI node now has two ports that describe the connection between the
>> MDP interface output and the DSI input, and the connection between the DSI
>> output and the connected panel/bridge. Update the properties and the
>> example.
>>
>> Also, use generic PHY bindings instead of the custom one.
>>
>> Signed-off-by: Archit Taneja <architt@codeaurora.org>
>> ---
>>   .../devicetree/bindings/display/msm/dsi.txt        | 53 +++++++++++++++-------
>>   1 file changed, 37 insertions(+), 16 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/display/msm/dsi.txt b/Documentation/devicetree/bindings/display/msm/dsi.txt
>> index bf41d7c..0223f06 100644
>> --- a/Documentation/devicetree/bindings/display/msm/dsi.txt
>> +++ b/Documentation/devicetree/bindings/display/msm/dsi.txt
>> @@ -25,12 +25,18 @@ Required properties:
>>   - vdd-supply: phandle to vdd regulator device node
>>   - vddio-supply: phandle to vdd-io regulator device node
>>   - vdda-supply: phandle to vdda regulator device node
>> -- qcom,dsi-phy: phandle to DSI PHY device node
>> +- phys: phandle to DSI PHY device node
>> +- phy-names: the name of the corresponding PHY device
>
> Should "dsi_phy" be specified here?
>
> Also is there any kind of system to the PHY naming? I've seen more
> bindings use hyphen instead of underscore in the name, for example.
> I have called the MediaTek MIPI_TX PHY "dphy" for no other reason than
> it's a MIPI D-PHY.

I agree with the hyphen part, I'll switch to that.

The DSI PHY block isn't only the D-PHY interface, it also contains a
PLL and some logic to support more complex configurations (for
example, syncing with the PHY connected to another DSI output). That's
the main reason why I left the name as "dsi_phy".

>
>>   - syscon-sfpb: A phandle to mmss_sfpb syscon node (only for DSIv2)
>> +- ports: Contains 2 DSI controller ports as child nodes. Each port contains
>> +  an endpoint subnode as defined in [2] and [3]. port@0 describes the
>> +  connection between the MDP interface output and the DSI input. port@1
>> +  describes the connection between the DSI output and the connected
>> +  panel/bridge.
>>
>>   Optional properties:
>>   - panel@0: Node of panel connected to this DSI controller.
>> -  See files in [2] for each supported panel.
>> +  See files in [4] for each supported panel.
>>   - qcom,dual-dsi-mode: Boolean value indicating if the DSI controller is
>>     driving a panel which needs 2 DSI links.
>>   - qcom,master-dsi: Boolean value indicating if the DSI controller is driving
>> @@ -42,15 +48,15 @@ Optional properties:
>>   - pinctrl-names: the pin control state names; should contain "default"
>>   - pinctrl-0: the default pinctrl state (active)
>>   - pinctrl-n: the "sleep" pinctrl state
>> -- port: DSI controller output port, containing one endpoint subnode.
>>
>>     DSI Endpoint properties:
>> -  - remote-endpoint: set to phandle of the connected panel's endpoint.
>> -    See [3] for device graph info.
>> +  - remote-endpoint: For port@0, set to phandle of the connected panel/bridge's
>> +    input endpoint. For port@1, set to the MDP interface output.
>>     - qcom,data-lane-map: this describes how the logical DSI lanes are mapped
>>       to the physical lanes on the given platform. The value contained in
>>       index n describes what logical data lane is mapped to the physical data
>> -    lane n (DATAn, where n lies between 0 and 3).
>> +    lane n (DATAn, where n lies between 0 and 3). Only for the endpoint in
>> +    port@1.
>
> I approve of the of graph change, but I notice that the
> qcom,data-lane-map is very similar to the data-lanes property documented
> in Documentation/devicetree/bindings/media/video-interfaces.txt for MIPI
> CSI-2. Could that maybe be reused for DSI?

You're right. I missed out on the existing binding when I posted this.
One difference in this binding is that the indices here point to the
physical lanes, and the value contained in the index is the logical
lane (that's how it's described in the register documentation). For
the "data-lanes" property, it's the other way round. It's still
better to use the existing binding. I'll post a separate patch to
update this.


>
>>       For example:
>>
>> @@ -97,8 +103,9 @@ Optional properties:
>>     regulator is wanted.
>>
>>   [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
>> -[2] Documentation/devicetree/bindings/display/panel/
>> -[3] Documentation/devicetree/bindings/graph.txt
>> +[2] Documentation/devicetree/bindings/graph.txt
>> +[3] Documentation/devicetree/bindings/media/video-interfaces.txt
>> +[4] Documentation/devicetree/bindings/display/panel/
>>
>>   Example:
>>   	dsi0: dsi@fd922800 {
>> @@ -129,7 +136,8 @@ Example:
>>   		vdd-supply = <&pma8084_l22>;
>>   		vddio-supply = <&pma8084_l12>;
>>
>> -		qcom,dsi-phy = <&dsi_phy0>;
>> +		phys = <&dsi_phy0>;
>> +		phy-names ="dsi_phy";
>>
>>   		qcom,dual-dsi-mode;
>>   		qcom,master-dsi;
>> @@ -139,6 +147,26 @@ Example:
>>   		pinctrl-0 = <&mdss_dsi_active>;
>>   		pinctrl-1 = <&mdss_dsi_suspend>;
>>
>> +		ports {
>> +			#address-cells = <1>;
>> +			#size-cells = <0>;
>> +
>> +			port@0 {
>> +				reg = <0>;
>> +				dsi0_in: endpoint {
>> +					remote-endpoint = <&mdp_intf1_out>;
>> +				};
>> +			};
>> +
>> +			port@1 {
>> +				reg = <1>;
>> +				dsi0_out: endpoint {
>> +					remote-endpoint = <&panel_in>;
>> +					qcom,data-lane-map = <0 1 2 3>;
>> +				};
>> +			};
>> +		};
>> +
>>   		panel: panel@0 {
>>   			compatible = "sharp,lq101r1sx01";
>>   			reg = <0>;
>
> If the panel is connected via port@1, why is this still needed?

Did you mean that the numbering(reg prop) isn't needed? If so, yeah, I
missed out on that. I'll remove it. Thanks for pointing it out.

Archit
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/display/msm/dsi.txt b/Documentation/devicetree/bindings/display/msm/dsi.txt
index bf41d7c..0223f06 100644
--- a/Documentation/devicetree/bindings/display/msm/dsi.txt
+++ b/Documentation/devicetree/bindings/display/msm/dsi.txt
@@ -25,12 +25,18 @@  Required properties:
 - vdd-supply: phandle to vdd regulator device node
 - vddio-supply: phandle to vdd-io regulator device node
 - vdda-supply: phandle to vdda regulator device node
-- qcom,dsi-phy: phandle to DSI PHY device node
+- phys: phandle to DSI PHY device node
+- phy-names: the name of the corresponding PHY device
 - syscon-sfpb: A phandle to mmss_sfpb syscon node (only for DSIv2)
+- ports: Contains 2 DSI controller ports as child nodes. Each port contains
+  an endpoint subnode as defined in [2] and [3]. port@0 describes the
+  connection between the MDP interface output and the DSI input. port@1
+  describes the connection between the DSI output and the connected
+  panel/bridge.
 
 Optional properties:
 - panel@0: Node of panel connected to this DSI controller.
-  See files in [2] for each supported panel.
+  See files in [4] for each supported panel.
 - qcom,dual-dsi-mode: Boolean value indicating if the DSI controller is
   driving a panel which needs 2 DSI links.
 - qcom,master-dsi: Boolean value indicating if the DSI controller is driving
@@ -42,15 +48,15 @@  Optional properties:
 - pinctrl-names: the pin control state names; should contain "default"
 - pinctrl-0: the default pinctrl state (active)
 - pinctrl-n: the "sleep" pinctrl state
-- port: DSI controller output port, containing one endpoint subnode.
 
   DSI Endpoint properties:
-  - remote-endpoint: set to phandle of the connected panel's endpoint.
-    See [3] for device graph info.
+  - remote-endpoint: For port@0, set to phandle of the connected panel/bridge's
+    input endpoint. For port@1, set to the MDP interface output.
   - qcom,data-lane-map: this describes how the logical DSI lanes are mapped
     to the physical lanes on the given platform. The value contained in
     index n describes what logical data lane is mapped to the physical data
-    lane n (DATAn, where n lies between 0 and 3).
+    lane n (DATAn, where n lies between 0 and 3). Only for the endpoint in
+    port@1.
 
     For example:
 
@@ -97,8 +103,9 @@  Optional properties:
   regulator is wanted.
 
 [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
-[2] Documentation/devicetree/bindings/display/panel/
-[3] Documentation/devicetree/bindings/graph.txt
+[2] Documentation/devicetree/bindings/graph.txt
+[3] Documentation/devicetree/bindings/media/video-interfaces.txt
+[4] Documentation/devicetree/bindings/display/panel/
 
 Example:
 	dsi0: dsi@fd922800 {
@@ -129,7 +136,8 @@  Example:
 		vdd-supply = <&pma8084_l22>;
 		vddio-supply = <&pma8084_l12>;
 
-		qcom,dsi-phy = <&dsi_phy0>;
+		phys = <&dsi_phy0>;
+		phy-names ="dsi_phy";
 
 		qcom,dual-dsi-mode;
 		qcom,master-dsi;
@@ -139,6 +147,26 @@  Example:
 		pinctrl-0 = <&mdss_dsi_active>;
 		pinctrl-1 = <&mdss_dsi_suspend>;
 
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+				dsi0_in: endpoint {
+					remote-endpoint = <&mdp_intf1_out>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+				dsi0_out: endpoint {
+					remote-endpoint = <&panel_in>;
+					qcom,data-lane-map = <0 1 2 3>;
+				};
+			};
+		};
+
 		panel: panel@0 {
 			compatible = "sharp,lq101r1sx01";
 			reg = <0>;
@@ -153,13 +181,6 @@  Example:
 				};
 			};
 		};
-
-		port {
-			dsi0_out: endpoint {
-				remote-endpoint = <&panel_in>;
-				qcom,data-lane-map = <0 1 2 3>;
-			};
-		};
 	};
 
 	dsi_phy0: dsi_phy@fd922a00 {