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.

AM3352, Linux 3.14.19 USB not detecting peripherals

Other Parts Discussed in Thread: AM3352

I am developing a custom AM3352 based board for a big client and cannot detect when USB peripherals are plugged into a port (on USB1 port; USB0 port is not populated).

My kernel version is pulled from the beaglebone sources https://github.com/beagleboard/linux.git, version 3.14.19. I configured the USB to use host only, DSPS with PIO only. The usb branch of my devicetree is as follows:

&ocp {
	musb: usb@47400000 {
		status = "okay";

		control@44e10620 {
			status = "okay";
		};

		usb0_phy: usb-phy@47401300 {
			status = "disabled";
		};

		usb0: usb@47401000 {
			status = "disabled";
		};

		usb-phy@47401b00 {
			status = "okay";
		};

		usb@47401800 {
			status = "okay";
			dr_mode = "host";
			mentor,power = <500>;
		};

		dma-controller@47402000  {
			status = "okay";
		};
	};

};

my relevant bootlog looks like:

[    1.650505] 47401b00.usb-phy supply vcc not found, using dummy regulator
[    1.664501] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
[    1.664537] musb-hdrc: MHDRC RTL version 2.0 
[    1.664554] musb-hdrc: setup fifo_mode 4
[    1.664586] musb-hdrc: 28/31 max ep, 16384/16384 memory
[    1.664830] musb-hdrc musb-hdrc.0.auto: MUSB HDRC host driver
[    1.671960] musb-hdrc musb-hdrc.0.auto: new USB bus registered, assigned bus number 1
[    1.682934] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.690185] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.697916] usb usb1: Product: MUSB HDRC host driver
[    1.703130] usb usb1: Manufacturer: Linux 3.14.19-NPServe-dirty musb-hcd
[    1.710308] usb usb1: SerialNumber: musb-hdrc.0.auto
[    1.720125] usb usb1: no of_node; not parsing pinctrl DT

I have noticed when plugging in certain devices I get the following message

[ 97.045572] musb_stage0_irq 526: bogus peripheral RESUME (a_idle)

  • Dave,

    we are supporting 3.12...we will be supporting 3.14 later. Did you check your custom board using 3.12?

  • I will give 3.12 a try. Can you tell me if my choice of DSPS glue code is correct (I also see there is an AM335X glue code; is this also a valid option?). Also does my device tree, etc look OK?

    Thanks

  • Here is what 3.12 from 7.0.0.0 does with my USB now

    [ 2.731488] platform 47401b00.usb-phy: Driver am335x-phy-driver requests probe deferral
    [ 2.743006] musb-hdrc musb-hdrc.0.auto: musb_init_controller failed with status -517
    [ 2.751410] platform musb-hdrc.0.auto: Driver musb-hdrc requests probe deferral
    [ 3.992951] platform 47401b00.usb-phy: Driver am335x-phy-driver requests probe deferral
    [ 4.002280] musb-hdrc musb-hdrc.0.auto: musb_init_controller failed with status -517
    [ 4.010656] platform musb-hdrc.0.auto: Driver musb-hdrc requests probe deferral
    [ 4.106666] platform 47401b00.usb-phy: Driver am335x-phy-driver requests probe deferral
    [ 4.125854] musb-hdrc musb-hdrc.0.auto: musb_init_controller failed with status -517
    [ 4.143469] platform musb-hdrc.0.auto: Driver musb-hdrc requests probe deferral
    [ 4.159402] platform 47401b00.usb-phy: Driver am335x-phy-driver requests probe deferral

    Now not even lsusb will work, returning error -99

    Please advise.

  • OK I got through that hurdle by fixing the usb control node in my device tree.

    Where I have ended up though is nowhere. I still can't communicate over USB after downgrading to 3.12 and I see no change in functionality running at 3.14 except now my ethernet is not working (complains about not find the PHY).

    So I have regressed in trying to resolve this USB issue. Can you please tell me what to try next?

  • Try 3.16 or better 3.17. There were many fixes/enhancements and look at evmsk DTS as example. 

    You need to activate at least following kernel options:

    USB_MUSB_DSPS

    USB_TI_CPPI41_DMA

    CONFIG_AM335X_PHY_USB

    and for example CONFIG_USB_ETH as gadget

  • I'm not sure I'm sold on this version being better. I already tried the official TI supported version and worked even worse. Switch Linux versions is a nightmare because everything changes and your DTB is not checked against your kernel image. So maybe 3.17 may fix a few things but does it fix my USB problem? Do you really think it is worth the time to try it?

    I'd really just like assistance directly concerning USB.

  • Hi Dave, have you resolved this problem? I met the same problem recently Thanks!!