[PATCH v2 7/7] arm64: dts: ti: k3-am68-sk: Enable DSI on DisplayPort-0

Jayesh Choudhary posted 7 patches 3 months, 2 weeks ago
There is a newer version of this series
[PATCH v2 7/7] arm64: dts: ti: k3-am68-sk: Enable DSI on DisplayPort-0
Posted by Jayesh Choudhary 3 months, 2 weeks ago
Enable DSI support for AM68-SK platform.

Add DT node for DSI2eDP bridge. The DSI to eDP bridge is sn65dsi86
on the board.

Add the endpoint nodes to describe connection from:
DSS => DSI => SN65DSI86 bridge => DisplayPort-0

Set status for all required nodes for DisplayPort-0 as 'okay'.

Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
---
 .../boot/dts/ti/k3-am68-sk-base-board.dts     | 96 +++++++++++++++++++
 1 file changed, 96 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts b/arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts
index 5fa70a874d7b..aef63ae2994c 100644
--- a/arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts
+++ b/arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts
@@ -135,6 +135,35 @@ transceiver4: can-phy3 {
 		max-bitrate = <5000000>;
 	};
 
+	edp0_refclk: clock-edp0-refclk {
+		#clock-cells = <0>;
+		compatible = "fixed-clock";
+		clock-frequency = <19200000>;
+	};
+
+	dp0_pwr_3v3: fixedregulator-dp0-pwr {
+		compatible = "regulator-fixed";
+		regulator-name = "dp0-pwr";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&exp2 2 GPIO_ACTIVE_HIGH>;     /*P0 - DP0_3V3 _EN */
+		enable-active-high;
+		regulator-always-on;
+	};
+
+	dp0: dp0-connector {
+		compatible = "dp-connector";
+		label = "DP0";
+		type = "full-size";
+		dp-pwr-supply = <&dp0_pwr_3v3>;
+
+		port {
+			dp0_connector_in: endpoint {
+				remote-endpoint = <&dp0_out>;
+			};
+		};
+	};
+
 	connector-hdmi {
 		compatible = "hdmi-connector";
 		label = "hdmi";
@@ -605,6 +634,39 @@ exp2: gpio@20 {
 		gpio-line-names = "HDMI_PDn","HDMI_LS_OE",
 				  "DP0_3V3_EN","eDP_ENABLE";
 	};
+
+	dsi_edp_bridge: dsi-edp-bridge@2c {
+		compatible = "ti,sn65dsi86";
+		reg = <0x2c>;
+		clock-names = "refclk";
+		clocks = <&edp0_refclk>;
+		enable-gpios = <&exp2 3 GPIO_ACTIVE_HIGH>;
+		vpll-supply = <&vsys_io_1v8>;
+		vccio-supply = <&vsys_io_1v8>;
+		vcca-supply = <&vsys_io_1v2>;
+		vcc-supply = <&vsys_io_1v2>;
+
+		dsi_edp_bridge_ports: ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				dp0_in: endpoint {
+					remote-endpoint = <&dsi0_out>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				dp0_out: endpoint {
+					remote-endpoint = <&dp0_connector_in>;
+				};
+			};
+		};
+	};
 };
 
 &main_sdhci1 {
@@ -699,6 +761,15 @@ dpi_out0: endpoint {
 			remote-endpoint = <&tfp410_in>;
 		};
 	};
+
+	/* DSI */
+	port@2 {
+		reg = <2>;
+
+		dpi0_out: endpoint {
+			remote-endpoint = <&dsi0_in>;
+		};
+	};
 };
 
 &serdes_ln_ctrl {
@@ -756,3 +827,28 @@ &usb0 {
 	phys = <&serdes0_usb_link>;
 	phy-names = "cdns3,usb3-phy";
 };
+
+&dphy_tx0 {
+	status = "okay";
+};
+
+&dsi0 {
+	status = "okay";
+};
+
+&dsi0_ports {
+
+	port@0 {
+		reg = <0>;
+		dsi0_out: endpoint {
+			remote-endpoint = <&dp0_in>;
+		};
+	};
+
+	port@1 {
+		reg = <1>;
+		dsi0_in: endpoint {
+			remote-endpoint = <&dpi0_out>;
+		};
+	};
+};
-- 
2.34.1
Re: [PATCH v2 7/7] arm64: dts: ti: k3-am68-sk: Enable DSI on DisplayPort-0
Posted by Vignesh Raghavendra 3 months, 2 weeks ago

On 24/06/25 13:56, Jayesh Choudhary wrote:
> Enable DSI support for AM68-SK platform.
> 
> Add DT node for DSI2eDP bridge. The DSI to eDP bridge is sn65dsi86
> on the board.
> 
> Add the endpoint nodes to describe connection from:
> DSS => DSI => SN65DSI86 bridge => DisplayPort-0
> 
> Set status for all required nodes for DisplayPort-0 as 'okay'.
> 
> Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
> ---
>  .../boot/dts/ti/k3-am68-sk-base-board.dts     | 96 +++++++++++++++++++
>  1 file changed, 96 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts b/arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts
> index 5fa70a874d7b..aef63ae2994c 100644
> --- a/arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts
> @@ -135,6 +135,35 @@ transceiver4: can-phy3 {
>  		max-bitrate = <5000000>;
>  	};
>  
> +	edp0_refclk: clock-edp0-refclk {
> +		#clock-cells = <0>;
> +		compatible = "fixed-clock";
> +		clock-frequency = <19200000>;
> +	};
> +
> +	dp0_pwr_3v3: fixedregulator-dp0-pwr {

use std node name: regulator-...

> +		compatible = "regulator-fixed";
> +		regulator-name = "dp0-pwr";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		gpio = <&exp2 2 GPIO_ACTIVE_HIGH>;     /*P0 - DP0_3V3 _EN */
> +		enable-active-high;
> +		regulator-always-on;
> +	};
> +
> +	dp0: dp0-connector {
> +		compatible = "dp-connector";
> +		label = "DP0";
> +		type = "full-size";
> +		dp-pwr-supply = <&dp0_pwr_3v3>;
> +
> +		port {
> +			dp0_connector_in: endpoint {
> +				remote-endpoint = <&dp0_out>;
> +			};
> +		};
> +	};
> +
>  	connector-hdmi {
>  		compatible = "hdmi-connector";
>  		label = "hdmi";
> @@ -605,6 +634,39 @@ exp2: gpio@20 {
>  		gpio-line-names = "HDMI_PDn","HDMI_LS_OE",
>  				  "DP0_3V3_EN","eDP_ENABLE";
>  	};
> +
> +	dsi_edp_bridge: dsi-edp-bridge@2c {
> +		compatible = "ti,sn65dsi86";
> +		reg = <0x2c>;
> +		clock-names = "refclk";
> +		clocks = <&edp0_refclk>;
> +		enable-gpios = <&exp2 3 GPIO_ACTIVE_HIGH>;
> +		vpll-supply = <&vsys_io_1v8>;
> +		vccio-supply = <&vsys_io_1v8>;
> +		vcca-supply = <&vsys_io_1v2>;
> +		vcc-supply = <&vsys_io_1v2>;
> +
> +		dsi_edp_bridge_ports: ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@0 {
> +				reg = <0>;
> +
> +				dp0_in: endpoint {
> +					remote-endpoint = <&dsi0_out>;
> +				};
> +			};
> +
> +			port@1 {
> +				reg = <1>;
> +
> +				dp0_out: endpoint {
> +					remote-endpoint = <&dp0_connector_in>;
> +				};
> +			};
> +		};
> +	};
>  };
>  
>  &main_sdhci1 {
> @@ -699,6 +761,15 @@ dpi_out0: endpoint {
>  			remote-endpoint = <&tfp410_in>;
>  		};
>  	};
> +
> +	/* DSI */
> +	port@2 {
> +		reg = <2>;
> +
> +		dpi0_out: endpoint {
> +			remote-endpoint = <&dsi0_in>;
> +		};
> +	};
>  };
>  
>  &serdes_ln_ctrl {
> @@ -756,3 +827,28 @@ &usb0 {
>  	phys = <&serdes0_usb_link>;
>  	phy-names = "cdns3,usb3-phy";
>  };
> +
> +&dphy_tx0 {
> +	status = "okay";
> +};
> +
> +&dsi0 {
> +	status = "okay";
> +};
> +
> +&dsi0_ports {
> +
> +	port@0 {
> +		reg = <0>;
> +		dsi0_out: endpoint {
> +			remote-endpoint = <&dp0_in>;
> +		};
> +	};
> +
> +	port@1 {
> +		reg = <1>;
> +		dsi0_in: endpoint {
> +			remote-endpoint = <&dpi0_out>;
> +		};
> +	};
> +};

-- 
Regards
Vignesh
https://ti.com/opensource
Re: [PATCH v2 7/7] arm64: dts: ti: k3-am68-sk: Enable DSI on DisplayPort-0
Posted by Jayesh Choudhary 2 months, 3 weeks ago
Hi,

On 26/06/25 12:04, Vignesh Raghavendra wrote:
> 
> 
> On 24/06/25 13:56, Jayesh Choudhary wrote:
>> Enable DSI support for AM68-SK platform.
>>
>> Add DT node for DSI2eDP bridge. The DSI to eDP bridge is sn65dsi86
>> on the board.
>>
>> Add the endpoint nodes to describe connection from:
>> DSS => DSI => SN65DSI86 bridge => DisplayPort-0
>>
>> Set status for all required nodes for DisplayPort-0 as 'okay'.
>>
>> Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
>> ---
>>   .../boot/dts/ti/k3-am68-sk-base-board.dts     | 96 +++++++++++++++++++
>>   1 file changed, 96 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts b/arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts
>> index 5fa70a874d7b..aef63ae2994c 100644
>> --- a/arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts
>> +++ b/arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts
>> @@ -135,6 +135,35 @@ transceiver4: can-phy3 {
>>   		max-bitrate = <5000000>;
>>   	};
>>   
>> +	edp0_refclk: clock-edp0-refclk {
>> +		#clock-cells = <0>;
>> +		compatible = "fixed-clock";
>> +		clock-frequency = <19200000>;
>> +	};
>> +
>> +	dp0_pwr_3v3: fixedregulator-dp0-pwr {
> 
> use std node name: regulator-...

Okay! In v3, I will change this.

> 
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "dp0-pwr";
>> +		regulator-min-microvolt = <3300000>;
>> +		regulator-max-microvolt = <3300000>;
>> +		gpio = <&exp2 2 GPIO_ACTIVE_HIGH>;     /*P0 - DP0_3V3 _EN */
>> +		enable-active-high;
>> +		regulator-always-on;
>> +	};
>> +
>> +	dp0: dp0-connector {
>> +		compatible = "dp-connector";
>> +		label = "DP0";
>> +		type = "full-size";
>> +		dp-pwr-supply = <&dp0_pwr_3v3>;
>> +
>> +		port {
>> +			dp0_connector_in: endpoint {
>> +				remote-endpoint = <&dp0_out>;
>> +			};
>> +		};
>> +	};
>> +
>>   	connector-hdmi {
>>   		compatible = "hdmi-connector";
>>   		label = "hdmi";
>> @@ -605,6 +634,39 @@ exp2: gpio@20 {
>>   		gpio-line-names = "HDMI_PDn","HDMI_LS_OE",
>>   				  "DP0_3V3_EN","eDP_ENABLE";
>>   	};
>> +
>> +	dsi_edp_bridge: dsi-edp-bridge@2c {
>> +		compatible = "ti,sn65dsi86";
>> +		reg = <0x2c>;
>> +		clock-names = "refclk";
>> +		clocks = <&edp0_refclk>;
>> +		enable-gpios = <&exp2 3 GPIO_ACTIVE_HIGH>;
>> +		vpll-supply = <&vsys_io_1v8>;
>> +		vccio-supply = <&vsys_io_1v8>;
>> +		vcca-supply = <&vsys_io_1v2>;
>> +		vcc-supply = <&vsys_io_1v2>;
>> +
>> +		dsi_edp_bridge_ports: ports {
>> +			#address-cells = <1>;
>> +			#size-cells = <0>;
>> +
>> +			port@0 {
>> +				reg = <0>;
>> +
>> +				dp0_in: endpoint {
>> +					remote-endpoint = <&dsi0_out>;
>> +				};
>> +			};
>> +
>> +			port@1 {
>> +				reg = <1>;
>> +
>> +				dp0_out: endpoint {
>> +					remote-endpoint = <&dp0_connector_in>;
>> +				};
>> +			};
>> +		};
>> +	};
>>   };
>>   
>>   &main_sdhci1 {
>> @@ -699,6 +761,15 @@ dpi_out0: endpoint {
>>   			remote-endpoint = <&tfp410_in>;
>>   		};
>>   	};
>> +
>> +	/* DSI */
>> +	port@2 {
>> +		reg = <2>;
>> +
>> +		dpi0_out: endpoint {
>> +			remote-endpoint = <&dsi0_in>;
>> +		};
>> +	};
>>   };
>>   
>>   &serdes_ln_ctrl {
>> @@ -756,3 +827,28 @@ &usb0 {
>>   	phys = <&serdes0_usb_link>;
>>   	phy-names = "cdns3,usb3-phy";
>>   };
>> +
>> +&dphy_tx0 {
>> +	status = "okay";
>> +};
>> +
>> +&dsi0 {
>> +	status = "okay";
>> +};
>> +
>> +&dsi0_ports {
>> +
>> +	port@0 {
>> +		reg = <0>;
>> +		dsi0_out: endpoint {
>> +			remote-endpoint = <&dp0_in>;
>> +		};
>> +	};
>> +
>> +	port@1 {
>> +		reg = <1>;
>> +		dsi0_in: endpoint {
>> +			remote-endpoint = <&dpi0_out>;
>> +		};
>> +	};
>> +};
>