* [PATCH RFC] arm64: dts: qcom: qcs6490-rb3gen2: Enable uPD720201 and GL3590
@ 2026-02-12 20:43 Bjorn Andersson
2026-02-13 1:45 ` Manivannan Sadhasivam
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Bjorn Andersson @ 2026-02-12 20:43 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Manivannan Sadhasivam
Cc: linux-arm-msm, devicetree, linux-kernel, Neil Armstrong,
Dmitry Baryshkov, Bjorn Andersson
The QCS6490 Rb3Gen2 has a Renesas μPD720201 XHCI controller hanging off
the TC9563 PCIe switch, on this a Genesys Logic GL3590 USB hub provides
two USB Type-A ports and an ASIX AX88179 USB 3.0 Gigabit Ethernet
interface.
The Renesas chip is powered by two regulators controlled through PM7250B
GPIOs 1 and 4, and the power/reset pin is pulled down by PM8350C GPIO 4.
The Genesys chip power is always-on, but the reset pin is controlled
through TLMM GPIO 162.
Describe the Renesas chip on the PCIe bus, with supplies and reset, to
allow it to be brought out of reset and discovered. Then describe the
two peers of the USB hub, with its reset GPIO, to allow this to be
brought out of reset.
The USB Type-A connectors are not described, as they are in no regard
controlled by the operating system.
Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
---
Posting this as a RFC, because it doesn't work without some hacks in the
PCI pwrctrl code. It depends on Neil's work for μPD720201 pwrctrl [1],
on the GL3590 work by Swati and Krisha [2], and my regulator fix [3].
With these three dependencies, the hacks in drivers/pci/pwrctrl/core.c,
and firmware for the μPD720201, the primary ethernet lights up.
Then in pci_pwrctrl_create_device() we assume that anything in a PCI
device node, with either a -supply or port/ports property, should be a
platform_device. When the USB bus(es) of the μPD720201 shows up, it
again registers this platform_device. It seems that
of_platform_device_create() saves us and does an early exit, but by
"accident".
__pci_pwrctrl_power_on_device() and __pci_pwrctrl_power_off_device() on
the other hand, they happily pick up the non-NULL drvdata, which is of
type struct onboard_dev, to call the power_on() and power_off() methods.
It's not clear to me why the whole board resets at this point, but I
don't think we can assume that any random platform_device we find at any
level below the PCIe bus has a drvdata of type struct pci_pwrctrl...
[1] https://lore.kernel.org/all/20260206-topic-sm8650-ayaneo-pocket-s2-base-v3-0-5b79c5d61a03@linaro.org/
[2] https://lore.kernel.org/all/20260122092852.887624-1-swati.agarwal@oss.qualcomm.com/
[3] https://lore.kernel.org/linux-arm-msm/177091226767.237262.6699917364293122804.b4-ty@kernel.org/T/#t
---
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 94 ++++++++++++++++++++++++++++
1 file changed, 94 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
index e3d2f01881ae05f17796f9c97f10b53cea50daff..e8d3588e67d0386150258d0bc28b4c6200920067 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
@@ -262,6 +262,28 @@ active-config0 {
};
};
+ vreg_pcie0_1p05: regulator-pcie0-1p05v {
+ compatible = "regulator-fixed";
+ regulator-name = "PCIE0_1.05V";
+ gpio = <&pm7250b_gpios 4 GPIO_ACTIVE_HIGH>;
+ regulator-min-microvolt = <1050000>;
+ regulator-max-microvolt = <1050000>;
+ enable-active-high;
+ pinctrl-0 = <&upd_pwr_en2_state>;
+ pinctrl-names = "default";
+ };
+
+ vreg_pcie0_3p3: regulator-pcie0-3p3v-dual {
+ compatible = "regulator-fixed";
+ regulator-name = "PCIE0_3.3V_Dual";
+ gpio = <&pm7250b_gpios 1 GPIO_ACTIVE_HIGH>;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ enable-active-high;
+ pinctrl-0 = <&upd_pwr_en1_state>;
+ pinctrl-names = "default";
+ };
+
vdd_ntn_0p9: regulator-vdd-ntn-0p9 {
compatible = "regulator-fixed";
regulator-name = "VDD_NTN_0P9";
@@ -870,6 +892,41 @@ pcie@2,0 {
device_type = "pci";
ranges;
bus-range = <0x4 0xff>;
+
+ /* Renesas μPD720201 PCIe USB3.0 Host Controller */
+ usb-controller@0,0 {
+ compatible = "pci1912,0014";
+ reg = <0x40000 0x0 0x0 0x0 0x0>;
+
+ avdd33-supply = <&vreg_pcie0_3p3>;
+ vdd10-supply = <&vreg_pcie0_1p05>;
+ vdd33-supply = <&vreg_pcie0_3p3>;
+
+ pinctrl-0 = <&upd_hub_rst_state>;
+ pinctrl-names = "default";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* Genesys Logic GL3590 USB Hub Controller */
+ gl3590_2_0: hub@1 {
+ compatible = "usb5e3,610";
+ reg = <1>;
+ reset-gpios = <&tlmm 162 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&usb_hub_reset_state>;
+ pinctrl-names = "default";
+
+ peer-hub = <&gl3590_3_0>;
+ };
+
+ gl3590_3_0: hub@2 {
+ compatible = "usb5e3,625";
+ reg = <2>;
+
+ peer-hub = <&gl3590_2_0>;
+ };
+ };
};
pcie@3,0 {
@@ -1198,6 +1255,17 @@ ntn_1p8_en: ntn-1p8-en-state {
power-source = <0>;
};
+ upd_hub_rst_state: upd-hub-rst-state {
+ pins = "gpio4";
+ function = "normal";
+
+ bias-disable;
+ input-disable;
+ output-enable;
+ output-high;
+ power-source = <0>;
+ };
+
tc9563_resx_n: tc9563-resx-state {
pins = "gpio1";
function = "normal";
@@ -1378,6 +1446,15 @@ &edp_hot_plug_det {
};
&pm7250b_gpios {
+ upd_pwr_en1_state: upd-pwr-en1-state {
+ pins = "gpio1";
+ function = "normal";
+
+ output-enable;
+ input-disable;
+ power-source = <0>;
+ };
+
lt9611_rst_pin: lt9611-rst-state {
pins = "gpio2";
function = "normal";
@@ -1386,6 +1463,15 @@ lt9611_rst_pin: lt9611-rst-state {
input-disable;
power-source = <0>;
};
+
+ upd_pwr_en2_state: upd-pwr-en2-state {
+ pins = "gpio4";
+ function = "normal";
+
+ output-enable;
+ input-disable;
+ power-source = <0>;
+ };
};
&sdc2_clk {
@@ -1431,6 +1517,14 @@ sd_cd: sd-cd-state {
function = "gpio";
bias-pull-up;
};
+
+ usb_hub_reset_state: usb-hub-reset-state {
+ pins = "gpio162";
+ function = "gpio";
+
+ drive-strength = <2>;
+ bias-disable;
+ };
};
&lpass_audiocc {
---
base-commit: fd9678829d6dd0c10fde080b536abf4b1121c346
change-id: 20260212-rb3gen2-upd-gl3590-d110dd722e1b
Best regards,
--
Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH RFC] arm64: dts: qcom: qcs6490-rb3gen2: Enable uPD720201 and GL3590
2026-02-12 20:43 [PATCH RFC] arm64: dts: qcom: qcs6490-rb3gen2: Enable uPD720201 and GL3590 Bjorn Andersson
@ 2026-02-13 1:45 ` Manivannan Sadhasivam
2026-02-16 12:48 ` Konrad Dybcio
2026-02-24 7:52 ` Dmitry Baryshkov
2 siblings, 0 replies; 6+ messages in thread
From: Manivannan Sadhasivam @ 2026-02-13 1:45 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-arm-msm, devicetree, linux-kernel,
Neil Armstrong, Dmitry Baryshkov
On Thu, Feb 12, 2026 at 02:43:46PM -0600, Bjorn Andersson wrote:
> The QCS6490 Rb3Gen2 has a Renesas μPD720201 XHCI controller hanging off
> the TC9563 PCIe switch, on this a Genesys Logic GL3590 USB hub provides
> two USB Type-A ports and an ASIX AX88179 USB 3.0 Gigabit Ethernet
> interface.
>
> The Renesas chip is powered by two regulators controlled through PM7250B
> GPIOs 1 and 4, and the power/reset pin is pulled down by PM8350C GPIO 4.
> The Genesys chip power is always-on, but the reset pin is controlled
> through TLMM GPIO 162.
>
> Describe the Renesas chip on the PCIe bus, with supplies and reset, to
> allow it to be brought out of reset and discovered. Then describe the
> two peers of the USB hub, with its reset GPIO, to allow this to be
> brought out of reset.
>
> The USB Type-A connectors are not described, as they are in no regard
> controlled by the operating system.
>
> Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
> ---
> Posting this as a RFC, because it doesn't work without some hacks in the
> PCI pwrctrl code. It depends on Neil's work for μPD720201 pwrctrl [1],
> on the GL3590 work by Swati and Krisha [2], and my regulator fix [3].
> With these three dependencies, the hacks in drivers/pci/pwrctrl/core.c,
> and firmware for the μPD720201, the primary ethernet lights up.
>
> Then in pci_pwrctrl_create_device() we assume that anything in a PCI
> device node, with either a -supply or port/ports property, should be a
> platform_device. When the USB bus(es) of the μPD720201 shows up, it
> again registers this platform_device. It seems that
> of_platform_device_create() saves us and does an early exit, but by
> "accident".
>
I agree that this is an issue, probably an overlook on my part assuming that
every child node of the Root Port is a PCIe node. I should add a check for
the 'device_type' property before we even check for the existence of the
supply/graph properties.
I was notified of an internal regression as well with graph port check. So I'll
send both fixes in a single series.
- Mani
> __pci_pwrctrl_power_on_device() and __pci_pwrctrl_power_off_device() on
> the other hand, they happily pick up the non-NULL drvdata, which is of
> type struct onboard_dev, to call the power_on() and power_off() methods.
>
> It's not clear to me why the whole board resets at this point, but I
> don't think we can assume that any random platform_device we find at any
> level below the PCIe bus has a drvdata of type struct pci_pwrctrl...
>
> [1] https://lore.kernel.org/all/20260206-topic-sm8650-ayaneo-pocket-s2-base-v3-0-5b79c5d61a03@linaro.org/
> [2] https://lore.kernel.org/all/20260122092852.887624-1-swati.agarwal@oss.qualcomm.com/
> [3] https://lore.kernel.org/linux-arm-msm/177091226767.237262.6699917364293122804.b4-ty@kernel.org/T/#t
> ---
> arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 94 ++++++++++++++++++++++++++++
> 1 file changed, 94 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> index e3d2f01881ae05f17796f9c97f10b53cea50daff..e8d3588e67d0386150258d0bc28b4c6200920067 100644
> --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> @@ -262,6 +262,28 @@ active-config0 {
> };
> };
>
> + vreg_pcie0_1p05: regulator-pcie0-1p05v {
> + compatible = "regulator-fixed";
> + regulator-name = "PCIE0_1.05V";
> + gpio = <&pm7250b_gpios 4 GPIO_ACTIVE_HIGH>;
> + regulator-min-microvolt = <1050000>;
> + regulator-max-microvolt = <1050000>;
> + enable-active-high;
> + pinctrl-0 = <&upd_pwr_en2_state>;
> + pinctrl-names = "default";
> + };
> +
> + vreg_pcie0_3p3: regulator-pcie0-3p3v-dual {
> + compatible = "regulator-fixed";
> + regulator-name = "PCIE0_3.3V_Dual";
> + gpio = <&pm7250b_gpios 1 GPIO_ACTIVE_HIGH>;
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + enable-active-high;
> + pinctrl-0 = <&upd_pwr_en1_state>;
> + pinctrl-names = "default";
> + };
> +
> vdd_ntn_0p9: regulator-vdd-ntn-0p9 {
> compatible = "regulator-fixed";
> regulator-name = "VDD_NTN_0P9";
> @@ -870,6 +892,41 @@ pcie@2,0 {
> device_type = "pci";
> ranges;
> bus-range = <0x4 0xff>;
> +
> + /* Renesas μPD720201 PCIe USB3.0 Host Controller */
> + usb-controller@0,0 {
> + compatible = "pci1912,0014";
> + reg = <0x40000 0x0 0x0 0x0 0x0>;
> +
> + avdd33-supply = <&vreg_pcie0_3p3>;
> + vdd10-supply = <&vreg_pcie0_1p05>;
> + vdd33-supply = <&vreg_pcie0_3p3>;
> +
> + pinctrl-0 = <&upd_hub_rst_state>;
> + pinctrl-names = "default";
> +
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + /* Genesys Logic GL3590 USB Hub Controller */
> + gl3590_2_0: hub@1 {
> + compatible = "usb5e3,610";
> + reg = <1>;
> + reset-gpios = <&tlmm 162 GPIO_ACTIVE_HIGH>;
> +
> + pinctrl-0 = <&usb_hub_reset_state>;
> + pinctrl-names = "default";
> +
> + peer-hub = <&gl3590_3_0>;
> + };
> +
> + gl3590_3_0: hub@2 {
> + compatible = "usb5e3,625";
> + reg = <2>;
> +
> + peer-hub = <&gl3590_2_0>;
> + };
> + };
> };
>
> pcie@3,0 {
> @@ -1198,6 +1255,17 @@ ntn_1p8_en: ntn-1p8-en-state {
> power-source = <0>;
> };
>
> + upd_hub_rst_state: upd-hub-rst-state {
> + pins = "gpio4";
> + function = "normal";
> +
> + bias-disable;
> + input-disable;
> + output-enable;
> + output-high;
> + power-source = <0>;
> + };
> +
> tc9563_resx_n: tc9563-resx-state {
> pins = "gpio1";
> function = "normal";
> @@ -1378,6 +1446,15 @@ &edp_hot_plug_det {
> };
>
> &pm7250b_gpios {
> + upd_pwr_en1_state: upd-pwr-en1-state {
> + pins = "gpio1";
> + function = "normal";
> +
> + output-enable;
> + input-disable;
> + power-source = <0>;
> + };
> +
> lt9611_rst_pin: lt9611-rst-state {
> pins = "gpio2";
> function = "normal";
> @@ -1386,6 +1463,15 @@ lt9611_rst_pin: lt9611-rst-state {
> input-disable;
> power-source = <0>;
> };
> +
> + upd_pwr_en2_state: upd-pwr-en2-state {
> + pins = "gpio4";
> + function = "normal";
> +
> + output-enable;
> + input-disable;
> + power-source = <0>;
> + };
> };
>
> &sdc2_clk {
> @@ -1431,6 +1517,14 @@ sd_cd: sd-cd-state {
> function = "gpio";
> bias-pull-up;
> };
> +
> + usb_hub_reset_state: usb-hub-reset-state {
> + pins = "gpio162";
> + function = "gpio";
> +
> + drive-strength = <2>;
> + bias-disable;
> + };
> };
>
> &lpass_audiocc {
>
> ---
> base-commit: fd9678829d6dd0c10fde080b536abf4b1121c346
> change-id: 20260212-rb3gen2-upd-gl3590-d110dd722e1b
>
> Best regards,
> --
> Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
>
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH RFC] arm64: dts: qcom: qcs6490-rb3gen2: Enable uPD720201 and GL3590
2026-02-12 20:43 [PATCH RFC] arm64: dts: qcom: qcs6490-rb3gen2: Enable uPD720201 and GL3590 Bjorn Andersson
2026-02-13 1:45 ` Manivannan Sadhasivam
@ 2026-02-16 12:48 ` Konrad Dybcio
2026-02-24 7:52 ` Dmitry Baryshkov
2 siblings, 0 replies; 6+ messages in thread
From: Konrad Dybcio @ 2026-02-16 12:48 UTC (permalink / raw)
To: Bjorn Andersson, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Manivannan Sadhasivam
Cc: linux-arm-msm, devicetree, linux-kernel, Neil Armstrong,
Dmitry Baryshkov
On 2/12/26 9:43 PM, Bjorn Andersson wrote:
> The QCS6490 Rb3Gen2 has a Renesas μPD720201 XHCI controller hanging off
> the TC9563 PCIe switch, on this a Genesys Logic GL3590 USB hub provides
> two USB Type-A ports and an ASIX AX88179 USB 3.0 Gigabit Ethernet
> interface.
>
> The Renesas chip is powered by two regulators controlled through PM7250B
> GPIOs 1 and 4, and the power/reset pin is pulled down by PM8350C GPIO 4.
> The Genesys chip power is always-on, but the reset pin is controlled
> through TLMM GPIO 162.
>
> Describe the Renesas chip on the PCIe bus, with supplies and reset, to
> allow it to be brought out of reset and discovered. Then describe the
> two peers of the USB hub, with its reset GPIO, to allow this to be
> brought out of reset.
>
> The USB Type-A connectors are not described, as they are in no regard
> controlled by the operating system.
Nice, for a change ;)
[...]
> +
> + usb_hub_reset_state: usb-hub-reset-state {
> + pins = "gpio162";
> + function = "gpio";
> +
> + drive-strength = <2>;
> + bias-disable;
Straying away from the main topic, I find these newlines in the middle
excessive
Konrad
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH RFC] arm64: dts: qcom: qcs6490-rb3gen2: Enable uPD720201 and GL3590
2026-02-12 20:43 [PATCH RFC] arm64: dts: qcom: qcs6490-rb3gen2: Enable uPD720201 and GL3590 Bjorn Andersson
2026-02-13 1:45 ` Manivannan Sadhasivam
2026-02-16 12:48 ` Konrad Dybcio
@ 2026-02-24 7:52 ` Dmitry Baryshkov
2026-02-25 3:40 ` Bjorn Andersson
2 siblings, 1 reply; 6+ messages in thread
From: Dmitry Baryshkov @ 2026-02-24 7:52 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Manivannan Sadhasivam, linux-arm-msm, devicetree,
linux-kernel, Neil Armstrong
On Thu, Feb 12, 2026 at 02:43:46PM -0600, Bjorn Andersson wrote:
> The QCS6490 Rb3Gen2 has a Renesas μPD720201 XHCI controller hanging off
> the TC9563 PCIe switch, on this a Genesys Logic GL3590 USB hub provides
> two USB Type-A ports and an ASIX AX88179 USB 3.0 Gigabit Ethernet
> interface.
>
> The Renesas chip is powered by two regulators controlled through PM7250B
> GPIOs 1 and 4, and the power/reset pin is pulled down by PM8350C GPIO 4.
> The Genesys chip power is always-on, but the reset pin is controlled
> through TLMM GPIO 162.
>
> Describe the Renesas chip on the PCIe bus, with supplies and reset, to
> allow it to be brought out of reset and discovered. Then describe the
> two peers of the USB hub, with its reset GPIO, to allow this to be
> brought out of reset.
>
> The USB Type-A connectors are not described, as they are in no regard
> controlled by the operating system.
Nevertheless, their presense in DT controls port's connect_type as can
be seen in sysfs.
>
> Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
> ---
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH RFC] arm64: dts: qcom: qcs6490-rb3gen2: Enable uPD720201 and GL3590
2026-02-24 7:52 ` Dmitry Baryshkov
@ 2026-02-25 3:40 ` Bjorn Andersson
2026-02-26 3:35 ` Dmitry Baryshkov
0 siblings, 1 reply; 6+ messages in thread
From: Bjorn Andersson @ 2026-02-25 3:40 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Manivannan Sadhasivam, linux-arm-msm, devicetree,
linux-kernel, Neil Armstrong
On Tue, Feb 24, 2026 at 09:52:45AM +0200, Dmitry Baryshkov wrote:
> On Thu, Feb 12, 2026 at 02:43:46PM -0600, Bjorn Andersson wrote:
> > The QCS6490 Rb3Gen2 has a Renesas μPD720201 XHCI controller hanging off
> > the TC9563 PCIe switch, on this a Genesys Logic GL3590 USB hub provides
> > two USB Type-A ports and an ASIX AX88179 USB 3.0 Gigabit Ethernet
> > interface.
> >
> > The Renesas chip is powered by two regulators controlled through PM7250B
> > GPIOs 1 and 4, and the power/reset pin is pulled down by PM8350C GPIO 4.
> > The Genesys chip power is always-on, but the reset pin is controlled
> > through TLMM GPIO 162.
> >
> > Describe the Renesas chip on the PCIe bus, with supplies and reset, to
> > allow it to be brought out of reset and discovered. Then describe the
> > two peers of the USB hub, with its reset GPIO, to allow this to be
> > brought out of reset.
> >
> > The USB Type-A connectors are not described, as they are in no regard
> > controlled by the operating system.
>
> Nevertheless, their presense in DT controls port's connect_type as can
> be seen in sysfs.
>
Is that information useful enough to be worth describing the connectors
and wire them up, despite being completely passive?
What consumes connect_type?
Regards,
Bjorn
> >
> > Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
> > ---
> --
> With best wishes
> Dmitry
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH RFC] arm64: dts: qcom: qcs6490-rb3gen2: Enable uPD720201 and GL3590
2026-02-25 3:40 ` Bjorn Andersson
@ 2026-02-26 3:35 ` Dmitry Baryshkov
0 siblings, 0 replies; 6+ messages in thread
From: Dmitry Baryshkov @ 2026-02-26 3:35 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Manivannan Sadhasivam, linux-arm-msm, devicetree,
linux-kernel, Neil Armstrong
On Tue, Feb 24, 2026 at 09:40:40PM -0600, Bjorn Andersson wrote:
> On Tue, Feb 24, 2026 at 09:52:45AM +0200, Dmitry Baryshkov wrote:
> > On Thu, Feb 12, 2026 at 02:43:46PM -0600, Bjorn Andersson wrote:
> > > The QCS6490 Rb3Gen2 has a Renesas μPD720201 XHCI controller hanging off
> > > the TC9563 PCIe switch, on this a Genesys Logic GL3590 USB hub provides
> > > two USB Type-A ports and an ASIX AX88179 USB 3.0 Gigabit Ethernet
> > > interface.
> > >
> > > The Renesas chip is powered by two regulators controlled through PM7250B
> > > GPIOs 1 and 4, and the power/reset pin is pulled down by PM8350C GPIO 4.
> > > The Genesys chip power is always-on, but the reset pin is controlled
> > > through TLMM GPIO 162.
> > >
> > > Describe the Renesas chip on the PCIe bus, with supplies and reset, to
> > > allow it to be brought out of reset and discovered. Then describe the
> > > two peers of the USB hub, with its reset GPIO, to allow this to be
> > > brought out of reset.
> > >
> > > The USB Type-A connectors are not described, as they are in no regard
> > > controlled by the operating system.
> >
> > Nevertheless, their presense in DT controls port's connect_type as can
> > be seen in sysfs.
> >
>
> Is that information useful enough to be worth describing the connectors
> and wire them up, despite being completely passive?
>
> What consumes connect_type?
Quick check through sources.debian.net reveals usbguard and
libusbauth-configparser. Granted that Stephen Boyd wired it up for DT
devices pointing Trogdor devices, I'd assume that something inside CrOS
can also be using these properties.
>
> Regards,
> Bjorn
>
> > >
> > > Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
> > > ---
> > --
> > With best wishes
> > Dmitry
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-02-26 3:36 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-02-12 20:43 [PATCH RFC] arm64: dts: qcom: qcs6490-rb3gen2: Enable uPD720201 and GL3590 Bjorn Andersson
2026-02-13 1:45 ` Manivannan Sadhasivam
2026-02-16 12:48 ` Konrad Dybcio
2026-02-24 7:52 ` Dmitry Baryshkov
2026-02-25 3:40 ` Bjorn Andersson
2026-02-26 3:35 ` Dmitry Baryshkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®