Re: [PATCH v3 3/9] arm64: dts: amlogic: Used onboard usb hub reset on odroid c2

Ben Wolsieffer
2023-08-02T21:07:07Z

On Sat, Jan 21, 2023 at 05:56:31PM +0000, Anand Moon wrote:
> On Odroid c2 previously use gpio-hog to reset the usb hub,
> switch to used on-board usb hub reset to enable the usb hub
> and enable power to hub.
>
> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
> Signed-off-by: Anand Moon <linux.amoon@gmail.com>
> ---
> v3 - Add rev by Neil.
> droped dr_mode
> v2 - drop the vendor name from compatible string.
> - move the hub node to USB controller node.
> - drop the usb_otg_pwr since it only liked to OTG port
> and link p5v0 to the vdd-supply.
> ---
> .../boot/dts/amlogic/meson-gxbb-odroidc2.dts | 25 ++++++++-----------
> 1 file changed, 10 insertions(+), 15 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
> index 201596247fd9..70b10934a811 100644
> --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
> +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
> @@ -250,21 +250,6 @@ eth_phy0: ethernet-phy@0 {
> };
> };
>
> -&gpio_ao {
> - /*
> - * WARNING: The USB Hub on the Odroid-C2 needs a reset signal
> - * to be turned high in order to be detected by the USB Controller
> - * This signal should be handled by a USB specific power sequence
> - * in order to reset the Hub when USB bus is powered down.
> - */
> - hog-0 {
> - gpio-hog;
> - gpios = <GPIOAO_4 GPIO_ACTIVE_HIGH>;
> - output-high;
> - line-name = "usb-hub-reset";
> - };
> -};
> -
> &hdmi_tx {
> status = "okay";
> pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
> @@ -414,5 +399,15 @@ &usb0 {
> };
>
> &usb1 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> status = "okay";
> +
> + hub@1 {
> + /* Genesys Logic GL852G USB 2.0 hub */
> + compatible = "usb5e3,610";
> + reg = <1>;
> + vdd-supply = <&p5v0>;
> + reset-gpio = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>;
> + };
> };
> --
> 2.38.1
>

Hello,

This patch breaks USB support on the ODROID-C2. As soon as the
onboard_usb_hub module is loaded, all USB devices disconnect.
Blacklisting onboard_usb_hub makes USB work as expected.

I tried to reproduce the problem by manually toggling the reset line,
but the problem seems to be specific to this driver. When reset is
asserted manually, the devices disconnect, but they all enumerate again
as soon as reset is released.

Also, I have been unable to make USB work again (until the next reboot)
even after unloading onboard_usb_hub.

Ben