This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM623: USB probe failed

Part Number: AM623

Hi, TI expert! 

I have a development environment for am6234, with our own evaluation board.

The software SDK version is PROCESSOR-SDK-LINUX-RT-AM62X-08.06.00.42.

I inserted the USB flash drive into USB0 in the evaluation board, and then powered on to start the evaluation board.

During the startup process, the following error occurred. How can I resolve this error?

After multiple tests, it was found that this error occurred sporadically and not every time the test was conducted.

Sometimes, the USB drive can detect it normally during testing.

My device tree configuration is as follows:

// SPDX-License-Identifier: GPL-2.0
/**
 * DT overlay for usb in main domain on AM62x SK
 *
 * Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/
 */

#include <dt-bindings/pinctrl/k3.h>

&{/} {
	connector {
		compatible = "gpio-usb-b-connector";
		label = "micro-USB";
		type = "micro";
		id-gpios = <&main_gpio0 40 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&main_usb1_pins_default &extcon_usb1_gpio_id_pins_default>;
		status = "okay";

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@1 {
				reg = <1>;
				usb_con_hs: endpoint {
				    remote-endpoint = <&typec_hs>;
				};
			};
		};
	};
};

&main_pmx0 {
	main_usb0_pins_default: main-usb0-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0254, PIN_OUTPUT, 0) /* (C20) USB0_DRVVBUS */
		>;
	};
	main_usb1_pins_default: main-usb1-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (F18) USB1_DRVVBUS */
		>;
	};
	extcon_usb1_gpio_id_pins_default: extcon-usb1-gpio-id-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x00a4, PIN_INPUT_PULLUP, 7) /* (M22) GPMC0_DIR.GPIO0_40 */
		>;
	};
};

&usbss0 {
	ti,vbus-divider;
};

&usbss1 {
	ti,vbus-divider;
};

&usb0 {
	dr_mode = "host";
	pinctrl-names = "default";
	pinctrl-0 = <&main_usb0_pins_default>;
};

&usb1 {
	#address-cells = <1>;
	#size-cells = <0>;
	usb-role-switch;
	snps,dis_u2_susphy_quirk;

	port@1 {
		reg = <1>;
		typec_hs: endpoint {
			remote-endpoint = <&usb_con_hs>;
		};
	};
};

The USB drive I used for testing is shown in the link:

https://www.staples.com/sandisk-cruzer-blade-32gb-usb-2-0-type-a-flash-drive-black-red-sdcz50-032g-a46/product_IM1RR4555

Regards,

Li

  • Hi Li,

    Please use the following kernel device tree patch as a workaround. A formal fix will be in the next Processor SDK v9.2.

    diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
    index 510775e9a88f..aa4e24261881 100644
    --- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
    @@ -586,6 +586,7 @@ usb0: usb@31000000 {
                            interrupt-names = "host", "peripheral";
                            maximum-speed = "high-speed";
                            dr_mode = "otg";
    +                       snps,dis_u2_susphy_quirk;
                    };
            };
     
    @@ -608,6 +609,7 @@ usb1: usb@31100000 {
                            interrupt-names = "host", "peripheral";
                            maximum-speed = "high-speed";
                            dr_mode = "otg";
    +                       snps,dis_u2_susphy_quirk;
                    };
            };

  • Hi Liu,

    I applied the patch you provided and tested it with the same result, but there may be occasional errors as mentioned above.

    What I want to ask is, besides modifying this device tree, is there anything else that needs to be modified?

  • Hi Li,

    What I want to ask is, besides modifying this device tree, is there anything else that needs to be modified?

    No, nothing else shouldn't be needed.

    First let's check if the patch has been applied properly, please run the following command on your board and share its output.

    # ls /sys/firmware/devicetree/base/bus@f0000/dwc3-usb*/usb*/

  • Hi Liu,

    My evaluation board did not connect to the USB drive, but when I started the system, I also encountered the error mentioned above

  • Hi Li,

    Please remove the previous kernel patch and apply the following one, and let me know if this fixes the issue.

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/0001_2D00_usb_2D00_lockup_2D00_ldo_5F00_en.patch

  • Hi Liu,
    I applied this patch and the problem was solved. Thank you for your patient answer!