[PATCH v5 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode

Swati Agarwal posted 4 patches 2 weeks, 4 days ago
[PATCH v5 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
Posted by Swati Agarwal 2 weeks, 4 days ago
Enable secondary USB controller in host mode on lemans EVK Platform.

Secondary USB controller is connected to a Genesys Logic USB HUB GL3590
having 4 ports. The ports of hub that are present on lemans EVK standalone
board are used as follows:-
1) port-1 is connected to HD3SS3220 Type-C port controller.
2) port-4 is used for the M.2 E key on corekit. Standard core kit uses UART
for Bluetooth. This port is to be used only if user optionally replaces the
WiFi card with the NFA765 chip which uses USB for Bluetooth.

Remaining 2 ports will become functional when the interface plus mezzanine
board is stacked on top of corekit:

3) port-2 is connected to another hub which is present on the mezz through
which 4 type-A ports are connected.
4) port-3 is used for the M.2 B key for a 5G card when the mezz is
connected.

Mark the second USB controller as host only capable and add the HD3SS3220
Type-C port controller along with Type-c connector for controlling vbus
supply.

Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/lemans-evk.dts | 208 ++++++++++++++++++++++++
 1 file changed, 208 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
index 074a1edd0334..a549f7fe53a1 100644
--- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
+++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
@@ -68,6 +68,45 @@ usb0_con_ss_ep: endpoint {
 		};
 	};
 
+	connector-1 {
+		compatible = "usb-c-connector";
+		label = "USB1-Type-C";
+		data-role = "host";
+		power-role = "source";
+
+		vbus-supply = <&vbus_supply_regulator_1>;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				usb1_con_ss_ep: endpoint {
+					remote-endpoint = <&hd3ss3220_1_in_ep>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				usb1_hs_in: endpoint {
+					remote-endpoint = <&usb_hub_2_1>;
+				};
+
+			};
+
+			port@2 {
+				reg = <2>;
+
+				usb1_ss_in: endpoint {
+					remote-endpoint = <&usb_hub_3_1>;
+				};
+			};
+		};
+	};
+
 	edp0-connector {
 		compatible = "dp-connector";
 		label = "EDP0";
@@ -141,6 +180,16 @@ vbus_supply_regulator_0: regulator-vbus-supply-0 {
 		enable-active-high;
 	};
 
+	vbus_supply_regulator_1: regulator-vbus-supply-1 {
+		compatible = "regulator-fixed";
+		regulator-name = "vbus_supply_1";
+		gpio = <&expander1 3 GPIO_ACTIVE_HIGH>;
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-boot-on;
+		enable-active-high;
+	};
+
 	vmmc_sdc: regulator-vmmc-sdc {
 		compatible = "regulator-fixed";
 
@@ -536,6 +585,39 @@ hd3ss3220_0_out_ep: endpoint {
 			};
 		};
 	};
+
+	usb-typec@47 {
+		compatible = "ti,hd3ss3220";
+		reg = <0x47>;
+
+		interrupts-extended = <&pmm8654au_2_gpios 6 IRQ_TYPE_EDGE_FALLING>;
+
+		id-gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
+
+		pinctrl-0 = <&usb1_id>, <&usb1_intr>;
+		pinctrl-names = "default";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				hd3ss3220_1_in_ep: endpoint {
+					remote-endpoint = <&usb1_con_ss_ep>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				hd3ss3220_1_out_ep: endpoint {
+				};
+			};
+		};
+	};
+
 };
 
 &i2c18 {
@@ -699,6 +781,14 @@ usb0_intr_state: usb0-intr-state {
 		bias-pull-up;
 		power-source = <0>;
 	};
+
+	usb1_intr: usb1-intr-state {
+		pins = "gpio6";
+		function = "normal";
+		input-enable;
+		bias-pull-up;
+		power-source = <0>;
+	};
 };
 
 &qup_i2c19_default {
@@ -868,6 +958,12 @@ usb_id: usb-id-state {
 		function = "gpio";
 		bias-pull-up;
 	};
+
+	usb1_id: usb1-id-state {
+		pins = "gpio51";
+		function = "gpio";
+		bias-pull-up;
+	};
 };
 
 &uart10 {
@@ -922,6 +1018,118 @@ &usb_0_qmpphy {
 	status = "okay";
 };
 
+&usb_1 {
+	dr_mode = "host";
+
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	status = "okay";
+
+	usb_hub_2_x: hub@1 {
+		compatible = "usb5e3,610";
+		reg = <1>;
+
+		peer-hub = <&usb_hub_3_x>;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@1 {
+				reg = <1>;
+
+				usb_hub_2_1: endpoint {
+					remote-endpoint = <&usb1_hs_in>;
+				};
+			};
+
+			/*
+			 * Port-2 and port-3 are not connected to anything on corekit.
+			 */
+			port@2 {
+				reg = <2>;
+
+				usb_hub_2_2: endpoint {
+				};
+			};
+
+			port@3 {
+				reg = <3>;
+
+				usb_hub_2_3: endpoint {
+				};
+			};
+
+			/*
+			 * Port-4 is connected to M.2 E key connector on corekit.
+			 */
+			port@4 {
+				reg = <4>;
+
+				usb_hub_2_4: endpoint {
+				};
+			};
+		};
+	};
+
+	usb_hub_3_x: hub@2 {
+		compatible = "usb5e3,625";
+		reg = <2>;
+
+		peer-hub = <&usb_hub_2_x>;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@1 {
+				reg = <1>;
+
+				usb_hub_3_1: endpoint {
+					remote-endpoint = <&usb1_ss_in>;
+				};
+			};
+
+			port@2 {
+				reg = <2>;
+
+				usb_hub_3_2: endpoint {
+				};
+			};
+
+			port@3 {
+				reg = <3>;
+
+				usb_hub_3_3: endpoint {
+				};
+			};
+
+			port@4 {
+				reg = <4>;
+
+				usb_hub_3_4: endpoint {
+				};
+			};
+		};
+	};
+};
+
+&usb_1_hsphy {
+	vdda-pll-supply = <&vreg_l7a>;
+	vdda18-supply = <&vreg_l6c>;
+	vdda33-supply = <&vreg_l9a>;
+
+	status = "okay";
+};
+
+&usb_1_qmpphy {
+	vdda-phy-supply = <&vreg_l1c>;
+	vdda-pll-supply = <&vreg_l7a>;
+
+	status = "okay";
+};
+
 &xo_board_clk {
 	clock-frequency = <38400000>;
 };
-- 
2.34.1
Re: [PATCH v5 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
Posted by Dmitry Baryshkov 2 weeks, 4 days ago
On Thu, Jan 22, 2026 at 02:58:52PM +0530, Swati Agarwal wrote:
> Enable secondary USB controller in host mode on lemans EVK Platform.
> 
> Secondary USB controller is connected to a Genesys Logic USB HUB GL3590
> having 4 ports. The ports of hub that are present on lemans EVK standalone
> board are used as follows:-
> 1) port-1 is connected to HD3SS3220 Type-C port controller.
> 2) port-4 is used for the M.2 E key on corekit. Standard core kit uses UART
> for Bluetooth. This port is to be used only if user optionally replaces the
> WiFi card with the NFA765 chip which uses USB for Bluetooth.
> 
> Remaining 2 ports will become functional when the interface plus mezzanine
> board is stacked on top of corekit:
> 
> 3) port-2 is connected to another hub which is present on the mezz through
> which 4 type-A ports are connected.
> 4) port-3 is used for the M.2 B key for a 5G card when the mezz is
> connected.
> 
> Mark the second USB controller as host only capable and add the HD3SS3220
> Type-C port controller along with Type-c connector for controlling vbus
> supply.
> 
> Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> ---
>  arch/arm64/boot/dts/qcom/lemans-evk.dts | 208 ++++++++++++++++++++++++
>  1 file changed, 208 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> index 074a1edd0334..a549f7fe53a1 100644
> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> @@ -68,6 +68,45 @@ usb0_con_ss_ep: endpoint {
>  		};
>  	};
>  
> +	connector-1 {
> +		compatible = "usb-c-connector";
> +		label = "USB1-Type-C";
> +		data-role = "host";
> +		power-role = "source";
> +
> +		vbus-supply = <&vbus_supply_regulator_1>;
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@0 {
> +				reg = <0>;
> +
> +				usb1_con_ss_ep: endpoint {

This contradicts USB-C connector bindings. Why?

> +					remote-endpoint = <&hd3ss3220_1_in_ep>;
> +				};
> +			};
> +
> +			port@1 {
> +				reg = <1>;
> +
> +				usb1_hs_in: endpoint {
> +					remote-endpoint = <&usb_hub_2_1>;
> +				};
> +
> +			};
> +
> +			port@2 {
> +				reg = <2>;
> +
> +				usb1_ss_in: endpoint {

port@2 is for the SBU signals. It can't be connected to the hub.

> +					remote-endpoint = <&usb_hub_3_1>;
> +				};
> +			};
> +		};
> +	};
> +
>  	edp0-connector {
>  		compatible = "dp-connector";
>  		label = "EDP0";
> @@ -141,6 +180,16 @@ vbus_supply_regulator_0: regulator-vbus-supply-0 {
>  		enable-active-high;
>  	};
>  
> +	vbus_supply_regulator_1: regulator-vbus-supply-1 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vbus_supply_1";
> +		gpio = <&expander1 3 GPIO_ACTIVE_HIGH>;
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +		regulator-boot-on;
> +		enable-active-high;
> +	};
> +
>  	vmmc_sdc: regulator-vmmc-sdc {
>  		compatible = "regulator-fixed";
>  
> @@ -536,6 +585,39 @@ hd3ss3220_0_out_ep: endpoint {
>  			};
>  		};
>  	};
> +
> +	usb-typec@47 {
> +		compatible = "ti,hd3ss3220";
> +		reg = <0x47>;
> +
> +		interrupts-extended = <&pmm8654au_2_gpios 6 IRQ_TYPE_EDGE_FALLING>;
> +
> +		id-gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
> +
> +		pinctrl-0 = <&usb1_id>, <&usb1_intr>;
> +		pinctrl-names = "default";
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@0 {
> +				reg = <0>;
> +
> +				hd3ss3220_1_in_ep: endpoint {
> +					remote-endpoint = <&usb1_con_ss_ep>;
> +				};
> +			};
> +
> +			port@1 {
> +				reg = <1>;
> +
> +				hd3ss3220_1_out_ep: endpoint {
> +				};

Why is this port disconnected? It it really N/C?

> +			};
> +		};
> +	};
> +
>  };
>  
>  &i2c18 {
> @@ -699,6 +781,14 @@ usb0_intr_state: usb0-intr-state {
>  		bias-pull-up;
>  		power-source = <0>;
>  	};
> +
> +	usb1_intr: usb1-intr-state {
> +		pins = "gpio6";
> +		function = "normal";
> +		input-enable;
> +		bias-pull-up;
> +		power-source = <0>;
> +	};
>  };
>  
>  &qup_i2c19_default {
> @@ -868,6 +958,12 @@ usb_id: usb-id-state {
>  		function = "gpio";
>  		bias-pull-up;
>  	};
> +
> +	usb1_id: usb1-id-state {
> +		pins = "gpio51";
> +		function = "gpio";
> +		bias-pull-up;
> +	};
>  };
>  
>  &uart10 {
> @@ -922,6 +1018,118 @@ &usb_0_qmpphy {
>  	status = "okay";
>  };
>  
> +&usb_1 {
> +	dr_mode = "host";
> +
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	status = "okay";
> +
> +	usb_hub_2_x: hub@1 {
> +		compatible = "usb5e3,610";
> +		reg = <1>;
> +
> +		peer-hub = <&usb_hub_3_x>;
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@1 {
> +				reg = <1>;
> +
> +				usb_hub_2_1: endpoint {
> +					remote-endpoint = <&usb1_hs_in>;
> +				};
> +			};
> +
> +			/*
> +			 * Port-2 and port-3 are not connected to anything on corekit.

I thought that they are routed to the HS connectors. Are they not?

> +			 */
> +			port@2 {
> +				reg = <2>;
> +
> +				usb_hub_2_2: endpoint {
> +				};
> +			};
> +
> +			port@3 {
> +				reg = <3>;
> +
> +				usb_hub_2_3: endpoint {
> +				};
> +			};
> +
> +			/*
> +			 * Port-4 is connected to M.2 E key connector on corekit.
> +			 */
> +			port@4 {
> +				reg = <4>;
> +
> +				usb_hub_2_4: endpoint {
> +				};
> +			};
> +		};
> +	};
> +
> +	usb_hub_3_x: hub@2 {
> +		compatible = "usb5e3,625";
> +		reg = <2>;
> +
> +		peer-hub = <&usb_hub_2_x>;
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@1 {
> +				reg = <1>;
> +
> +				usb_hub_3_1: endpoint {
> +					remote-endpoint = <&usb1_ss_in>;
> +				};
> +			};
> +
> +			port@2 {
> +				reg = <2>;
> +
> +				usb_hub_3_2: endpoint {
> +				};
> +			};
> +
> +			port@3 {
> +				reg = <3>;
> +
> +				usb_hub_3_3: endpoint {
> +				};
> +			};
> +
> +			port@4 {
> +				reg = <4>;
> +
> +				usb_hub_3_4: endpoint {
> +				};
> +			};
> +		};
> +	};
> +};
> +
> +&usb_1_hsphy {
> +	vdda-pll-supply = <&vreg_l7a>;
> +	vdda18-supply = <&vreg_l6c>;
> +	vdda33-supply = <&vreg_l9a>;
> +
> +	status = "okay";
> +};
> +
> +&usb_1_qmpphy {
> +	vdda-phy-supply = <&vreg_l1c>;
> +	vdda-pll-supply = <&vreg_l7a>;
> +
> +	status = "okay";
> +};
> +
>  &xo_board_clk {
>  	clock-frequency = <38400000>;
>  };
> -- 
> 2.34.1
> 

-- 
With best wishes
Dmitry
Re: [PATCH v5 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
Posted by Swati Agarwal 1 week, 6 days ago
On Thu, Jan 22, 2026 at 4:02 PM Dmitry Baryshkov
<dmitry.baryshkov@oss.qualcomm.com> wrote:
>
> On Thu, Jan 22, 2026 at 02:58:52PM +0530, Swati Agarwal wrote:
> > Enable secondary USB controller in host mode on lemans EVK Platform.
> >
> > Secondary USB controller is connected to a Genesys Logic USB HUB GL3590
> > having 4 ports. The ports of hub that are present on lemans EVK standalone
> > board are used as follows:-
> > 1) port-1 is connected to HD3SS3220 Type-C port controller.
> > 2) port-4 is used for the M.2 E key on corekit. Standard core kit uses UART
> > for Bluetooth. This port is to be used only if user optionally replaces the
> > WiFi card with the NFA765 chip which uses USB for Bluetooth.
> >
> > Remaining 2 ports will become functional when the interface plus mezzanine
> > board is stacked on top of corekit:
> >
> > 3) port-2 is connected to another hub which is present on the mezz through
> > which 4 type-A ports are connected.
> > 4) port-3 is used for the M.2 B key for a 5G card when the mezz is
> > connected.
> >
> > Mark the second USB controller as host only capable and add the HD3SS3220
> > Type-C port controller along with Type-c connector for controlling vbus
> > supply.
> >
> > Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> > ---
> >  arch/arm64/boot/dts/qcom/lemans-evk.dts | 208 ++++++++++++++++++++++++
> >  1 file changed, 208 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > index 074a1edd0334..a549f7fe53a1 100644
> > --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > @@ -68,6 +68,45 @@ usb0_con_ss_ep: endpoint {
> >               };
> >       };
> >
> > +     connector-1 {
> > +             compatible = "usb-c-connector";
> > +             label = "USB1-Type-C";
> > +             data-role = "host";
> > +             power-role = "source";
> > +
> > +             vbus-supply = <&vbus_supply_regulator_1>;
> > +
> > +             ports {
> > +                     #address-cells = <1>;
> > +                     #size-cells = <0>;
> > +
> > +                     port@0 {
> > +                             reg = <0>;
> > +
> > +                             usb1_con_ss_ep: endpoint {
>
> This contradicts USB-C connector bindings. Why?
>
> > +                                     remote-endpoint = <&hd3ss3220_1_in_ep>;
> > +                             };
> > +                     };
> > +
> > +                     port@1 {
> > +                             reg = <1>;
> > +
> > +                             usb1_hs_in: endpoint {
> > +                                     remote-endpoint = <&usb_hub_2_1>;
> > +                             };
> > +
> > +                     };
> > +
> > +                     port@2 {
> > +                             reg = <2>;
> > +
> > +                             usb1_ss_in: endpoint {
>
> port@2 is for the SBU signals. It can't be connected to the hub.
>
> > +                                     remote-endpoint = <&usb_hub_3_1>;
> > +                             };
> > +                     };
> > +             };
> > +     };
> > +
> >       edp0-connector {
> >               compatible = "dp-connector";
> >               label = "EDP0";
> > @@ -141,6 +180,16 @@ vbus_supply_regulator_0: regulator-vbus-supply-0 {
> >               enable-active-high;
> >       };
> >
> > +     vbus_supply_regulator_1: regulator-vbus-supply-1 {
> > +             compatible = "regulator-fixed";
> > +             regulator-name = "vbus_supply_1";
> > +             gpio = <&expander1 3 GPIO_ACTIVE_HIGH>;
> > +             regulator-min-microvolt = <5000000>;
> > +             regulator-max-microvolt = <5000000>;
> > +             regulator-boot-on;
> > +             enable-active-high;
> > +     };
> > +
> >       vmmc_sdc: regulator-vmmc-sdc {
> >               compatible = "regulator-fixed";
> >
> > @@ -536,6 +585,39 @@ hd3ss3220_0_out_ep: endpoint {
> >                       };
> >               };
> >       };
> > +
> > +     usb-typec@47 {
> > +             compatible = "ti,hd3ss3220";
> > +             reg = <0x47>;
> > +
> > +             interrupts-extended = <&pmm8654au_2_gpios 6 IRQ_TYPE_EDGE_FALLING>;
> > +
> > +             id-gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
> > +
> > +             pinctrl-0 = <&usb1_id>, <&usb1_intr>;
> > +             pinctrl-names = "default";
> > +
> > +             ports {
> > +                     #address-cells = <1>;
> > +                     #size-cells = <0>;
> > +
> > +                     port@0 {
> > +                             reg = <0>;
> > +
> > +                             hd3ss3220_1_in_ep: endpoint {
> > +                                     remote-endpoint = <&usb1_con_ss_ep>;
> > +                             };
> > +                     };
> > +
> > +                     port@1 {
> > +                             reg = <1>;
> > +
> > +                             hd3ss3220_1_out_ep: endpoint {
> > +                             };
>
> Why is this port disconnected? It it really N/C?

Hi Dmitry,

Sorry for the confusion, Can we do it as follows:

hub:                    Hd3ss3220   typec-connector

usb_hub_2_1 <-> port@1       port@1 <-> empty
usb_hub_3_1 <-> port@2       port@2 <-> <empty>
                             port@0 <-> port@0

Regards,
Swati
>
> > +                     };
> > +             };
> > +     };
> > +
> >  };
> >
> >  &i2c18 {
> > @@ -699,6 +781,14 @@ usb0_intr_state: usb0-intr-state {
> >               bias-pull-up;
> >               power-source = <0>;
> >       };
> > +
> > +     usb1_intr: usb1-intr-state {
> > +             pins = "gpio6";
> > +             function = "normal";
> > +             input-enable;
> > +             bias-pull-up;
> > +             power-source = <0>;
> > +     };
> >  };
> >
> >  &qup_i2c19_default {
> > @@ -868,6 +958,12 @@ usb_id: usb-id-state {
> >               function = "gpio";
> >               bias-pull-up;
> >       };
> > +
> > +     usb1_id: usb1-id-state {
> > +             pins = "gpio51";
> > +             function = "gpio";
> > +             bias-pull-up;
> > +     };
> >  };
> >
> >  &uart10 {
> > @@ -922,6 +1018,118 @@ &usb_0_qmpphy {
> >       status = "okay";
> >  };
> >
> > +&usb_1 {
> > +     dr_mode = "host";
> > +
> > +     #address-cells = <1>;
> > +     #size-cells = <0>;
> > +
> > +     status = "okay";
> > +
> > +     usb_hub_2_x: hub@1 {
> > +             compatible = "usb5e3,610";
> > +             reg = <1>;
> > +
> > +             peer-hub = <&usb_hub_3_x>;
> > +
> > +             ports {
> > +                     #address-cells = <1>;
> > +                     #size-cells = <0>;
> > +
> > +                     port@1 {
> > +                             reg = <1>;
> > +
> > +                             usb_hub_2_1: endpoint {
> > +                                     remote-endpoint = <&usb1_hs_in>;
> > +                             };
> > +                     };
> > +
> > +                     /*
> > +                      * Port-2 and port-3 are not connected to anything on corekit.
>
> I thought that they are routed to the HS connectors. Are they not?
>
> > +                      */
> > +                     port@2 {
> > +                             reg = <2>;
> > +
> > +                             usb_hub_2_2: endpoint {
> > +                             };
> > +                     };
> > +
> > +                     port@3 {
> > +                             reg = <3>;
> > +
> > +                             usb_hub_2_3: endpoint {
> > +                             };
> > +                     };
> > +
> > +                     /*
> > +                      * Port-4 is connected to M.2 E key connector on corekit.
> > +                      */
> > +                     port@4 {
> > +                             reg = <4>;
> > +
> > +                             usb_hub_2_4: endpoint {
> > +                             };
> > +                     };
> > +             };
> > +     };
> > +
> > +     usb_hub_3_x: hub@2 {
> > +             compatible = "usb5e3,625";
> > +             reg = <2>;
> > +
> > +             peer-hub = <&usb_hub_2_x>;
> > +
> > +             ports {
> > +                     #address-cells = <1>;
> > +                     #size-cells = <0>;
> > +
> > +                     port@1 {
> > +                             reg = <1>;
> > +
> > +                             usb_hub_3_1: endpoint {
> > +                                     remote-endpoint = <&usb1_ss_in>;
> > +                             };
> > +                     };
> > +
> > +                     port@2 {
> > +                             reg = <2>;
> > +
> > +                             usb_hub_3_2: endpoint {
> > +                             };
> > +                     };
> > +
> > +                     port@3 {
> > +                             reg = <3>;
> > +
> > +                             usb_hub_3_3: endpoint {
> > +                             };
> > +                     };
> > +
> > +                     port@4 {
> > +                             reg = <4>;
> > +
> > +                             usb_hub_3_4: endpoint {
> > +                             };
> > +                     };
> > +             };
> > +     };
> > +};
> > +
> > +&usb_1_hsphy {
> > +     vdda-pll-supply = <&vreg_l7a>;
> > +     vdda18-supply = <&vreg_l6c>;
> > +     vdda33-supply = <&vreg_l9a>;
> > +
> > +     status = "okay";
> > +};
> > +
> > +&usb_1_qmpphy {
> > +     vdda-phy-supply = <&vreg_l1c>;
> > +     vdda-pll-supply = <&vreg_l7a>;
> > +
> > +     status = "okay";
> > +};
> > +
> >  &xo_board_clk {
> >       clock-frequency = <38400000>;
> >  };
> > --
> > 2.34.1
> >
>
> --
> With best wishes
> Dmitry
Re: [PATCH v5 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
Posted by Dmitry Baryshkov 5 days, 12 hours ago
On Tue, Jan 27, 2026 at 10:53:46AM +0530, Swati Agarwal wrote:
> On Thu, Jan 22, 2026 at 4:02 PM Dmitry Baryshkov
> <dmitry.baryshkov@oss.qualcomm.com> wrote:
> >
> > On Thu, Jan 22, 2026 at 02:58:52PM +0530, Swati Agarwal wrote:
> > > Enable secondary USB controller in host mode on lemans EVK Platform.
> > >
> > > Secondary USB controller is connected to a Genesys Logic USB HUB GL3590
> > > having 4 ports. The ports of hub that are present on lemans EVK standalone
> > > board are used as follows:-
> > > 1) port-1 is connected to HD3SS3220 Type-C port controller.
> > > 2) port-4 is used for the M.2 E key on corekit. Standard core kit uses UART
> > > for Bluetooth. This port is to be used only if user optionally replaces the
> > > WiFi card with the NFA765 chip which uses USB for Bluetooth.
> > >
> > > Remaining 2 ports will become functional when the interface plus mezzanine
> > > board is stacked on top of corekit:
> > >
> > > 3) port-2 is connected to another hub which is present on the mezz through
> > > which 4 type-A ports are connected.
> > > 4) port-3 is used for the M.2 B key for a 5G card when the mezz is
> > > connected.
> > >
> > > Mark the second USB controller as host only capable and add the HD3SS3220
> > > Type-C port controller along with Type-c connector for controlling vbus
> > > supply.
> > >
> > > Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> > > ---
> > >  arch/arm64/boot/dts/qcom/lemans-evk.dts | 208 ++++++++++++++++++++++++
> > >  1 file changed, 208 insertions(+)
> > >
> > > diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > index 074a1edd0334..a549f7fe53a1 100644
> > > --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > @@ -68,6 +68,45 @@ usb0_con_ss_ep: endpoint {
> > >               };
> > >       };
> > >
> > > +     connector-1 {
> > > +             compatible = "usb-c-connector";
> > > +             label = "USB1-Type-C";
> > > +             data-role = "host";
> > > +             power-role = "source";
> > > +
> > > +             vbus-supply = <&vbus_supply_regulator_1>;
> > > +
> > > +             ports {
> > > +                     #address-cells = <1>;
> > > +                     #size-cells = <0>;
> > > +
> > > +                     port@0 {
> > > +                             reg = <0>;
> > > +
> > > +                             usb1_con_ss_ep: endpoint {
> >
> > This contradicts USB-C connector bindings. Why?
> >
> > > +                                     remote-endpoint = <&hd3ss3220_1_in_ep>;
> > > +                             };
> > > +                     };
> > > +
> > > +                     port@1 {
> > > +                             reg = <1>;
> > > +
> > > +                             usb1_hs_in: endpoint {
> > > +                                     remote-endpoint = <&usb_hub_2_1>;
> > > +                             };
> > > +
> > > +                     };
> > > +
> > > +                     port@2 {
> > > +                             reg = <2>;
> > > +
> > > +                             usb1_ss_in: endpoint {
> >
> > port@2 is for the SBU signals. It can't be connected to the hub.
> >
> > > +                                     remote-endpoint = <&usb_hub_3_1>;
> > > +                             };
> > > +                     };
> > > +             };
> > > +     };
> > > +
> > >       edp0-connector {
> > >               compatible = "dp-connector";
> > >               label = "EDP0";
> > > @@ -141,6 +180,16 @@ vbus_supply_regulator_0: regulator-vbus-supply-0 {
> > >               enable-active-high;
> > >       };
> > >
> > > +     vbus_supply_regulator_1: regulator-vbus-supply-1 {
> > > +             compatible = "regulator-fixed";
> > > +             regulator-name = "vbus_supply_1";
> > > +             gpio = <&expander1 3 GPIO_ACTIVE_HIGH>;
> > > +             regulator-min-microvolt = <5000000>;
> > > +             regulator-max-microvolt = <5000000>;
> > > +             regulator-boot-on;
> > > +             enable-active-high;
> > > +     };
> > > +
> > >       vmmc_sdc: regulator-vmmc-sdc {
> > >               compatible = "regulator-fixed";
> > >
> > > @@ -536,6 +585,39 @@ hd3ss3220_0_out_ep: endpoint {
> > >                       };
> > >               };
> > >       };
> > > +
> > > +     usb-typec@47 {
> > > +             compatible = "ti,hd3ss3220";
> > > +             reg = <0x47>;
> > > +
> > > +             interrupts-extended = <&pmm8654au_2_gpios 6 IRQ_TYPE_EDGE_FALLING>;
> > > +
> > > +             id-gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
> > > +
> > > +             pinctrl-0 = <&usb1_id>, <&usb1_intr>;
> > > +             pinctrl-names = "default";
> > > +
> > > +             ports {
> > > +                     #address-cells = <1>;
> > > +                     #size-cells = <0>;
> > > +
> > > +                     port@0 {
> > > +                             reg = <0>;
> > > +
> > > +                             hd3ss3220_1_in_ep: endpoint {
> > > +                                     remote-endpoint = <&usb1_con_ss_ep>;
> > > +                             };
> > > +                     };
> > > +
> > > +                     port@1 {
> > > +                             reg = <1>;
> > > +
> > > +                             hd3ss3220_1_out_ep: endpoint {
> > > +                             };
> >
> > Why is this port disconnected? It it really N/C?
> 
> Hi Dmitry,
> 
> Sorry for the confusion, Can we do it as follows:
> 
> hub:                    Hd3ss3220   typec-connector
> 
> usb_hub_2_1 <-> port@1       port@1 <-> empty
> usb_hub_3_1 <-> port@2       port@2 <-> <empty>
>                              port@0 <-> port@0
> 

You still missed the _why_. Why port@1 of HD3SS3220 is not connected?

-- 
With best wishes
Dmitry
Re: [PATCH v5 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
Posted by Krishna Kurapati 5 days, 7 hours ago

On 2/4/2026 7:03 AM, Dmitry Baryshkov wrote:
> On Tue, Jan 27, 2026 at 10:53:46AM +0530, Swati Agarwal wrote:
>> On Thu, Jan 22, 2026 at 4:02 PM Dmitry Baryshkov
>> <dmitry.baryshkov@oss.qualcomm.com> wrote:
>>>
>>> On Thu, Jan 22, 2026 at 02:58:52PM +0530, Swati Agarwal wrote:
>>>> Enable secondary USB controller in host mode on lemans EVK Platform.
>>>>
>>>> Secondary USB controller is connected to a Genesys Logic USB HUB GL3590
>>>> having 4 ports. The ports of hub that are present on lemans EVK standalone
>>>> board are used as follows:-
>>>> 1) port-1 is connected to HD3SS3220 Type-C port controller.
>>>> 2) port-4 is used for the M.2 E key on corekit. Standard core kit uses UART
>>>> for Bluetooth. This port is to be used only if user optionally replaces the
>>>> WiFi card with the NFA765 chip which uses USB for Bluetooth.
>>>>
>>>> Remaining 2 ports will become functional when the interface plus mezzanine
>>>> board is stacked on top of corekit:
>>>>
>>>> 3) port-2 is connected to another hub which is present on the mezz through
>>>> which 4 type-A ports are connected.
>>>> 4) port-3 is used for the M.2 B key for a 5G card when the mezz is
>>>> connected.
>>>>
>>>> Mark the second USB controller as host only capable and add the HD3SS3220
>>>> Type-C port controller along with Type-c connector for controlling vbus
>>>> supply.
>>>>
>>>> Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
>>>> ---
>>>>   arch/arm64/boot/dts/qcom/lemans-evk.dts | 208 ++++++++++++++++++++++++
>>>>   1 file changed, 208 insertions(+)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>>>> index 074a1edd0334..a549f7fe53a1 100644
>>>> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
>>>> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>>>> @@ -68,6 +68,45 @@ usb0_con_ss_ep: endpoint {
>>>>                };
>>>>        };
>>>>
>>>> +     connector-1 {
>>>> +             compatible = "usb-c-connector";
>>>> +             label = "USB1-Type-C";
>>>> +             data-role = "host";
>>>> +             power-role = "source";
>>>> +
>>>> +             vbus-supply = <&vbus_supply_regulator_1>;
>>>> +
>>>> +             ports {
>>>> +                     #address-cells = <1>;
>>>> +                     #size-cells = <0>;
>>>> +
>>>> +                     port@0 {
>>>> +                             reg = <0>;
>>>> +
>>>> +                             usb1_con_ss_ep: endpoint {
>>>
>>> This contradicts USB-C connector bindings. Why?
>>>
>>>> +                                     remote-endpoint = <&hd3ss3220_1_in_ep>;
>>>> +                             };
>>>> +                     };
>>>> +
>>>> +                     port@1 {
>>>> +                             reg = <1>;
>>>> +
>>>> +                             usb1_hs_in: endpoint {
>>>> +                                     remote-endpoint = <&usb_hub_2_1>;
>>>> +                             };
>>>> +
>>>> +                     };
>>>> +
>>>> +                     port@2 {
>>>> +                             reg = <2>;
>>>> +
>>>> +                             usb1_ss_in: endpoint {
>>>
>>> port@2 is for the SBU signals. It can't be connected to the hub.
>>>
>>>> +                                     remote-endpoint = <&usb_hub_3_1>;
>>>> +                             };
>>>> +                     };
>>>> +             };
>>>> +     };
>>>> +
>>>>        edp0-connector {
>>>>                compatible = "dp-connector";
>>>>                label = "EDP0";
>>>> @@ -141,6 +180,16 @@ vbus_supply_regulator_0: regulator-vbus-supply-0 {
>>>>                enable-active-high;
>>>>        };
>>>>
>>>> +     vbus_supply_regulator_1: regulator-vbus-supply-1 {
>>>> +             compatible = "regulator-fixed";
>>>> +             regulator-name = "vbus_supply_1";
>>>> +             gpio = <&expander1 3 GPIO_ACTIVE_HIGH>;
>>>> +             regulator-min-microvolt = <5000000>;
>>>> +             regulator-max-microvolt = <5000000>;
>>>> +             regulator-boot-on;
>>>> +             enable-active-high;
>>>> +     };
>>>> +
>>>>        vmmc_sdc: regulator-vmmc-sdc {
>>>>                compatible = "regulator-fixed";
>>>>
>>>> @@ -536,6 +585,39 @@ hd3ss3220_0_out_ep: endpoint {
>>>>                        };
>>>>                };
>>>>        };
>>>> +
>>>> +     usb-typec@47 {
>>>> +             compatible = "ti,hd3ss3220";
>>>> +             reg = <0x47>;
>>>> +
>>>> +             interrupts-extended = <&pmm8654au_2_gpios 6 IRQ_TYPE_EDGE_FALLING>;
>>>> +
>>>> +             id-gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
>>>> +
>>>> +             pinctrl-0 = <&usb1_id>, <&usb1_intr>;
>>>> +             pinctrl-names = "default";
>>>> +
>>>> +             ports {
>>>> +                     #address-cells = <1>;
>>>> +                     #size-cells = <0>;
>>>> +
>>>> +                     port@0 {
>>>> +                             reg = <0>;
>>>> +
>>>> +                             hd3ss3220_1_in_ep: endpoint {
>>>> +                                     remote-endpoint = <&usb1_con_ss_ep>;
>>>> +                             };
>>>> +                     };
>>>> +
>>>> +                     port@1 {
>>>> +                             reg = <1>;
>>>> +
>>>> +                             hd3ss3220_1_out_ep: endpoint {
>>>> +                             };
>>>
>>> Why is this port disconnected? It it really N/C?
>>
>> Hi Dmitry,
>>
>> Sorry for the confusion, Can we do it as follows:
>>
>> hub:                    Hd3ss3220   typec-connector
>>
>> usb_hub_2_1 <-> port@1       port@1 <-> empty
>> usb_hub_3_1 <-> port@2       port@2 <-> <empty>
>>                               port@0 <-> port@0
>>
> 
> You still missed the _why_. Why port@1 of HD3SS3220 is not connected?
> 

There are no remote endpoints added in dwc3 node. Since we are making 
dr_mode host. Hence keeping this remore endpoint empty.

Regards,
Krishna,
Re: [PATCH v5 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
Posted by Dmitry Baryshkov 5 days, 3 hours ago
On Wed, Feb 04, 2026 at 11:26:37AM +0530, Krishna Kurapati wrote:
> 
> 
> On 2/4/2026 7:03 AM, Dmitry Baryshkov wrote:
> > On Tue, Jan 27, 2026 at 10:53:46AM +0530, Swati Agarwal wrote:
> > > On Thu, Jan 22, 2026 at 4:02 PM Dmitry Baryshkov
> > > <dmitry.baryshkov@oss.qualcomm.com> wrote:
> > > > 
> > > > On Thu, Jan 22, 2026 at 02:58:52PM +0530, Swati Agarwal wrote:
> > > > > Enable secondary USB controller in host mode on lemans EVK Platform.
> > > > > 
> > > > > Secondary USB controller is connected to a Genesys Logic USB HUB GL3590
> > > > > having 4 ports. The ports of hub that are present on lemans EVK standalone
> > > > > board are used as follows:-
> > > > > 1) port-1 is connected to HD3SS3220 Type-C port controller.
> > > > > 2) port-4 is used for the M.2 E key on corekit. Standard core kit uses UART
> > > > > for Bluetooth. This port is to be used only if user optionally replaces the
> > > > > WiFi card with the NFA765 chip which uses USB for Bluetooth.
> > > > > 
> > > > > Remaining 2 ports will become functional when the interface plus mezzanine
> > > > > board is stacked on top of corekit:
> > > > > 
> > > > > 3) port-2 is connected to another hub which is present on the mezz through
> > > > > which 4 type-A ports are connected.
> > > > > 4) port-3 is used for the M.2 B key for a 5G card when the mezz is
> > > > > connected.
> > > > > 
> > > > > Mark the second USB controller as host only capable and add the HD3SS3220
> > > > > Type-C port controller along with Type-c connector for controlling vbus
> > > > > supply.
> > > > > 
> > > > > Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> > > > > ---
> > > > >   arch/arm64/boot/dts/qcom/lemans-evk.dts | 208 ++++++++++++++++++++++++
> > > > >   1 file changed, 208 insertions(+)
> > > > > 
> > > > > diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > > index 074a1edd0334..a549f7fe53a1 100644
> > > > > --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > > +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > > @@ -68,6 +68,45 @@ usb0_con_ss_ep: endpoint {
> > > > >                };
> > > > >        };
> > > > > 
> > > > > +     connector-1 {
> > > > > +             compatible = "usb-c-connector";
> > > > > +             label = "USB1-Type-C";
> > > > > +             data-role = "host";
> > > > > +             power-role = "source";
> > > > > +
> > > > > +             vbus-supply = <&vbus_supply_regulator_1>;
> > > > > +
> > > > > +             ports {
> > > > > +                     #address-cells = <1>;
> > > > > +                     #size-cells = <0>;
> > > > > +
> > > > > +                     port@0 {
> > > > > +                             reg = <0>;
> > > > > +
> > > > > +                             usb1_con_ss_ep: endpoint {
> > > > 
> > > > This contradicts USB-C connector bindings. Why?
> > > > 
> > > > > +                                     remote-endpoint = <&hd3ss3220_1_in_ep>;
> > > > > +                             };
> > > > > +                     };
> > > > > +
> > > > > +                     port@1 {
> > > > > +                             reg = <1>;
> > > > > +
> > > > > +                             usb1_hs_in: endpoint {
> > > > > +                                     remote-endpoint = <&usb_hub_2_1>;
> > > > > +                             };
> > > > > +
> > > > > +                     };
> > > > > +
> > > > > +                     port@2 {
> > > > > +                             reg = <2>;
> > > > > +
> > > > > +                             usb1_ss_in: endpoint {
> > > > 
> > > > port@2 is for the SBU signals. It can't be connected to the hub.
> > > > 
> > > > > +                                     remote-endpoint = <&usb_hub_3_1>;
> > > > > +                             };
> > > > > +                     };
> > > > > +             };
> > > > > +     };
> > > > > +
> > > > >        edp0-connector {
> > > > >                compatible = "dp-connector";
> > > > >                label = "EDP0";
> > > > > @@ -141,6 +180,16 @@ vbus_supply_regulator_0: regulator-vbus-supply-0 {
> > > > >                enable-active-high;
> > > > >        };
> > > > > 
> > > > > +     vbus_supply_regulator_1: regulator-vbus-supply-1 {
> > > > > +             compatible = "regulator-fixed";
> > > > > +             regulator-name = "vbus_supply_1";
> > > > > +             gpio = <&expander1 3 GPIO_ACTIVE_HIGH>;
> > > > > +             regulator-min-microvolt = <5000000>;
> > > > > +             regulator-max-microvolt = <5000000>;
> > > > > +             regulator-boot-on;
> > > > > +             enable-active-high;
> > > > > +     };
> > > > > +
> > > > >        vmmc_sdc: regulator-vmmc-sdc {
> > > > >                compatible = "regulator-fixed";
> > > > > 
> > > > > @@ -536,6 +585,39 @@ hd3ss3220_0_out_ep: endpoint {
> > > > >                        };
> > > > >                };
> > > > >        };
> > > > > +
> > > > > +     usb-typec@47 {
> > > > > +             compatible = "ti,hd3ss3220";
> > > > > +             reg = <0x47>;
> > > > > +
> > > > > +             interrupts-extended = <&pmm8654au_2_gpios 6 IRQ_TYPE_EDGE_FALLING>;
> > > > > +
> > > > > +             id-gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
> > > > > +
> > > > > +             pinctrl-0 = <&usb1_id>, <&usb1_intr>;
> > > > > +             pinctrl-names = "default";
> > > > > +
> > > > > +             ports {
> > > > > +                     #address-cells = <1>;
> > > > > +                     #size-cells = <0>;
> > > > > +
> > > > > +                     port@0 {
> > > > > +                             reg = <0>;
> > > > > +
> > > > > +                             hd3ss3220_1_in_ep: endpoint {
> > > > > +                                     remote-endpoint = <&usb1_con_ss_ep>;
> > > > > +                             };
> > > > > +                     };
> > > > > +
> > > > > +                     port@1 {
> > > > > +                             reg = <1>;
> > > > > +
> > > > > +                             hd3ss3220_1_out_ep: endpoint {
> > > > > +                             };
> > > > 
> > > > Why is this port disconnected? It it really N/C?
> > > 
> > > Hi Dmitry,
> > > 
> > > Sorry for the confusion, Can we do it as follows:
> > > 
> > > hub:                    Hd3ss3220   typec-connector
> > > 
> > > usb_hub_2_1 <-> port@1       port@1 <-> empty
> > > usb_hub_3_1 <-> port@2       port@2 <-> <empty>
> > >                               port@0 <-> port@0
> > > 
> > 
> > You still missed the _why_. Why port@1 of HD3SS3220 is not connected?
> > 
> 
> There are no remote endpoints added in dwc3 node. Since we are making
> dr_mode host. Hence keeping this remore endpoint empty.

How is the link between HD3SS3220 and Type-C affected by the DWC3? What
does port@1 of it represent? Do we have SS lanes between HD3SS3220 and
the connector?

-- 
With best wishes
Dmitry
Re: [PATCH v5 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
Posted by Krishna Kurapati 4 days, 18 hours ago

On 2/4/2026 4:02 PM, Dmitry Baryshkov wrote:
> On Wed, Feb 04, 2026 at 11:26:37AM +0530, Krishna Kurapati wrote:
>>
>>
>> On 2/4/2026 7:03 AM, Dmitry Baryshkov wrote:
>>> On Tue, Jan 27, 2026 at 10:53:46AM +0530, Swati Agarwal wrote:
>>>> On Thu, Jan 22, 2026 at 4:02 PM Dmitry Baryshkov
>>>> <dmitry.baryshkov@oss.qualcomm.com> wrote:
>>>>>
>>>>> On Thu, Jan 22, 2026 at 02:58:52PM +0530, Swati Agarwal wrote:
>>>>>> Enable secondary USB controller in host mode on lemans EVK Platform.
>>>>>>
>>>>>> Secondary USB controller is connected to a Genesys Logic USB HUB GL3590
>>>>>> having 4 ports. The ports of hub that are present on lemans EVK standalone
>>>>>> board are used as follows:-
>>>>>> 1) port-1 is connected to HD3SS3220 Type-C port controller.
>>>>>> 2) port-4 is used for the M.2 E key on corekit. Standard core kit uses UART
>>>>>> for Bluetooth. This port is to be used only if user optionally replaces the
>>>>>> WiFi card with the NFA765 chip which uses USB for Bluetooth.
>>>>>>
>>>>>> Remaining 2 ports will become functional when the interface plus mezzanine
>>>>>> board is stacked on top of corekit:
>>>>>>
>>>>>> 3) port-2 is connected to another hub which is present on the mezz through
>>>>>> which 4 type-A ports are connected.
>>>>>> 4) port-3 is used for the M.2 B key for a 5G card when the mezz is
>>>>>> connected.
>>>>>>
>>>>>> Mark the second USB controller as host only capable and add the HD3SS3220
>>>>>> Type-C port controller along with Type-c connector for controlling vbus
>>>>>> supply.
>>>>>>
>>>>>> Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
>>>>>> ---
>>>>>>    arch/arm64/boot/dts/qcom/lemans-evk.dts | 208 ++++++++++++++++++++++++
>>>>>>    1 file changed, 208 insertions(+)
>>>>>>
>>>>>> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>>>>>> index 074a1edd0334..a549f7fe53a1 100644
>>>>>> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
>>>>>> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>>>>>> @@ -68,6 +68,45 @@ usb0_con_ss_ep: endpoint {
>>>>>>                 };
>>>>>>         };
>>>>>>
>>>>>> +     connector-1 {
>>>>>> +             compatible = "usb-c-connector";
>>>>>> +             label = "USB1-Type-C";
>>>>>> +             data-role = "host";
>>>>>> +             power-role = "source";
>>>>>> +
>>>>>> +             vbus-supply = <&vbus_supply_regulator_1>;
>>>>>> +
>>>>>> +             ports {
>>>>>> +                     #address-cells = <1>;
>>>>>> +                     #size-cells = <0>;
>>>>>> +
>>>>>> +                     port@0 {
>>>>>> +                             reg = <0>;
>>>>>> +
>>>>>> +                             usb1_con_ss_ep: endpoint {
>>>>>
>>>>> This contradicts USB-C connector bindings. Why?
>>>>>
>>>>>> +                                     remote-endpoint = <&hd3ss3220_1_in_ep>;
>>>>>> +                             };
>>>>>> +                     };
>>>>>> +
>>>>>> +                     port@1 {
>>>>>> +                             reg = <1>;
>>>>>> +
>>>>>> +                             usb1_hs_in: endpoint {
>>>>>> +                                     remote-endpoint = <&usb_hub_2_1>;
>>>>>> +                             };
>>>>>> +
>>>>>> +                     };
>>>>>> +
>>>>>> +                     port@2 {
>>>>>> +                             reg = <2>;
>>>>>> +
>>>>>> +                             usb1_ss_in: endpoint {
>>>>>
>>>>> port@2 is for the SBU signals. It can't be connected to the hub.
>>>>>
>>>>>> +                                     remote-endpoint = <&usb_hub_3_1>;
>>>>>> +                             };
>>>>>> +                     };
>>>>>> +             };
>>>>>> +     };
>>>>>> +
>>>>>>         edp0-connector {
>>>>>>                 compatible = "dp-connector";
>>>>>>                 label = "EDP0";
>>>>>> @@ -141,6 +180,16 @@ vbus_supply_regulator_0: regulator-vbus-supply-0 {
>>>>>>                 enable-active-high;
>>>>>>         };
>>>>>>
>>>>>> +     vbus_supply_regulator_1: regulator-vbus-supply-1 {
>>>>>> +             compatible = "regulator-fixed";
>>>>>> +             regulator-name = "vbus_supply_1";
>>>>>> +             gpio = <&expander1 3 GPIO_ACTIVE_HIGH>;
>>>>>> +             regulator-min-microvolt = <5000000>;
>>>>>> +             regulator-max-microvolt = <5000000>;
>>>>>> +             regulator-boot-on;
>>>>>> +             enable-active-high;
>>>>>> +     };
>>>>>> +
>>>>>>         vmmc_sdc: regulator-vmmc-sdc {
>>>>>>                 compatible = "regulator-fixed";
>>>>>>
>>>>>> @@ -536,6 +585,39 @@ hd3ss3220_0_out_ep: endpoint {
>>>>>>                         };
>>>>>>                 };
>>>>>>         };
>>>>>> +
>>>>>> +     usb-typec@47 {
>>>>>> +             compatible = "ti,hd3ss3220";
>>>>>> +             reg = <0x47>;
>>>>>> +
>>>>>> +             interrupts-extended = <&pmm8654au_2_gpios 6 IRQ_TYPE_EDGE_FALLING>;
>>>>>> +
>>>>>> +             id-gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
>>>>>> +
>>>>>> +             pinctrl-0 = <&usb1_id>, <&usb1_intr>;
>>>>>> +             pinctrl-names = "default";
>>>>>> +
>>>>>> +             ports {
>>>>>> +                     #address-cells = <1>;
>>>>>> +                     #size-cells = <0>;
>>>>>> +
>>>>>> +                     port@0 {
>>>>>> +                             reg = <0>;
>>>>>> +
>>>>>> +                             hd3ss3220_1_in_ep: endpoint {
>>>>>> +                                     remote-endpoint = <&usb1_con_ss_ep>;
>>>>>> +                             };
>>>>>> +                     };
>>>>>> +
>>>>>> +                     port@1 {
>>>>>> +                             reg = <1>;
>>>>>> +
>>>>>> +                             hd3ss3220_1_out_ep: endpoint {
>>>>>> +                             };
>>>>>
>>>>> Why is this port disconnected? It it really N/C?
>>>>
>>>> Hi Dmitry,
>>>>
>>>> Sorry for the confusion, Can we do it as follows:
>>>>
>>>> hub:                    Hd3ss3220   typec-connector
>>>>
>>>> usb_hub_2_1 <-> port@1       port@1 <-> empty
>>>> usb_hub_3_1 <-> port@2       port@2 <-> <empty>
>>>>                                port@0 <-> port@0
>>>>
>>>
>>> You still missed the _why_. Why port@1 of HD3SS3220 is not connected?
>>>
>>
>> There are no remote endpoints added in dwc3 node. Since we are making
>> dr_mode host. Hence keeping this remore endpoint empty.
> 
> How is the link between HD3SS3220 and Type-C affected by the DWC3? What
> does port@1 of it represent? Do we have SS lanes between HD3SS3220 and
> the connector?
> 

Yes.

The lines go from Soc -> Hub -> Port controller -> Connector

Hence I didn't add any special endpoint mapping between usb controller 
and port controller in above provided diagram.

  One port of port-controller goes to connector and the other goes to 
where the lanes are coming from. Usually its only one endpoint from dwc3 
usb controller to hd3 port-controller. In this case, since its a hub, we 
added two ports (one for Hs and the other for ss lines) to hd3 port 
controller.

Regards,
Krishna,
Re: [PATCH v5 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
Posted by Dmitry Baryshkov 4 days, 18 hours ago
On Thu, Feb 05, 2026 at 12:37:25AM +0530, Krishna Kurapati wrote:
> 
> 
> On 2/4/2026 4:02 PM, Dmitry Baryshkov wrote:
> > On Wed, Feb 04, 2026 at 11:26:37AM +0530, Krishna Kurapati wrote:
> > > 
> > > 
> > > On 2/4/2026 7:03 AM, Dmitry Baryshkov wrote:
> > > > On Tue, Jan 27, 2026 at 10:53:46AM +0530, Swati Agarwal wrote:
> > > > > On Thu, Jan 22, 2026 at 4:02 PM Dmitry Baryshkov
> > > > > <dmitry.baryshkov@oss.qualcomm.com> wrote:
> > > > > > 
> > > > > > On Thu, Jan 22, 2026 at 02:58:52PM +0530, Swati Agarwal wrote:
> > > > > > > Enable secondary USB controller in host mode on lemans EVK Platform.
> > > > > > > 
> > > > > > > Secondary USB controller is connected to a Genesys Logic USB HUB GL3590
> > > > > > > having 4 ports. The ports of hub that are present on lemans EVK standalone
> > > > > > > board are used as follows:-
> > > > > > > 1) port-1 is connected to HD3SS3220 Type-C port controller.
> > > > > > > 2) port-4 is used for the M.2 E key on corekit. Standard core kit uses UART
> > > > > > > for Bluetooth. This port is to be used only if user optionally replaces the
> > > > > > > WiFi card with the NFA765 chip which uses USB for Bluetooth.
> > > > > > > 
> > > > > > > Remaining 2 ports will become functional when the interface plus mezzanine
> > > > > > > board is stacked on top of corekit:
> > > > > > > 
> > > > > > > 3) port-2 is connected to another hub which is present on the mezz through
> > > > > > > which 4 type-A ports are connected.
> > > > > > > 4) port-3 is used for the M.2 B key for a 5G card when the mezz is
> > > > > > > connected.
> > > > > > > 
> > > > > > > Mark the second USB controller as host only capable and add the HD3SS3220
> > > > > > > Type-C port controller along with Type-c connector for controlling vbus
> > > > > > > supply.
> > > > > > > 
> > > > > > > Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> > > > > > > ---
> > > > > > >    arch/arm64/boot/dts/qcom/lemans-evk.dts | 208 ++++++++++++++++++++++++
> > > > > > >    1 file changed, 208 insertions(+)
> > > > > > > 
> > > > > > > diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > > > > index 074a1edd0334..a549f7fe53a1 100644
> > > > > > > --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > > > > +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > > > > @@ -68,6 +68,45 @@ usb0_con_ss_ep: endpoint {
> > > > > > >                 };
> > > > > > >         };
> > > > > > > 
> > > > > > > +     connector-1 {
> > > > > > > +             compatible = "usb-c-connector";
> > > > > > > +             label = "USB1-Type-C";
> > > > > > > +             data-role = "host";
> > > > > > > +             power-role = "source";
> > > > > > > +
> > > > > > > +             vbus-supply = <&vbus_supply_regulator_1>;
> > > > > > > +
> > > > > > > +             ports {
> > > > > > > +                     #address-cells = <1>;
> > > > > > > +                     #size-cells = <0>;
> > > > > > > +
> > > > > > > +                     port@0 {
> > > > > > > +                             reg = <0>;
> > > > > > > +
> > > > > > > +                             usb1_con_ss_ep: endpoint {
> > > > > > 
> > > > > > This contradicts USB-C connector bindings. Why?
> > > > > > 
> > > > > > > +                                     remote-endpoint = <&hd3ss3220_1_in_ep>;
> > > > > > > +                             };
> > > > > > > +                     };
> > > > > > > +
> > > > > > > +                     port@1 {
> > > > > > > +                             reg = <1>;
> > > > > > > +
> > > > > > > +                             usb1_hs_in: endpoint {
> > > > > > > +                                     remote-endpoint = <&usb_hub_2_1>;
> > > > > > > +                             };
> > > > > > > +
> > > > > > > +                     };
> > > > > > > +
> > > > > > > +                     port@2 {
> > > > > > > +                             reg = <2>;
> > > > > > > +
> > > > > > > +                             usb1_ss_in: endpoint {
> > > > > > 
> > > > > > port@2 is for the SBU signals. It can't be connected to the hub.
> > > > > > 
> > > > > > > +                                     remote-endpoint = <&usb_hub_3_1>;
> > > > > > > +                             };
> > > > > > > +                     };
> > > > > > > +             };
> > > > > > > +     };
> > > > > > > +
> > > > > > >         edp0-connector {
> > > > > > >                 compatible = "dp-connector";
> > > > > > >                 label = "EDP0";
> > > > > > > @@ -141,6 +180,16 @@ vbus_supply_regulator_0: regulator-vbus-supply-0 {
> > > > > > >                 enable-active-high;
> > > > > > >         };
> > > > > > > 
> > > > > > > +     vbus_supply_regulator_1: regulator-vbus-supply-1 {
> > > > > > > +             compatible = "regulator-fixed";
> > > > > > > +             regulator-name = "vbus_supply_1";
> > > > > > > +             gpio = <&expander1 3 GPIO_ACTIVE_HIGH>;
> > > > > > > +             regulator-min-microvolt = <5000000>;
> > > > > > > +             regulator-max-microvolt = <5000000>;
> > > > > > > +             regulator-boot-on;
> > > > > > > +             enable-active-high;
> > > > > > > +     };
> > > > > > > +
> > > > > > >         vmmc_sdc: regulator-vmmc-sdc {
> > > > > > >                 compatible = "regulator-fixed";
> > > > > > > 
> > > > > > > @@ -536,6 +585,39 @@ hd3ss3220_0_out_ep: endpoint {
> > > > > > >                         };
> > > > > > >                 };
> > > > > > >         };
> > > > > > > +
> > > > > > > +     usb-typec@47 {
> > > > > > > +             compatible = "ti,hd3ss3220";
> > > > > > > +             reg = <0x47>;
> > > > > > > +
> > > > > > > +             interrupts-extended = <&pmm8654au_2_gpios 6 IRQ_TYPE_EDGE_FALLING>;
> > > > > > > +
> > > > > > > +             id-gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
> > > > > > > +
> > > > > > > +             pinctrl-0 = <&usb1_id>, <&usb1_intr>;
> > > > > > > +             pinctrl-names = "default";
> > > > > > > +
> > > > > > > +             ports {
> > > > > > > +                     #address-cells = <1>;
> > > > > > > +                     #size-cells = <0>;
> > > > > > > +
> > > > > > > +                     port@0 {
> > > > > > > +                             reg = <0>;
> > > > > > > +
> > > > > > > +                             hd3ss3220_1_in_ep: endpoint {
> > > > > > > +                                     remote-endpoint = <&usb1_con_ss_ep>;
> > > > > > > +                             };
> > > > > > > +                     };
> > > > > > > +
> > > > > > > +                     port@1 {
> > > > > > > +                             reg = <1>;
> > > > > > > +
> > > > > > > +                             hd3ss3220_1_out_ep: endpoint {
> > > > > > > +                             };
> > > > > > 
> > > > > > Why is this port disconnected? It it really N/C?
> > > > > 
> > > > > Hi Dmitry,
> > > > > 
> > > > > Sorry for the confusion, Can we do it as follows:
> > > > > 
> > > > > hub:                    Hd3ss3220   typec-connector
> > > > > 
> > > > > usb_hub_2_1 <-> port@1       port@1 <-> empty
> > > > > usb_hub_3_1 <-> port@2       port@2 <-> <empty>
> > > > >                                port@0 <-> port@0
> > > > > 
> > > > 
> > > > You still missed the _why_. Why port@1 of HD3SS3220 is not connected?
> > > > 
> > > 
> > > There are no remote endpoints added in dwc3 node. Since we are making
> > > dr_mode host. Hence keeping this remore endpoint empty.
> > 
> > How is the link between HD3SS3220 and Type-C affected by the DWC3? What
> > does port@1 of it represent? Do we have SS lanes between HD3SS3220 and
> > the connector?
> > 
> 
> Yes.
> 
> The lines go from Soc -> Hub -> Port controller -> Connector
> 
> Hence I didn't add any special endpoint mapping between usb controller and
> port controller in above provided diagram.
> 
>  One port of port-controller goes to connector and the other goes to where
> the lanes are coming from. Usually its only one endpoint from dwc3 usb
> controller to hd3 port-controller. In this case, since its a hub, we added
> two ports (one for Hs and the other for ss lines) to hd3 port controller.

One needs to describe both HS and SS lanes being routed to the Type-C
connector. Please make sure that all signals are described.

-- 
With best wishes
Dmitry
Re: [PATCH v5 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
Posted by Konrad Dybcio 5 days, 4 hours ago
On 2/4/26 6:56 AM, Krishna Kurapati wrote:
> 
> 
> On 2/4/2026 7:03 AM, Dmitry Baryshkov wrote:
>> On Tue, Jan 27, 2026 at 10:53:46AM +0530, Swati Agarwal wrote:
>>> On Thu, Jan 22, 2026 at 4:02 PM Dmitry Baryshkov
>>> <dmitry.baryshkov@oss.qualcomm.com> wrote:
>>>>
>>>> On Thu, Jan 22, 2026 at 02:58:52PM +0530, Swati Agarwal wrote:
>>>>> Enable secondary USB controller in host mode on lemans EVK Platform.
>>>>>
>>>>> Secondary USB controller is connected to a Genesys Logic USB HUB GL3590
>>>>> having 4 ports. The ports of hub that are present on lemans EVK standalone
>>>>> board are used as follows:-
>>>>> 1) port-1 is connected to HD3SS3220 Type-C port controller.
>>>>> 2) port-4 is used for the M.2 E key on corekit. Standard core kit uses UART
>>>>> for Bluetooth. This port is to be used only if user optionally replaces the
>>>>> WiFi card with the NFA765 chip which uses USB for Bluetooth.
>>>>>
>>>>> Remaining 2 ports will become functional when the interface plus mezzanine
>>>>> board is stacked on top of corekit:
>>>>>
>>>>> 3) port-2 is connected to another hub which is present on the mezz through
>>>>> which 4 type-A ports are connected.
>>>>> 4) port-3 is used for the M.2 B key for a 5G card when the mezz is
>>>>> connected.
>>>>>
>>>>> Mark the second USB controller as host only capable and add the HD3SS3220
>>>>> Type-C port controller along with Type-c connector for controlling vbus
>>>>> supply.
>>>>>
>>>>> Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
>>>>> ---
>>>>>   arch/arm64/boot/dts/qcom/lemans-evk.dts | 208 ++++++++++++++++++++++++
>>>>>   1 file changed, 208 insertions(+)
>>>>>
>>>>> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>>>>> index 074a1edd0334..a549f7fe53a1 100644
>>>>> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
>>>>> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>>>>> @@ -68,6 +68,45 @@ usb0_con_ss_ep: endpoint {
>>>>>                };
>>>>>        };
>>>>>
>>>>> +     connector-1 {
>>>>> +             compatible = "usb-c-connector";
>>>>> +             label = "USB1-Type-C";
>>>>> +             data-role = "host";
>>>>> +             power-role = "source";
>>>>> +
>>>>> +             vbus-supply = <&vbus_supply_regulator_1>;
>>>>> +
>>>>> +             ports {
>>>>> +                     #address-cells = <1>;
>>>>> +                     #size-cells = <0>;
>>>>> +
>>>>> +                     port@0 {
>>>>> +                             reg = <0>;
>>>>> +
>>>>> +                             usb1_con_ss_ep: endpoint {
>>>>
>>>> This contradicts USB-C connector bindings. Why?
>>>>
>>>>> +                                     remote-endpoint = <&hd3ss3220_1_in_ep>;
>>>>> +                             };
>>>>> +                     };
>>>>> +
>>>>> +                     port@1 {
>>>>> +                             reg = <1>;
>>>>> +
>>>>> +                             usb1_hs_in: endpoint {
>>>>> +                                     remote-endpoint = <&usb_hub_2_1>;
>>>>> +                             };
>>>>> +
>>>>> +                     };
>>>>> +
>>>>> +                     port@2 {
>>>>> +                             reg = <2>;
>>>>> +
>>>>> +                             usb1_ss_in: endpoint {
>>>>
>>>> port@2 is for the SBU signals. It can't be connected to the hub.
>>>>
>>>>> +                                     remote-endpoint = <&usb_hub_3_1>;
>>>>> +                             };
>>>>> +                     };
>>>>> +             };
>>>>> +     };
>>>>> +
>>>>>        edp0-connector {
>>>>>                compatible = "dp-connector";
>>>>>                label = "EDP0";
>>>>> @@ -141,6 +180,16 @@ vbus_supply_regulator_0: regulator-vbus-supply-0 {
>>>>>                enable-active-high;
>>>>>        };
>>>>>
>>>>> +     vbus_supply_regulator_1: regulator-vbus-supply-1 {
>>>>> +             compatible = "regulator-fixed";
>>>>> +             regulator-name = "vbus_supply_1";
>>>>> +             gpio = <&expander1 3 GPIO_ACTIVE_HIGH>;
>>>>> +             regulator-min-microvolt = <5000000>;
>>>>> +             regulator-max-microvolt = <5000000>;
>>>>> +             regulator-boot-on;
>>>>> +             enable-active-high;
>>>>> +     };
>>>>> +
>>>>>        vmmc_sdc: regulator-vmmc-sdc {
>>>>>                compatible = "regulator-fixed";
>>>>>
>>>>> @@ -536,6 +585,39 @@ hd3ss3220_0_out_ep: endpoint {
>>>>>                        };
>>>>>                };
>>>>>        };
>>>>> +
>>>>> +     usb-typec@47 {
>>>>> +             compatible = "ti,hd3ss3220";
>>>>> +             reg = <0x47>;
>>>>> +
>>>>> +             interrupts-extended = <&pmm8654au_2_gpios 6 IRQ_TYPE_EDGE_FALLING>;
>>>>> +
>>>>> +             id-gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
>>>>> +
>>>>> +             pinctrl-0 = <&usb1_id>, <&usb1_intr>;
>>>>> +             pinctrl-names = "default";
>>>>> +
>>>>> +             ports {
>>>>> +                     #address-cells = <1>;
>>>>> +                     #size-cells = <0>;
>>>>> +
>>>>> +                     port@0 {
>>>>> +                             reg = <0>;
>>>>> +
>>>>> +                             hd3ss3220_1_in_ep: endpoint {
>>>>> +                                     remote-endpoint = <&usb1_con_ss_ep>;
>>>>> +                             };
>>>>> +                     };
>>>>> +
>>>>> +                     port@1 {
>>>>> +                             reg = <1>;
>>>>> +
>>>>> +                             hd3ss3220_1_out_ep: endpoint {
>>>>> +                             };
>>>>
>>>> Why is this port disconnected? It it really N/C?
>>>
>>> Hi Dmitry,
>>>
>>> Sorry for the confusion, Can we do it as follows:
>>>
>>> hub:                    Hd3ss3220   typec-connector
>>>
>>> usb_hub_2_1 <-> port@1       port@1 <-> empty
>>> usb_hub_3_1 <-> port@2       port@2 <-> <empty>
>>>                               port@0 <-> port@0
>>>
>>
>> You still missed the _why_. Why port@1 of HD3SS3220 is not connected?
>>
> 
> There are no remote endpoints added in dwc3 node. Since we are making dr_mode host. Hence keeping this remore endpoint empty.

So can you like.. add the endpoints under that node and problem
solved?

Konrad
Re: [PATCH v5 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
Posted by Swati Agarwal 6 days, 7 hours ago
On Tue, Jan 27, 2026 at 10:53 AM Swati Agarwal
<swati.agarwal@oss.qualcomm.com> wrote:
>
> On Thu, Jan 22, 2026 at 4:02 PM Dmitry Baryshkov
> <dmitry.baryshkov@oss.qualcomm.com> wrote:
> >
> > On Thu, Jan 22, 2026 at 02:58:52PM +0530, Swati Agarwal wrote:
> > > Enable secondary USB controller in host mode on lemans EVK Platform.
> > >
> > > Secondary USB controller is connected to a Genesys Logic USB HUB GL3590
> > > having 4 ports. The ports of hub that are present on lemans EVK standalone
> > > board are used as follows:-
> > > 1) port-1 is connected to HD3SS3220 Type-C port controller.
> > > 2) port-4 is used for the M.2 E key on corekit. Standard core kit uses UART
> > > for Bluetooth. This port is to be used only if user optionally replaces the
> > > WiFi card with the NFA765 chip which uses USB for Bluetooth.
> > >
> > > Remaining 2 ports will become functional when the interface plus mezzanine
> > > board is stacked on top of corekit:
> > >
> > > 3) port-2 is connected to another hub which is present on the mezz through
> > > which 4 type-A ports are connected.
> > > 4) port-3 is used for the M.2 B key for a 5G card when the mezz is
> > > connected.
> > >
> > > Mark the second USB controller as host only capable and add the HD3SS3220
> > > Type-C port controller along with Type-c connector for controlling vbus
> > > supply.
> > >
> > > Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> > > ---
> > >  arch/arm64/boot/dts/qcom/lemans-evk.dts | 208 ++++++++++++++++++++++++
> > >  1 file changed, 208 insertions(+)
> > >
> > > diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > index 074a1edd0334..a549f7fe53a1 100644
> > > --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > @@ -68,6 +68,45 @@ usb0_con_ss_ep: endpoint {
> > >               };
> > >       };
> > >
> > > +     connector-1 {
> > > +             compatible = "usb-c-connector";
> > > +             label = "USB1-Type-C";
> > > +             data-role = "host";
> > > +             power-role = "source";
> > > +
> > > +             vbus-supply = <&vbus_supply_regulator_1>;
> > > +
> > > +             ports {
> > > +                     #address-cells = <1>;
> > > +                     #size-cells = <0>;
> > > +
> > > +                     port@0 {
> > > +                             reg = <0>;
> > > +
> > > +                             usb1_con_ss_ep: endpoint {
> >
> > This contradicts USB-C connector bindings. Why?
> >
> > > +                                     remote-endpoint = <&hd3ss3220_1_in_ep>;
> > > +                             };
> > > +                     };
> > > +
> > > +                     port@1 {
> > > +                             reg = <1>;
> > > +
> > > +                             usb1_hs_in: endpoint {
> > > +                                     remote-endpoint = <&usb_hub_2_1>;
> > > +                             };
> > > +
> > > +                     };
> > > +
> > > +                     port@2 {
> > > +                             reg = <2>;
> > > +
> > > +                             usb1_ss_in: endpoint {
> >
> > port@2 is for the SBU signals. It can't be connected to the hub.
> >
> > > +                                     remote-endpoint = <&usb_hub_3_1>;
> > > +                             };
> > > +                     };
> > > +             };
> > > +     };
> > > +
> > >       edp0-connector {
> > >               compatible = "dp-connector";
> > >               label = "EDP0";
> > > @@ -141,6 +180,16 @@ vbus_supply_regulator_0: regulator-vbus-supply-0 {
> > >               enable-active-high;
> > >       };
> > >
> > > +     vbus_supply_regulator_1: regulator-vbus-supply-1 {
> > > +             compatible = "regulator-fixed";
> > > +             regulator-name = "vbus_supply_1";
> > > +             gpio = <&expander1 3 GPIO_ACTIVE_HIGH>;
> > > +             regulator-min-microvolt = <5000000>;
> > > +             regulator-max-microvolt = <5000000>;
> > > +             regulator-boot-on;
> > > +             enable-active-high;
> > > +     };
> > > +
> > >       vmmc_sdc: regulator-vmmc-sdc {
> > >               compatible = "regulator-fixed";
> > >
> > > @@ -536,6 +585,39 @@ hd3ss3220_0_out_ep: endpoint {
> > >                       };
> > >               };
> > >       };
> > > +
> > > +     usb-typec@47 {
> > > +             compatible = "ti,hd3ss3220";
> > > +             reg = <0x47>;
> > > +
> > > +             interrupts-extended = <&pmm8654au_2_gpios 6 IRQ_TYPE_EDGE_FALLING>;
> > > +
> > > +             id-gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
> > > +
> > > +             pinctrl-0 = <&usb1_id>, <&usb1_intr>;
> > > +             pinctrl-names = "default";
> > > +
> > > +             ports {
> > > +                     #address-cells = <1>;
> > > +                     #size-cells = <0>;
> > > +
> > > +                     port@0 {
> > > +                             reg = <0>;
> > > +
> > > +                             hd3ss3220_1_in_ep: endpoint {
> > > +                                     remote-endpoint = <&usb1_con_ss_ep>;
> > > +                             };
> > > +                     };
> > > +
> > > +                     port@1 {
> > > +                             reg = <1>;
> > > +
> > > +                             hd3ss3220_1_out_ep: endpoint {
> > > +                             };
> >
> > Why is this port disconnected? It it really N/C?
>
> Hi Dmitry,
>
> Sorry for the confusion, Can we do it as follows:
>
> hub:                    Hd3ss3220   typec-connector
>
> usb_hub_2_1 <-> port@1       port@1 <-> empty
> usb_hub_3_1 <-> port@2       port@2 <-> <empty>
>                              port@0 <-> port@0
>
> Regards,
> Swati

Hi Dmitry,

Gentle ping.
Let me know if the above remote endpoint connections look good to go.

Regards,
Swati


> >
> > > +                     };
> > > +             };
> > > +     };
> > > +
> > >  };
> > >
> > >  &i2c18 {
> > > @@ -699,6 +781,14 @@ usb0_intr_state: usb0-intr-state {
> > >               bias-pull-up;
> > >               power-source = <0>;
> > >       };
> > > +
> > > +     usb1_intr: usb1-intr-state {
> > > +             pins = "gpio6";
> > > +             function = "normal";
> > > +             input-enable;
> > > +             bias-pull-up;
> > > +             power-source = <0>;
> > > +     };
> > >  };
> > >
> > >  &qup_i2c19_default {
> > > @@ -868,6 +958,12 @@ usb_id: usb-id-state {
> > >               function = "gpio";
> > >               bias-pull-up;
> > >       };
> > > +
> > > +     usb1_id: usb1-id-state {
> > > +             pins = "gpio51";
> > > +             function = "gpio";
> > > +             bias-pull-up;
> > > +     };
> > >  };
> > >
> > >  &uart10 {
> > > @@ -922,6 +1018,118 @@ &usb_0_qmpphy {
> > >       status = "okay";
> > >  };
> > >
> > > +&usb_1 {
> > > +     dr_mode = "host";
> > > +
> > > +     #address-cells = <1>;
> > > +     #size-cells = <0>;
> > > +
> > > +     status = "okay";
> > > +
> > > +     usb_hub_2_x: hub@1 {
> > > +             compatible = "usb5e3,610";
> > > +             reg = <1>;
> > > +
> > > +             peer-hub = <&usb_hub_3_x>;
> > > +
> > > +             ports {
> > > +                     #address-cells = <1>;
> > > +                     #size-cells = <0>;
> > > +
> > > +                     port@1 {
> > > +                             reg = <1>;
> > > +
> > > +                             usb_hub_2_1: endpoint {
> > > +                                     remote-endpoint = <&usb1_hs_in>;
> > > +                             };
> > > +                     };
> > > +
> > > +                     /*
> > > +                      * Port-2 and port-3 are not connected to anything on corekit.
> >
> > I thought that they are routed to the HS connectors. Are they not?
> >
> > > +                      */
> > > +                     port@2 {
> > > +                             reg = <2>;
> > > +
> > > +                             usb_hub_2_2: endpoint {
> > > +                             };
> > > +                     };
> > > +
> > > +                     port@3 {
> > > +                             reg = <3>;
> > > +
> > > +                             usb_hub_2_3: endpoint {
> > > +                             };
> > > +                     };
> > > +
> > > +                     /*
> > > +                      * Port-4 is connected to M.2 E key connector on corekit.
> > > +                      */
> > > +                     port@4 {
> > > +                             reg = <4>;
> > > +
> > > +                             usb_hub_2_4: endpoint {
> > > +                             };
> > > +                     };
> > > +             };
> > > +     };
> > > +
> > > +     usb_hub_3_x: hub@2 {
> > > +             compatible = "usb5e3,625";
> > > +             reg = <2>;
> > > +
> > > +             peer-hub = <&usb_hub_2_x>;
> > > +
> > > +             ports {
> > > +                     #address-cells = <1>;
> > > +                     #size-cells = <0>;
> > > +
> > > +                     port@1 {
> > > +                             reg = <1>;
> > > +
> > > +                             usb_hub_3_1: endpoint {
> > > +                                     remote-endpoint = <&usb1_ss_in>;
> > > +                             };
> > > +                     };
> > > +
> > > +                     port@2 {
> > > +                             reg = <2>;
> > > +
> > > +                             usb_hub_3_2: endpoint {
> > > +                             };
> > > +                     };
> > > +
> > > +                     port@3 {
> > > +                             reg = <3>;
> > > +
> > > +                             usb_hub_3_3: endpoint {
> > > +                             };
> > > +                     };
> > > +
> > > +                     port@4 {
> > > +                             reg = <4>;
> > > +
> > > +                             usb_hub_3_4: endpoint {
> > > +                             };
> > > +                     };
> > > +             };
> > > +     };
> > > +};
> > > +
> > > +&usb_1_hsphy {
> > > +     vdda-pll-supply = <&vreg_l7a>;
> > > +     vdda18-supply = <&vreg_l6c>;
> > > +     vdda33-supply = <&vreg_l9a>;
> > > +
> > > +     status = "okay";
> > > +};
> > > +
> > > +&usb_1_qmpphy {
> > > +     vdda-phy-supply = <&vreg_l1c>;
> > > +     vdda-pll-supply = <&vreg_l7a>;
> > > +
> > > +     status = "okay";
> > > +};
> > > +
> > >  &xo_board_clk {
> > >       clock-frequency = <38400000>;
> > >  };
> > > --
> > > 2.34.1
> > >
> >
> > --
> > With best wishes
> > Dmitry