* [PATCH v3 1/4] dt-bindings: usb: Add binding for Genesys Logic GL3590 hub
2025-12-20 6:35 [PATCH v3 0/4] Enable secondary USB controller in host mode Swati Agarwal
@ 2025-12-20 6:35 ` Swati Agarwal
2025-12-20 9:17 ` Krzysztof Kozlowski
2025-12-20 6:35 ` [PATCH v3 2/4] usb: misc: onboard_usb_hub: Add Genesys Logic GL3590 hub support Swati Agarwal
` (2 subsequent siblings)
3 siblings, 1 reply; 19+ messages in thread
From: Swati Agarwal @ 2025-12-20 6:35 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Icenowy Zheng, Matthias Kaehlcke,
J . Neuschäfer, Dmitry Baryshkov, Jens Glathe,
Mike Looijmans, Catalin Popescu, Bjorn Andersson, Konrad Dybcio,
Pin-yen Lin
Cc: linux-usb, devicetree, linux-kernel, linux-arm-msm, Swati Agarwal
Add the binding for the USB3.2 Genesys Logic GL3590 hub.
Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
---
.../devicetree/bindings/usb/genesys,gl850g.yaml | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml b/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml
index 9a94b2a74a1e..a184e1074c7c 100644
--- a/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml
+++ b/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml
@@ -15,6 +15,7 @@ properties:
- usb5e3,608
- usb5e3,610
- usb5e3,620
+ - usb5e3,625
- usb5e3,626
reg: true
@@ -69,6 +70,17 @@ allOf:
peer-hub: true
vdd-supply: true
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - usb5e3,625
+ then:
+ properties:
+ peer-hub: true
+ vdd-supply: false
+
unevaluatedProperties: false
examples:
--
2.34.1
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH v3 1/4] dt-bindings: usb: Add binding for Genesys Logic GL3590 hub
2025-12-20 6:35 ` [PATCH v3 1/4] dt-bindings: usb: Add binding for Genesys Logic GL3590 hub Swati Agarwal
@ 2025-12-20 9:17 ` Krzysztof Kozlowski
0 siblings, 0 replies; 19+ messages in thread
From: Krzysztof Kozlowski @ 2025-12-20 9:17 UTC (permalink / raw)
To: Swati Agarwal
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Icenowy Zheng, Matthias Kaehlcke,
J . Neuschäfer, Dmitry Baryshkov, Jens Glathe,
Mike Looijmans, Catalin Popescu, Bjorn Andersson, Konrad Dybcio,
Pin-yen Lin, linux-usb, devicetree, linux-kernel, linux-arm-msm
On Sat, Dec 20, 2025 at 12:05:34PM +0530, Swati Agarwal wrote:
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - usb5e3,625
> + then:
> + properties:
> + peer-hub: true
> + vdd-supply: false
This is not true. I clearly see VP33, AVDD and VP10 (and maybe more)
supplies. Not only in pin list, but high level diagram clearly marks two
supplies.
Please read again datasheet carefully, because that's your task, not
mine. I do not have even access to most of the datasheets, so you
expecting me to do it is just unfair.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v3 2/4] usb: misc: onboard_usb_hub: Add Genesys Logic GL3590 hub support
2025-12-20 6:35 [PATCH v3 0/4] Enable secondary USB controller in host mode Swati Agarwal
2025-12-20 6:35 ` [PATCH v3 1/4] dt-bindings: usb: Add binding for Genesys Logic GL3590 hub Swati Agarwal
@ 2025-12-20 6:35 ` Swati Agarwal
2025-12-20 16:07 ` Dmitry Baryshkov
2025-12-20 6:35 ` [PATCH v3 3/4] arm64: dts: qcom: lemans-evk: Rename hd3ss3220_ instance for primary port controller Swati Agarwal
2025-12-20 6:35 ` [PATCH v3 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode Swati Agarwal
3 siblings, 1 reply; 19+ messages in thread
From: Swati Agarwal @ 2025-12-20 6:35 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Icenowy Zheng, Matthias Kaehlcke,
J . Neuschäfer, Dmitry Baryshkov, Jens Glathe,
Mike Looijmans, Catalin Popescu, Bjorn Andersson, Konrad Dybcio,
Pin-yen Lin
Cc: linux-usb, devicetree, linux-kernel, linux-arm-msm, Swati Agarwal
Add support for the GL3590 4 ports USB3.2 hub. This allows to control its
reset pins with a gpio.
Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
---
drivers/usb/misc/onboard_usb_dev.c | 1 +
drivers/usb/misc/onboard_usb_dev.h | 1 +
2 files changed, 2 insertions(+)
diff --git a/drivers/usb/misc/onboard_usb_dev.c b/drivers/usb/misc/onboard_usb_dev.c
index 41360a7591e5..bde303b820d7 100644
--- a/drivers/usb/misc/onboard_usb_dev.c
+++ b/drivers/usb/misc/onboard_usb_dev.c
@@ -661,6 +661,7 @@ static const struct usb_device_id onboard_dev_id_table[] = {
{ USB_DEVICE(VENDOR_ID_GENESYS, 0x0608) }, /* Genesys Logic GL850G USB 2.0 HUB */
{ USB_DEVICE(VENDOR_ID_GENESYS, 0x0610) }, /* Genesys Logic GL852G USB 2.0 HUB */
{ USB_DEVICE(VENDOR_ID_GENESYS, 0x0620) }, /* Genesys Logic GL3523 USB 3.1 HUB */
+ { USB_DEVICE(VENDOR_ID_GENESYS, 0x0625) }, /* Genesys Logic GL3590 USB 3.2 HUB */
{ USB_DEVICE(VENDOR_ID_MICROCHIP, 0x2412) }, /* USB2412 USB 2.0 HUB */
{ USB_DEVICE(VENDOR_ID_MICROCHIP, 0x2514) }, /* USB2514B USB 2.0 HUB */
{ USB_DEVICE(VENDOR_ID_MICROCHIP, 0x2517) }, /* USB2517 USB 2.0 HUB */
diff --git a/drivers/usb/misc/onboard_usb_dev.h b/drivers/usb/misc/onboard_usb_dev.h
index c1462be5526d..7706a04f2630 100644
--- a/drivers/usb/misc/onboard_usb_dev.h
+++ b/drivers/usb/misc/onboard_usb_dev.h
@@ -140,6 +140,7 @@ static const struct of_device_id onboard_dev_match[] = {
{ .compatible = "usb5e3,608", .data = &genesys_gl850g_data, },
{ .compatible = "usb5e3,610", .data = &genesys_gl852g_data, },
{ .compatible = "usb5e3,620", .data = &genesys_gl852g_data, },
+ { .compatible = "usb5e3,625", .data = &genesys_gl852g_data, },
{ .compatible = "usb5e3,626", .data = &genesys_gl852g_data, },
{ .compatible = "usbbda,179", .data = &realtek_rtl8188etv_data, },
{ .compatible = "usbbda,411", .data = &realtek_rts5411_data, },
--
2.34.1
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH v3 2/4] usb: misc: onboard_usb_hub: Add Genesys Logic GL3590 hub support
2025-12-20 6:35 ` [PATCH v3 2/4] usb: misc: onboard_usb_hub: Add Genesys Logic GL3590 hub support Swati Agarwal
@ 2025-12-20 16:07 ` Dmitry Baryshkov
0 siblings, 0 replies; 19+ messages in thread
From: Dmitry Baryshkov @ 2025-12-20 16:07 UTC (permalink / raw)
To: Swati Agarwal
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Icenowy Zheng, Matthias Kaehlcke,
J . Neuschäfer, Jens Glathe, Mike Looijmans,
Catalin Popescu, Bjorn Andersson, Konrad Dybcio, Pin-yen Lin,
linux-usb, devicetree, linux-kernel, linux-arm-msm
On Sat, Dec 20, 2025 at 12:05:35PM +0530, Swati Agarwal wrote:
> Add support for the GL3590 4 ports USB3.2 hub. This allows to control its
> reset pins with a gpio.
Nit: please read Documentation/process/submitting-patches.rst. First
describe the reason for the change, then the actions to be done.
>
> Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> ---
> drivers/usb/misc/onboard_usb_dev.c | 1 +
> drivers/usb/misc/onboard_usb_dev.h | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/drivers/usb/misc/onboard_usb_dev.c b/drivers/usb/misc/onboard_usb_dev.c
> index 41360a7591e5..bde303b820d7 100644
> --- a/drivers/usb/misc/onboard_usb_dev.c
> +++ b/drivers/usb/misc/onboard_usb_dev.c
> @@ -661,6 +661,7 @@ static const struct usb_device_id onboard_dev_id_table[] = {
> { USB_DEVICE(VENDOR_ID_GENESYS, 0x0608) }, /* Genesys Logic GL850G USB 2.0 HUB */
> { USB_DEVICE(VENDOR_ID_GENESYS, 0x0610) }, /* Genesys Logic GL852G USB 2.0 HUB */
> { USB_DEVICE(VENDOR_ID_GENESYS, 0x0620) }, /* Genesys Logic GL3523 USB 3.1 HUB */
> + { USB_DEVICE(VENDOR_ID_GENESYS, 0x0625) }, /* Genesys Logic GL3590 USB 3.2 HUB */
> { USB_DEVICE(VENDOR_ID_MICROCHIP, 0x2412) }, /* USB2412 USB 2.0 HUB */
> { USB_DEVICE(VENDOR_ID_MICROCHIP, 0x2514) }, /* USB2514B USB 2.0 HUB */
> { USB_DEVICE(VENDOR_ID_MICROCHIP, 0x2517) }, /* USB2517 USB 2.0 HUB */
> diff --git a/drivers/usb/misc/onboard_usb_dev.h b/drivers/usb/misc/onboard_usb_dev.h
> index c1462be5526d..7706a04f2630 100644
> --- a/drivers/usb/misc/onboard_usb_dev.h
> +++ b/drivers/usb/misc/onboard_usb_dev.h
> @@ -140,6 +140,7 @@ static const struct of_device_id onboard_dev_match[] = {
> { .compatible = "usb5e3,608", .data = &genesys_gl850g_data, },
> { .compatible = "usb5e3,610", .data = &genesys_gl852g_data, },
> { .compatible = "usb5e3,620", .data = &genesys_gl852g_data, },
> + { .compatible = "usb5e3,625", .data = &genesys_gl852g_data, },
> { .compatible = "usb5e3,626", .data = &genesys_gl852g_data, },
> { .compatible = "usbbda,179", .data = &realtek_rtl8188etv_data, },
> { .compatible = "usbbda,411", .data = &realtek_rts5411_data, },
> --
> 2.34.1
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v3 3/4] arm64: dts: qcom: lemans-evk: Rename hd3ss3220_ instance for primary port controller
2025-12-20 6:35 [PATCH v3 0/4] Enable secondary USB controller in host mode Swati Agarwal
2025-12-20 6:35 ` [PATCH v3 1/4] dt-bindings: usb: Add binding for Genesys Logic GL3590 hub Swati Agarwal
2025-12-20 6:35 ` [PATCH v3 2/4] usb: misc: onboard_usb_hub: Add Genesys Logic GL3590 hub support Swati Agarwal
@ 2025-12-20 6:35 ` Swati Agarwal
2025-12-20 16:07 ` Dmitry Baryshkov
2025-12-22 10:17 ` Konrad Dybcio
2025-12-20 6:35 ` [PATCH v3 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode Swati Agarwal
3 siblings, 2 replies; 19+ messages in thread
From: Swati Agarwal @ 2025-12-20 6:35 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Icenowy Zheng, Matthias Kaehlcke,
J . Neuschäfer, Dmitry Baryshkov, Jens Glathe,
Mike Looijmans, Catalin Popescu, Bjorn Andersson, Konrad Dybcio,
Pin-yen Lin
Cc: linux-usb, devicetree, linux-kernel, linux-arm-msm, Swati Agarwal
Rename the hd3ss3220_ instance to improve clarity and simplify usage when
adding a secondary port controller.
Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/lemans-evk.dts | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
index 2536ebe36edb..70d85b6ba772 100644
--- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
+++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
@@ -61,7 +61,7 @@ port@1 {
reg = <1>;
usb0_con_ss_ep: endpoint {
- remote-endpoint = <&hd3ss3220_in_ep>;
+ remote-endpoint = <&hd3ss3220_0_in_ep>;
};
};
};
@@ -513,7 +513,7 @@ ports {
port@0 {
reg = <0>;
- hd3ss3220_in_ep: endpoint {
+ hd3ss3220_0_in_ep: endpoint {
remote-endpoint = <&usb0_con_ss_ep>;
};
};
@@ -521,7 +521,7 @@ hd3ss3220_in_ep: endpoint {
port@1 {
reg = <1>;
- hd3ss3220_out_ep: endpoint {
+ hd3ss3220_0_out_ep: endpoint {
remote-endpoint = <&usb_0_dwc3_ss>;
};
};
@@ -885,7 +885,7 @@ &usb_0_dwc3_hs {
};
&usb_0_dwc3_ss {
- remote-endpoint = <&hd3ss3220_out_ep>;
+ remote-endpoint = <&hd3ss3220_0_out_ep>;
};
&usb_0_hsphy {
--
2.34.1
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH v3 3/4] arm64: dts: qcom: lemans-evk: Rename hd3ss3220_ instance for primary port controller
2025-12-20 6:35 ` [PATCH v3 3/4] arm64: dts: qcom: lemans-evk: Rename hd3ss3220_ instance for primary port controller Swati Agarwal
@ 2025-12-20 16:07 ` Dmitry Baryshkov
2025-12-22 10:17 ` Konrad Dybcio
1 sibling, 0 replies; 19+ messages in thread
From: Dmitry Baryshkov @ 2025-12-20 16:07 UTC (permalink / raw)
To: Swati Agarwal
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Icenowy Zheng, Matthias Kaehlcke,
J . Neuschäfer, Jens Glathe, Mike Looijmans,
Catalin Popescu, Bjorn Andersson, Konrad Dybcio, Pin-yen Lin,
linux-usb, devicetree, linux-kernel, linux-arm-msm
On Sat, Dec 20, 2025 at 12:05:36PM +0530, Swati Agarwal wrote:
> Rename the hd3ss3220_ instance to improve clarity and simplify usage when
> adding a secondary port controller.
>
> Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/lemans-evk.dts | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v3 3/4] arm64: dts: qcom: lemans-evk: Rename hd3ss3220_ instance for primary port controller
2025-12-20 6:35 ` [PATCH v3 3/4] arm64: dts: qcom: lemans-evk: Rename hd3ss3220_ instance for primary port controller Swati Agarwal
2025-12-20 16:07 ` Dmitry Baryshkov
@ 2025-12-22 10:17 ` Konrad Dybcio
1 sibling, 0 replies; 19+ messages in thread
From: Konrad Dybcio @ 2025-12-22 10:17 UTC (permalink / raw)
To: Swati Agarwal, Greg Kroah-Hartman, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Icenowy Zheng,
Matthias Kaehlcke, J . Neuschäfer, Dmitry Baryshkov,
Jens Glathe, Mike Looijmans, Catalin Popescu, Bjorn Andersson,
Konrad Dybcio, Pin-yen Lin
Cc: linux-usb, devicetree, linux-kernel, linux-arm-msm
On 12/20/25 7:35 AM, Swati Agarwal wrote:
> Rename the hd3ss3220_ instance to improve clarity and simplify usage when
> adding a secondary port controller.
>
> Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v3 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
2025-12-20 6:35 [PATCH v3 0/4] Enable secondary USB controller in host mode Swati Agarwal
` (2 preceding siblings ...)
2025-12-20 6:35 ` [PATCH v3 3/4] arm64: dts: qcom: lemans-evk: Rename hd3ss3220_ instance for primary port controller Swati Agarwal
@ 2025-12-20 6:35 ` Swati Agarwal
2025-12-20 16:17 ` Dmitry Baryshkov
2025-12-22 10:19 ` Konrad Dybcio
3 siblings, 2 replies; 19+ messages in thread
From: Swati Agarwal @ 2025-12-20 6:35 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Icenowy Zheng, Matthias Kaehlcke,
J . Neuschäfer, Dmitry Baryshkov, Jens Glathe,
Mike Looijmans, Catalin Popescu, Bjorn Andersson, Konrad Dybcio,
Pin-yen Lin
Cc: linux-usb, devicetree, linux-kernel, linux-arm-msm, Swati Agarwal
Enable secondary USB controller in host mode on lemans EVK Platform.
For secondary USB Typec port, there is a genesys USB HUB GL3590 having 4
ports sitting in between SOC and HD3SS3220 Type-C port controller and SS
lines run from the SoC through the hub to the Port controller. Mark the
second USB controller as host only capable.
Add 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 | 158 ++++++++++++++++++++++++
1 file changed, 158 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
index 70d85b6ba772..d72639479d75 100644
--- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
+++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
@@ -67,6 +67,47 @@ usb0_con_ss_ep: endpoint {
};
};
+ connector-1 {
+ compatible = "usb-c-connector";
+ label = "USB1-Type-C";
+ data-role = "host";
+ power-role = "dual";
+ try-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";
@@ -140,6 +181,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";
@@ -527,6 +578,33 @@ 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>;
+ };
+ };
+
+ };
+ };
+
};
&i2c18 {
@@ -690,6 +768,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 {
@@ -849,6 +935,12 @@ usb_id: usb-id-state {
function = "gpio";
bias-pull-up;
};
+
+ usb1_id: usb1-id-state {
+ pins = "gpio51";
+ function = "gpio";
+ bias-pull-up;
+ };
};
&uart10 {
@@ -903,6 +995,72 @@ &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>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@1 {
+ reg = <1>;
+
+ usb_hub_2_1: endpoint {
+ remote-endpoint = <&usb1_hs_in>;
+ };
+ };
+
+ };
+ };
+
+ 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>;
+ };
+ };
+
+ };
+ };
+};
+
+&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
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH v3 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
2025-12-20 6:35 ` [PATCH v3 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode Swati Agarwal
@ 2025-12-20 16:17 ` Dmitry Baryshkov
2026-01-13 8:02 ` Swati Agarwal
2025-12-22 10:19 ` Konrad Dybcio
1 sibling, 1 reply; 19+ messages in thread
From: Dmitry Baryshkov @ 2025-12-20 16:17 UTC (permalink / raw)
To: Swati Agarwal
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Icenowy Zheng, Matthias Kaehlcke,
J . Neuschäfer, Jens Glathe, Mike Looijmans,
Catalin Popescu, Bjorn Andersson, Konrad Dybcio, Pin-yen Lin,
linux-usb, devicetree, linux-kernel, linux-arm-msm
On Sat, Dec 20, 2025 at 12:05:37PM +0530, Swati Agarwal wrote:
> Enable secondary USB controller in host mode on lemans EVK Platform.
>
> For secondary USB Typec port, there is a genesys USB HUB GL3590 having 4
> ports sitting in between SOC and HD3SS3220 Type-C port controller and SS
> lines run from the SoC through the hub to the Port controller. Mark the
> second USB controller as host only capable.
>
> Add 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 | 158 ++++++++++++++++++++++++
> 1 file changed, 158 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> index 70d85b6ba772..d72639479d75 100644
> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> @@ -67,6 +67,47 @@ usb0_con_ss_ep: endpoint {
> };
> };
>
> + connector-1 {
> + compatible = "usb-c-connector";
> + label = "USB1-Type-C";
> + data-role = "host";
> + power-role = "dual";
> + try-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";
> @@ -140,6 +181,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";
>
> @@ -527,6 +578,33 @@ 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>;
> + };
> + };
> +
> + };
> + };
> +
> };
>
> &i2c18 {
> @@ -690,6 +768,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 {
> @@ -849,6 +935,12 @@ usb_id: usb-id-state {
> function = "gpio";
> bias-pull-up;
> };
> +
> + usb1_id: usb1-id-state {
> + pins = "gpio51";
> + function = "gpio";
> + bias-pull-up;
> + };
> };
>
> &uart10 {
> @@ -903,6 +995,72 @@ &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>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@1 {
> + reg = <1>;
> +
> + usb_hub_2_1: endpoint {
> + remote-endpoint = <&usb1_hs_in>;
> + };
Are all other ports disconnected? If so, why do we need a hub?
> + };
> +
> + };
> + };
> +
> + 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>;
> + };
> + };
> +
> + };
> + };
> +};
> +
> +&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
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH v3 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
2025-12-20 16:17 ` Dmitry Baryshkov
@ 2026-01-13 8:02 ` Swati Agarwal
2026-01-13 11:29 ` Dmitry Baryshkov
0 siblings, 1 reply; 19+ messages in thread
From: Swati Agarwal @ 2026-01-13 8:02 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Icenowy Zheng, Matthias Kaehlcke,
J . Neuschäfer, Jens Glathe, Mike Looijmans,
Catalin Popescu, Bjorn Andersson, Konrad Dybcio, Pin-yen Lin,
linux-usb, devicetree, linux-kernel, linux-arm-msm
On Sat, Dec 20, 2025 at 9:47 PM Dmitry Baryshkov
<dmitry.baryshkov@oss.qualcomm.com> wrote:
>
> On Sat, Dec 20, 2025 at 12:05:37PM +0530, Swati Agarwal wrote:
> > Enable secondary USB controller in host mode on lemans EVK Platform.
> >
> > For secondary USB Typec port, there is a genesys USB HUB GL3590 having 4
> > ports sitting in between SOC and HD3SS3220 Type-C port controller and SS
> > lines run from the SoC through the hub to the Port controller. Mark the
> > second USB controller as host only capable.
> >
> > Add 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 | 158 ++++++++++++++++++++++++
> > 1 file changed, 158 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > index 70d85b6ba772..d72639479d75 100644
> > --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > @@ -67,6 +67,47 @@ usb0_con_ss_ep: endpoint {
> > };
> > };
> >
> > + connector-1 {
> > + compatible = "usb-c-connector";
> > + label = "USB1-Type-C";
> > + data-role = "host";
> > + power-role = "dual";
> > + try-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";
> > @@ -140,6 +181,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";
> >
> > @@ -527,6 +578,33 @@ 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>;
> > + };
> > + };
> > +
> > + };
> > + };
> > +
> > };
> >
> > &i2c18 {
> > @@ -690,6 +768,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 {
> > @@ -849,6 +935,12 @@ usb_id: usb-id-state {
> > function = "gpio";
> > bias-pull-up;
> > };
> > +
> > + usb1_id: usb1-id-state {
> > + pins = "gpio51";
> > + function = "gpio";
> > + bias-pull-up;
> > + };
> > };
> >
> > &uart10 {
> > @@ -903,6 +995,72 @@ &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>;
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + ports {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + port@1 {
> > + reg = <1>;
> > +
> > + usb_hub_2_1: endpoint {
> > + remote-endpoint = <&usb1_hs_in>;
> > + };
>
> Are all other ports disconnected? If so, why do we need a hub?
Hi Dmitry,
I didn't understand your query, can you give more context to it?
Regards,
Swati
>
> > + };
> > +
> > + };
> > + };
> > +
> > + 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>;
> > + };
> > + };
> > +
> > + };
> > + };
> > +};
> > +
> > +&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
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH v3 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
2026-01-13 8:02 ` Swati Agarwal
@ 2026-01-13 11:29 ` Dmitry Baryshkov
2026-01-14 5:40 ` Swati Agarwal
0 siblings, 1 reply; 19+ messages in thread
From: Dmitry Baryshkov @ 2026-01-13 11:29 UTC (permalink / raw)
To: Swati Agarwal
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Icenowy Zheng, Matthias Kaehlcke,
J . Neuschäfer, Jens Glathe, Mike Looijmans,
Catalin Popescu, Bjorn Andersson, Konrad Dybcio, Pin-yen Lin,
linux-usb, devicetree, linux-kernel, linux-arm-msm
On Tue, Jan 13, 2026 at 01:32:41PM +0530, Swati Agarwal wrote:
> On Sat, Dec 20, 2025 at 9:47 PM Dmitry Baryshkov
> <dmitry.baryshkov@oss.qualcomm.com> wrote:
> >
> > On Sat, Dec 20, 2025 at 12:05:37PM +0530, Swati Agarwal wrote:
> > > Enable secondary USB controller in host mode on lemans EVK Platform.
> > >
> > > For secondary USB Typec port, there is a genesys USB HUB GL3590 having 4
> > > ports sitting in between SOC and HD3SS3220 Type-C port controller and SS
> > > lines run from the SoC through the hub to the Port controller. Mark the
> > > second USB controller as host only capable.
> > >
> > > Add 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 | 158 ++++++++++++++++++++++++
> > > 1 file changed, 158 insertions(+)
> > >
> > > diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > index 70d85b6ba772..d72639479d75 100644
> > > --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > @@ -67,6 +67,47 @@ usb0_con_ss_ep: endpoint {
> > > };
> > > };
> > >
> > > + connector-1 {
> > > + compatible = "usb-c-connector";
> > > + label = "USB1-Type-C";
> > > + data-role = "host";
> > > + power-role = "dual";
> > > + try-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";
> > > @@ -140,6 +181,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";
> > >
> > > @@ -527,6 +578,33 @@ 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>;
> > > + };
> > > + };
> > > +
> > > + };
> > > + };
> > > +
> > > };
> > >
> > > &i2c18 {
> > > @@ -690,6 +768,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 {
> > > @@ -849,6 +935,12 @@ usb_id: usb-id-state {
> > > function = "gpio";
> > > bias-pull-up;
> > > };
> > > +
> > > + usb1_id: usb1-id-state {
> > > + pins = "gpio51";
> > > + function = "gpio";
> > > + bias-pull-up;
> > > + };
> > > };
> > >
> > > &uart10 {
> > > @@ -903,6 +995,72 @@ &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>;
> > > + #address-cells = <1>;
> > > + #size-cells = <0>;
> > > +
> > > + ports {
> > > + #address-cells = <1>;
> > > + #size-cells = <0>;
> > > +
> > > + port@1 {
> > > + reg = <1>;
> > > +
> > > + usb_hub_2_1: endpoint {
> > > + remote-endpoint = <&usb1_hs_in>;
> > > + };
> >
> > Are all other ports disconnected? If so, why do we need a hub?
> Hi Dmitry,
> I didn't understand your query, can you give more context to it?
You have described one port of the hub. How are other ports routed? Are
they connected to outer ports? To some other devices? Unconnected?
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH v3 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
2026-01-13 11:29 ` Dmitry Baryshkov
@ 2026-01-14 5:40 ` Swati Agarwal
2026-01-14 6:09 ` Dmitry Baryshkov
0 siblings, 1 reply; 19+ messages in thread
From: Swati Agarwal @ 2026-01-14 5:40 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Icenowy Zheng, Matthias Kaehlcke,
J . Neuschäfer, Jens Glathe, Mike Looijmans,
Catalin Popescu, Bjorn Andersson, Konrad Dybcio, Pin-yen Lin,
linux-usb, devicetree, linux-kernel, linux-arm-msm
On Tue, Jan 13, 2026 at 4:59 PM Dmitry Baryshkov
<dmitry.baryshkov@oss.qualcomm.com> wrote:
>
> On Tue, Jan 13, 2026 at 01:32:41PM +0530, Swati Agarwal wrote:
> > On Sat, Dec 20, 2025 at 9:47 PM Dmitry Baryshkov
> > <dmitry.baryshkov@oss.qualcomm.com> wrote:
> > >
> > > On Sat, Dec 20, 2025 at 12:05:37PM +0530, Swati Agarwal wrote:
> > > > Enable secondary USB controller in host mode on lemans EVK Platform.
> > > >
> > > > For secondary USB Typec port, there is a genesys USB HUB GL3590 having 4
> > > > ports sitting in between SOC and HD3SS3220 Type-C port controller and SS
> > > > lines run from the SoC through the hub to the Port controller. Mark the
> > > > second USB controller as host only capable.
> > > >
> > > > Add 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 | 158 ++++++++++++++++++++++++
> > > > 1 file changed, 158 insertions(+)
> > > >
> > > > diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > index 70d85b6ba772..d72639479d75 100644
> > > > --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > @@ -67,6 +67,47 @@ usb0_con_ss_ep: endpoint {
> > > > };
> > > > };
> > > >
> > > > + connector-1 {
> > > > + compatible = "usb-c-connector";
> > > > + label = "USB1-Type-C";
> > > > + data-role = "host";
> > > > + power-role = "dual";
> > > > + try-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";
> > > > @@ -140,6 +181,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";
> > > >
> > > > @@ -527,6 +578,33 @@ 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>;
> > > > + };
> > > > + };
> > > > +
> > > > + };
> > > > + };
> > > > +
> > > > };
> > > >
> > > > &i2c18 {
> > > > @@ -690,6 +768,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 {
> > > > @@ -849,6 +935,12 @@ usb_id: usb-id-state {
> > > > function = "gpio";
> > > > bias-pull-up;
> > > > };
> > > > +
> > > > + usb1_id: usb1-id-state {
> > > > + pins = "gpio51";
> > > > + function = "gpio";
> > > > + bias-pull-up;
> > > > + };
> > > > };
> > > >
> > > > &uart10 {
> > > > @@ -903,6 +995,72 @@ &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>;
> > > > + #address-cells = <1>;
> > > > + #size-cells = <0>;
> > > > +
> > > > + ports {
> > > > + #address-cells = <1>;
> > > > + #size-cells = <0>;
> > > > +
> > > > + port@1 {
> > > > + reg = <1>;
> > > > +
> > > > + usb_hub_2_1: endpoint {
> > > > + remote-endpoint = <&usb1_hs_in>;
> > > > + };
> > >
> > > Are all other ports disconnected? If so, why do we need a hub?
> > Hi Dmitry,
> > I didn't understand your query, can you give more context to it?
>
> You have described one port of the hub. How are other ports routed? Are
> they connected to outer ports? To some other devices? Unconnected?
Hi Dmitry,
I would like to put it this way, USB HUB has 4 ports but only one port
of the hub is used between SOC and Type-C controller.
Remaining 3 ports are used by other devices.
Regards,
Swati
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH v3 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
2026-01-14 5:40 ` Swati Agarwal
@ 2026-01-14 6:09 ` Dmitry Baryshkov
2026-01-19 4:12 ` Swati Agarwal
0 siblings, 1 reply; 19+ messages in thread
From: Dmitry Baryshkov @ 2026-01-14 6:09 UTC (permalink / raw)
To: Swati Agarwal
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Icenowy Zheng, Matthias Kaehlcke,
J . Neuschäfer, Jens Glathe, Mike Looijmans,
Catalin Popescu, Bjorn Andersson, Konrad Dybcio, Pin-yen Lin,
linux-usb, devicetree, linux-kernel, linux-arm-msm
On Wed, Jan 14, 2026 at 11:10:26AM +0530, Swati Agarwal wrote:
> On Tue, Jan 13, 2026 at 4:59 PM Dmitry Baryshkov
> <dmitry.baryshkov@oss.qualcomm.com> wrote:
> >
> > On Tue, Jan 13, 2026 at 01:32:41PM +0530, Swati Agarwal wrote:
> > > On Sat, Dec 20, 2025 at 9:47 PM Dmitry Baryshkov
> > > <dmitry.baryshkov@oss.qualcomm.com> wrote:
> > > >
> > > > On Sat, Dec 20, 2025 at 12:05:37PM +0530, Swati Agarwal wrote:
> > > > > Enable secondary USB controller in host mode on lemans EVK Platform.
> > > > >
> > > > > For secondary USB Typec port, there is a genesys USB HUB GL3590 having 4
> > > > > ports sitting in between SOC and HD3SS3220 Type-C port controller and SS
> > > > > lines run from the SoC through the hub to the Port controller. Mark the
> > > > > second USB controller as host only capable.
> > > > >
> > > > > Add 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 | 158 ++++++++++++++++++++++++
> > > > > 1 file changed, 158 insertions(+)
> > > > >
> > > > > diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > > index 70d85b6ba772..d72639479d75 100644
> > > > > --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > > +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > > @@ -67,6 +67,47 @@ usb0_con_ss_ep: endpoint {
> > > > > };
> > > > > };
> > > > >
> > > > > + connector-1 {
> > > > > + compatible = "usb-c-connector";
> > > > > + label = "USB1-Type-C";
> > > > > + data-role = "host";
> > > > > + power-role = "dual";
> > > > > + try-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";
> > > > > @@ -140,6 +181,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";
> > > > >
> > > > > @@ -527,6 +578,33 @@ 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>;
> > > > > + };
> > > > > + };
> > > > > +
> > > > > + };
> > > > > + };
> > > > > +
> > > > > };
> > > > >
> > > > > &i2c18 {
> > > > > @@ -690,6 +768,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 {
> > > > > @@ -849,6 +935,12 @@ usb_id: usb-id-state {
> > > > > function = "gpio";
> > > > > bias-pull-up;
> > > > > };
> > > > > +
> > > > > + usb1_id: usb1-id-state {
> > > > > + pins = "gpio51";
> > > > > + function = "gpio";
> > > > > + bias-pull-up;
> > > > > + };
> > > > > };
> > > > >
> > > > > &uart10 {
> > > > > @@ -903,6 +995,72 @@ &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>;
> > > > > + #address-cells = <1>;
> > > > > + #size-cells = <0>;
> > > > > +
> > > > > + ports {
> > > > > + #address-cells = <1>;
> > > > > + #size-cells = <0>;
> > > > > +
> > > > > + port@1 {
> > > > > + reg = <1>;
> > > > > +
> > > > > + usb_hub_2_1: endpoint {
> > > > > + remote-endpoint = <&usb1_hs_in>;
> > > > > + };
> > > >
> > > > Are all other ports disconnected? If so, why do we need a hub?
> > > Hi Dmitry,
> > > I didn't understand your query, can you give more context to it?
> >
> > You have described one port of the hub. How are other ports routed? Are
> > they connected to outer ports? To some other devices? Unconnected?
> Hi Dmitry,
> I would like to put it this way, USB HUB has 4 ports but only one port
> of the hub is used between SOC and Type-C controller.
> Remaining 3 ports are used by other devices.
Which devices?
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH v3 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
2026-01-14 6:09 ` Dmitry Baryshkov
@ 2026-01-19 4:12 ` Swati Agarwal
2026-01-19 6:31 ` Dmitry Baryshkov
0 siblings, 1 reply; 19+ messages in thread
From: Swati Agarwal @ 2026-01-19 4:12 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Icenowy Zheng, Matthias Kaehlcke,
J . Neuschäfer, Jens Glathe, Mike Looijmans,
Catalin Popescu, Bjorn Andersson, Konrad Dybcio, Pin-yen Lin,
linux-usb, devicetree, linux-kernel, linux-arm-msm
On Wed, Jan 14, 2026 at 11:39 AM Dmitry Baryshkov
<dmitry.baryshkov@oss.qualcomm.com> wrote:
>
> On Wed, Jan 14, 2026 at 11:10:26AM +0530, Swati Agarwal wrote:
> > On Tue, Jan 13, 2026 at 4:59 PM Dmitry Baryshkov
> > <dmitry.baryshkov@oss.qualcomm.com> wrote:
> > >
> > > On Tue, Jan 13, 2026 at 01:32:41PM +0530, Swati Agarwal wrote:
> > > > On Sat, Dec 20, 2025 at 9:47 PM Dmitry Baryshkov
> > > > <dmitry.baryshkov@oss.qualcomm.com> wrote:
> > > > >
> > > > > On Sat, Dec 20, 2025 at 12:05:37PM +0530, Swati Agarwal wrote:
> > > > > > Enable secondary USB controller in host mode on lemans EVK Platform.
> > > > > >
> > > > > > For secondary USB Typec port, there is a genesys USB HUB GL3590 having 4
> > > > > > ports sitting in between SOC and HD3SS3220 Type-C port controller and SS
> > > > > > lines run from the SoC through the hub to the Port controller. Mark the
> > > > > > second USB controller as host only capable.
> > > > > >
> > > > > > Add 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 | 158 ++++++++++++++++++++++++
> > > > > > 1 file changed, 158 insertions(+)
> > > > > >
> > > > > > diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > > > index 70d85b6ba772..d72639479d75 100644
> > > > > > --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > > > +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > > > @@ -67,6 +67,47 @@ usb0_con_ss_ep: endpoint {
> > > > > > };
> > > > > > };
> > > > > >
> > > > > > + connector-1 {
> > > > > > + compatible = "usb-c-connector";
> > > > > > + label = "USB1-Type-C";
> > > > > > + data-role = "host";
> > > > > > + power-role = "dual";
> > > > > > + try-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";
> > > > > > @@ -140,6 +181,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";
> > > > > >
> > > > > > @@ -527,6 +578,33 @@ 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>;
> > > > > > + };
> > > > > > + };
> > > > > > +
> > > > > > + };
> > > > > > + };
> > > > > > +
> > > > > > };
> > > > > >
> > > > > > &i2c18 {
> > > > > > @@ -690,6 +768,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 {
> > > > > > @@ -849,6 +935,12 @@ usb_id: usb-id-state {
> > > > > > function = "gpio";
> > > > > > bias-pull-up;
> > > > > > };
> > > > > > +
> > > > > > + usb1_id: usb1-id-state {
> > > > > > + pins = "gpio51";
> > > > > > + function = "gpio";
> > > > > > + bias-pull-up;
> > > > > > + };
> > > > > > };
> > > > > >
> > > > > > &uart10 {
> > > > > > @@ -903,6 +995,72 @@ &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>;
> > > > > > + #address-cells = <1>;
> > > > > > + #size-cells = <0>;
> > > > > > +
> > > > > > + ports {
> > > > > > + #address-cells = <1>;
> > > > > > + #size-cells = <0>;
> > > > > > +
> > > > > > + port@1 {
> > > > > > + reg = <1>;
> > > > > > +
> > > > > > + usb_hub_2_1: endpoint {
> > > > > > + remote-endpoint = <&usb1_hs_in>;
> > > > > > + };
> > > > >
> > > > > Are all other ports disconnected? If so, why do we need a hub?
> > > > Hi Dmitry,
> > > > I didn't understand your query, can you give more context to it?
> > >
> > > You have described one port of the hub. How are other ports routed? Are
> > > they connected to outer ports? To some other devices? Unconnected?
> > Hi Dmitry,
> > I would like to put it this way, USB HUB has 4 ports but only one port
> > of the hub is used between SOC and Type-C controller.
> > Remaining 3 ports are used by other devices.
>
> Which devices?
Hi Dmitry,
For Lemans EVK standalone corekit board, there are 4 ports as follows:-
1) p1 is connected to type c port controller.
2) p4 is used for the m.2 E key (NFA765 Bluetooth) on corekit. This
isn't used on a standard core kit, only if we optionally replace the
wifi card with the NFA765 which uses USB for BT. standard kits all use
UART for BT.
Remaining 2 ports will become functional when the interface plus
mezzanine is stacked on top of corekit.
3) p2 is connected to another hub which is present on the mezz through
which 4 type-A ports are connected.
4) p3 is used for the m.2 B key for a 5G card when the mezz is connected.
Regards,
Swati
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH v3 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
2026-01-19 4:12 ` Swati Agarwal
@ 2026-01-19 6:31 ` Dmitry Baryshkov
2026-01-19 7:36 ` Krishna Kurapati
0 siblings, 1 reply; 19+ messages in thread
From: Dmitry Baryshkov @ 2026-01-19 6:31 UTC (permalink / raw)
To: Swati Agarwal
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Icenowy Zheng, Matthias Kaehlcke,
J . Neuschäfer, Jens Glathe, Mike Looijmans,
Catalin Popescu, Bjorn Andersson, Konrad Dybcio, Pin-yen Lin,
linux-usb, devicetree, linux-kernel, linux-arm-msm
On Mon, Jan 19, 2026 at 09:42:03AM +0530, Swati Agarwal wrote:
> On Wed, Jan 14, 2026 at 11:39 AM Dmitry Baryshkov
> <dmitry.baryshkov@oss.qualcomm.com> wrote:
> >
> > On Wed, Jan 14, 2026 at 11:10:26AM +0530, Swati Agarwal wrote:
> > > On Tue, Jan 13, 2026 at 4:59 PM Dmitry Baryshkov
> > > <dmitry.baryshkov@oss.qualcomm.com> wrote:
> > > >
> > > > On Tue, Jan 13, 2026 at 01:32:41PM +0530, Swati Agarwal wrote:
> > > > > On Sat, Dec 20, 2025 at 9:47 PM Dmitry Baryshkov
> > > > > <dmitry.baryshkov@oss.qualcomm.com> wrote:
> > > > > >
> > > > > > On Sat, Dec 20, 2025 at 12:05:37PM +0530, Swati Agarwal wrote:
> > > > > > > Enable secondary USB controller in host mode on lemans EVK Platform.
> > > > > > >
> > > > > > > For secondary USB Typec port, there is a genesys USB HUB GL3590 having 4
> > > > > > > ports sitting in between SOC and HD3SS3220 Type-C port controller and SS
> > > > > > > lines run from the SoC through the hub to the Port controller. Mark the
> > > > > > > second USB controller as host only capable.
> > > > > > >
> > > > > > > Add 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 | 158 ++++++++++++++++++++++++
> > > > > > > 1 file changed, 158 insertions(+)
> > > > > > >
> > > > > > > diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > > > > index 70d85b6ba772..d72639479d75 100644
> > > > > > > --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > > > > +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > > > > > > @@ -67,6 +67,47 @@ usb0_con_ss_ep: endpoint {
> > > > > > > };
> > > > > > > };
> > > > > > >
> > > > > > > + connector-1 {
> > > > > > > + compatible = "usb-c-connector";
> > > > > > > + label = "USB1-Type-C";
> > > > > > > + data-role = "host";
> > > > > > > + power-role = "dual";
> > > > > > > + try-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";
> > > > > > > @@ -140,6 +181,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";
> > > > > > >
> > > > > > > @@ -527,6 +578,33 @@ 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>;
> > > > > > > + };
> > > > > > > + };
> > > > > > > +
> > > > > > > + };
> > > > > > > + };
> > > > > > > +
> > > > > > > };
> > > > > > >
> > > > > > > &i2c18 {
> > > > > > > @@ -690,6 +768,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 {
> > > > > > > @@ -849,6 +935,12 @@ usb_id: usb-id-state {
> > > > > > > function = "gpio";
> > > > > > > bias-pull-up;
> > > > > > > };
> > > > > > > +
> > > > > > > + usb1_id: usb1-id-state {
> > > > > > > + pins = "gpio51";
> > > > > > > + function = "gpio";
> > > > > > > + bias-pull-up;
> > > > > > > + };
> > > > > > > };
> > > > > > >
> > > > > > > &uart10 {
> > > > > > > @@ -903,6 +995,72 @@ &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>;
> > > > > > > + #address-cells = <1>;
> > > > > > > + #size-cells = <0>;
> > > > > > > +
> > > > > > > + ports {
> > > > > > > + #address-cells = <1>;
> > > > > > > + #size-cells = <0>;
> > > > > > > +
> > > > > > > + port@1 {
> > > > > > > + reg = <1>;
> > > > > > > +
> > > > > > > + usb_hub_2_1: endpoint {
> > > > > > > + remote-endpoint = <&usb1_hs_in>;
> > > > > > > + };
> > > > > >
> > > > > > Are all other ports disconnected? If so, why do we need a hub?
> > > > > Hi Dmitry,
> > > > > I didn't understand your query, can you give more context to it?
> > > >
> > > > You have described one port of the hub. How are other ports routed? Are
> > > > they connected to outer ports? To some other devices? Unconnected?
> > > Hi Dmitry,
> > > I would like to put it this way, USB HUB has 4 ports but only one port
> > > of the hub is used between SOC and Type-C controller.
> > > Remaining 3 ports are used by other devices.
> >
> > Which devices?
> Hi Dmitry,
>
> For Lemans EVK standalone corekit board, there are 4 ports as follows:-
>
> 1) p1 is connected to type c port controller.
> 2) p4 is used for the m.2 E key (NFA765 Bluetooth) on corekit. This
> isn't used on a standard core kit, only if we optionally replace the
> wifi card with the NFA765 which uses USB for BT. standard kits all use
> UART for BT.
Nice. Hopefully Mani patches will be landed soon and we can describe
this one properly.
>
> Remaining 2 ports will become functional when the interface plus
> mezzanine is stacked on top of corekit.
>
> 3) p2 is connected to another hub which is present on the mezz through
> which 4 type-A ports are connected.
> 4) p3 is used for the m.2 B key for a 5G card when the mezz is connected.
Please add a comment for these two, e.g. routed to the connector ABCDEF.
>
>
> Regards,
> Swati
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH v3 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
2026-01-19 6:31 ` Dmitry Baryshkov
@ 2026-01-19 7:36 ` Krishna Kurapati
2026-01-19 7:43 ` Dmitry Baryshkov
0 siblings, 1 reply; 19+ messages in thread
From: Krishna Kurapati @ 2026-01-19 7:36 UTC (permalink / raw)
To: Dmitry Baryshkov, Swati Agarwal
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Icenowy Zheng, Matthias Kaehlcke,
J. Neuschäfer, Jens Glathe, Mike Looijmans, Catalin Popescu,
Bjorn Andersson, Konrad Dybcio, Pin-yen Lin, linux-usb,
devicetree, linux-kernel, linux-arm-msm
On 1/19/2026 12:01 PM, Dmitry Baryshkov wrote:
> On Mon, Jan 19, 2026 at 09:42:03AM +0530, Swati Agarwal wrote:
>> On Wed, Jan 14, 2026 at 11:39 AM Dmitry Baryshkov
>> <dmitry.baryshkov@oss.qualcomm.com> wrote:
>>>
>>> On Wed, Jan 14, 2026 at 11:10:26AM +0530, Swati Agarwal wrote:
>>>> On Tue, Jan 13, 2026 at 4:59 PM Dmitry Baryshkov
>>>> <dmitry.baryshkov@oss.qualcomm.com> wrote:
>>>>>
>>>>> On Tue, Jan 13, 2026 at 01:32:41PM +0530, Swati Agarwal wrote:
>>>>>> On Sat, Dec 20, 2025 at 9:47 PM Dmitry Baryshkov
>>>>>> <dmitry.baryshkov@oss.qualcomm.com> wrote:
>>>>>>>
>>>>>>> On Sat, Dec 20, 2025 at 12:05:37PM +0530, Swati Agarwal wrote:
>>>>>>>> Enable secondary USB controller in host mode on lemans EVK Platform.
>>>>>>>>
>>>>>>>> For secondary USB Typec port, there is a genesys USB HUB GL3590 having 4
>>>>>>>> ports sitting in between SOC and HD3SS3220 Type-C port controller and SS
>>>>>>>> lines run from the SoC through the hub to the Port controller. Mark the
>>>>>>>> second USB controller as host only capable.
>>>>>>>>
>>>>>>>> Add HD3SS3220 Type-C port controller along with Type-c connector for
>>>>>>>> controlling vbus supply.
>>>>>>>>
>>>>>>>> Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
>>>>>>>> ---
[...]
>>>>>>>> +&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>;
>>>>>>>> + #address-cells = <1>;
>>>>>>>> + #size-cells = <0>;
>>>>>>>> +
>>>>>>>> + ports {
>>>>>>>> + #address-cells = <1>;
>>>>>>>> + #size-cells = <0>;
>>>>>>>> +
>>>>>>>> + port@1 {
>>>>>>>> + reg = <1>;
>>>>>>>> +
>>>>>>>> + usb_hub_2_1: endpoint {
>>>>>>>> + remote-endpoint = <&usb1_hs_in>;
>>>>>>>> + };
>>>>>>>
>>>>>>> Are all other ports disconnected? If so, why do we need a hub?
>>>>>> Hi Dmitry,
>>>>>> I didn't understand your query, can you give more context to it?
>>>>>
>>>>> You have described one port of the hub. How are other ports routed? Are
>>>>> they connected to outer ports? To some other devices? Unconnected?
>>>> Hi Dmitry,
>>>> I would like to put it this way, USB HUB has 4 ports but only one port
>>>> of the hub is used between SOC and Type-C controller.
>>>> Remaining 3 ports are used by other devices.
>>>
>>> Which devices?
>> Hi Dmitry,
>>
>> For Lemans EVK standalone corekit board, there are 4 ports as follows:-
>>
>> 1) p1 is connected to type c port controller.
>> 2) p4 is used for the m.2 E key (NFA765 Bluetooth) on corekit. This
>> isn't used on a standard core kit, only if we optionally replace the
>> wifi card with the NFA765 which uses USB for BT. standard kits all use
>> UART for BT.
>
> Nice. Hopefully Mani patches will be landed soon and we can describe
> this one properly.
>
>>
>> Remaining 2 ports will become functional when the interface plus
>> mezzanine is stacked on top of corekit.
>>
>> 3) p2 is connected to another hub which is present on the mezz through
>> which 4 type-A ports are connected.
>> 4) p3 is used for the m.2 B key for a 5G card when the mezz is connected.
>
> Please add a comment for these two, e.g. routed to the connector ABCDEF.
>
Hi Dmitry,
Thanks for the review. Can we send v4 with the following changes:
Add 4 ports each to hs and ss hub nodes and link the first port to
Type-C connector and add comments for the other 3 ports. When M.2 E
conncetor comes up, we can link the second port to it in a different patch.
Let me know if the above is reasonable.
Regards,
Krishna,
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH v3 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
2026-01-19 7:36 ` Krishna Kurapati
@ 2026-01-19 7:43 ` Dmitry Baryshkov
0 siblings, 0 replies; 19+ messages in thread
From: Dmitry Baryshkov @ 2026-01-19 7:43 UTC (permalink / raw)
To: Krishna Kurapati
Cc: Swati Agarwal, Greg Kroah-Hartman, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Icenowy Zheng,
Matthias Kaehlcke, J. Neuschäfer, Jens Glathe,
Mike Looijmans, Catalin Popescu, Bjorn Andersson, Konrad Dybcio,
Pin-yen Lin, linux-usb, devicetree, linux-kernel, linux-arm-msm
On Mon, Jan 19, 2026 at 01:06:28PM +0530, Krishna Kurapati wrote:
>
>
> On 1/19/2026 12:01 PM, Dmitry Baryshkov wrote:
> > On Mon, Jan 19, 2026 at 09:42:03AM +0530, Swati Agarwal wrote:
> > > On Wed, Jan 14, 2026 at 11:39 AM Dmitry Baryshkov
> > > <dmitry.baryshkov@oss.qualcomm.com> wrote:
> > > >
> > > > On Wed, Jan 14, 2026 at 11:10:26AM +0530, Swati Agarwal wrote:
> > > > > On Tue, Jan 13, 2026 at 4:59 PM Dmitry Baryshkov
> > > > > <dmitry.baryshkov@oss.qualcomm.com> wrote:
> > > > > >
> > > > > > On Tue, Jan 13, 2026 at 01:32:41PM +0530, Swati Agarwal wrote:
> > > > > > > On Sat, Dec 20, 2025 at 9:47 PM Dmitry Baryshkov
> > > > > > > <dmitry.baryshkov@oss.qualcomm.com> wrote:
> > > > > > > >
> > > > > > > > On Sat, Dec 20, 2025 at 12:05:37PM +0530, Swati Agarwal wrote:
> > > > > > > > > Enable secondary USB controller in host mode on lemans EVK Platform.
> > > > > > > > >
> > > > > > > > > For secondary USB Typec port, there is a genesys USB HUB GL3590 having 4
> > > > > > > > > ports sitting in between SOC and HD3SS3220 Type-C port controller and SS
> > > > > > > > > lines run from the SoC through the hub to the Port controller. Mark the
> > > > > > > > > second USB controller as host only capable.
> > > > > > > > >
> > > > > > > > > Add HD3SS3220 Type-C port controller along with Type-c connector for
> > > > > > > > > controlling vbus supply.
> > > > > > > > >
> > > > > > > > > Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> > > > > > > > > ---
>
> [...]
>
> > > > > > > > > +&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>;
> > > > > > > > > + #address-cells = <1>;
> > > > > > > > > + #size-cells = <0>;
> > > > > > > > > +
> > > > > > > > > + ports {
> > > > > > > > > + #address-cells = <1>;
> > > > > > > > > + #size-cells = <0>;
> > > > > > > > > +
> > > > > > > > > + port@1 {
> > > > > > > > > + reg = <1>;
> > > > > > > > > +
> > > > > > > > > + usb_hub_2_1: endpoint {
> > > > > > > > > + remote-endpoint = <&usb1_hs_in>;
> > > > > > > > > + };
> > > > > > > >
> > > > > > > > Are all other ports disconnected? If so, why do we need a hub?
> > > > > > > Hi Dmitry,
> > > > > > > I didn't understand your query, can you give more context to it?
> > > > > >
> > > > > > You have described one port of the hub. How are other ports routed? Are
> > > > > > they connected to outer ports? To some other devices? Unconnected?
> > > > > Hi Dmitry,
> > > > > I would like to put it this way, USB HUB has 4 ports but only one port
> > > > > of the hub is used between SOC and Type-C controller.
> > > > > Remaining 3 ports are used by other devices.
> > > >
> > > > Which devices?
> > > Hi Dmitry,
> > >
> > > For Lemans EVK standalone corekit board, there are 4 ports as follows:-
> > >
> > > 1) p1 is connected to type c port controller.
> > > 2) p4 is used for the m.2 E key (NFA765 Bluetooth) on corekit. This
> > > isn't used on a standard core kit, only if we optionally replace the
> > > wifi card with the NFA765 which uses USB for BT. standard kits all use
> > > UART for BT.
> >
> > Nice. Hopefully Mani patches will be landed soon and we can describe
> > this one properly.
> >
> > >
> > > Remaining 2 ports will become functional when the interface plus
> > > mezzanine is stacked on top of corekit.
> > >
> > > 3) p2 is connected to another hub which is present on the mezz through
> > > which 4 type-A ports are connected.
> > > 4) p3 is used for the m.2 B key for a 5G card when the mezz is connected.
> >
> > Please add a comment for these two, e.g. routed to the connector ABCDEF.
> >
>
> Hi Dmitry,
>
> Thanks for the review. Can we send v4 with the following changes:
>
> Add 4 ports each to hs and ss hub nodes and link the first port to Type-C
> connector and add comments for the other 3 ports. When M.2 E conncetor comes
> up, we can link the second port to it in a different patch.
Sounds perfect, thank you!
>
> Let me know if the above is reasonable.
>
> Regards,
> Krishna,
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v3 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
2025-12-20 6:35 ` [PATCH v3 4/4] arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode Swati Agarwal
2025-12-20 16:17 ` Dmitry Baryshkov
@ 2025-12-22 10:19 ` Konrad Dybcio
1 sibling, 0 replies; 19+ messages in thread
From: Konrad Dybcio @ 2025-12-22 10:19 UTC (permalink / raw)
To: Swati Agarwal, Greg Kroah-Hartman, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Icenowy Zheng,
Matthias Kaehlcke, J . Neuschäfer, Dmitry Baryshkov,
Jens Glathe, Mike Looijmans, Catalin Popescu, Bjorn Andersson,
Konrad Dybcio, Pin-yen Lin
Cc: linux-usb, devicetree, linux-kernel, linux-arm-msm
On 12/20/25 7:35 AM, Swati Agarwal wrote:
> Enable secondary USB controller in host mode on lemans EVK Platform.
>
> For secondary USB Typec port, there is a genesys USB HUB GL3590 having 4
> ports sitting in between SOC and HD3SS3220 Type-C port controller and SS
> lines run from the SoC through the hub to the Port controller. Mark the
> second USB controller as host only capable.
>
> Add HD3SS3220 Type-C port controller along with Type-c connector for
> controlling vbus supply.
>
> Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> ---
[...]
> + connector-1 {
> + compatible = "usb-c-connector";
> + label = "USB1-Type-C";
> + data-role = "host";
> + power-role = "dual";
> + try-power-role = "source";
Is this port actually capable of receiving power (i.e. won't that
fry the hub)?
[...]
> + port@2 {
> + reg = <2>;
> +
> + usb1_ss_in: endpoint {
> + remote-endpoint = <&usb_hub_3_1>;
> + };
> +
> + };
Stray \n above
[...]
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + hd3ss3220_1_in_ep: endpoint {
> + remote-endpoint = <&usb1_con_ss_ep>;
> + };
> + };
> +
> + };
Stray \n above
[...]
> + usb_hub_3_1: endpoint {
> + remote-endpoint = <&usb1_ss_in>;
> + };
> + };
> +
> + };
Stray \n above
Konrad
^ permalink raw reply [flat|nested] 19+ messages in thread