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.

accessing USB1_DRVVBUS

Other Parts Discussed in Thread: TX12

Hi,

I need to use the USB1_DRVVBUS to control the Usb hub power in beaglebone running linux sdk 7.0. So i added this line

0x234 (PIN_OUTPUT_PULLUP | MUX_MODE7) under

user_leds_default: user_leds_default {
                        pinctrl-single,pins = <

and compiled dtb. But in the bot log i am getting this message

[    9.915597] usb usb2: Manufacturer: Linux 3.12.10-ti2013.12.01 musb-hcd

[    9.922636] usb usb2: SerialNumber: musb-hdrc.1.auto

[   10.004954] hub 2-0:1.0: USB hub found

[   10.015697] hub 2-0:1.0: 1 port detected

[   10.178530] musb-hdrc musb-hdrc.1.auto: VBUS_ERROR in a_wait_vrise (81, <SessEnd), retry #1, port1 00000104

[   10.330973] musb-hdrc musb-hdrc.1.auto: VBUS_ERROR in a_wait_vrise (81, <SessEnd), retry #2, port1 00000104

Am i missing something in here. The lsusb doesnt show up the correct device also.

Thanks

-RD

  • Hi,

    USBx_DRVVBUS pins are driven by PHY hardware. This happens when the USB tries to establish a connection in Host/OTG mode. for this purpose the pin should be pinmuxed to mode 0, not mode 7, which is GPIO.

  • Hi Biser,

    Thanks for that, but now after making this changei am getting error in boot log

    [    9.808142] pinctrl-single 44e10800.pinmux: pin 44e10a34.0 already requested by 47401c00.usb; cannot claim for musb-hdrc.1.auto

    [    9.820500] pinctrl-single 44e10800.pinmux: pin-141 (musb-hdrc.1.auto) status -22

    [    9.828512] pinctrl-single 44e10800.pinmux: could not request pin 141 (44e10a34.0) from group pinmux_usb1_pins  on device pinctrl-single

    [    9.841570] musb-hdrc musb-hdrc.1.auto: Error applying setting, reverse things back

    [   10.025353] musb-hdrc musb-hdrc.1.auto: musb_init_controller failed with status -19

    [   10.056666] pinctrl-single 44e10800.pinmux: pin 44e10a34.0 already requested by 47401c00.usb; cannot claim for musb-hdrc.1.auto

    [   10.068994] pinctrl-single 44e10800.pinmux: pin-141 (musb-hdrc.1.auto) status -22

    [   10.077006] pinctrl-single 44e10800.pinmux: could not request pin 141 (44e10a34.0) from group pinmux_usb1_pins  on device pinctrl-single

    [   10.090062] musb-dsps musb-hdrc.1.auto: Error applying setting, reverse things back

    [   10.166837] pinctrl-single 44e10800.pinmux: pin 44e10a34.0 already requested by 47401c00.usb; cannot claim for musb-hdrc.1.auto

    [   10.179167] pinctrl-single 44e10800.pinmux: pin-141 (musb-hdrc.1.auto) status -22

    [   10.187221] pinctrl-single 44e10800.pinmux: could not request pin 141 (44e10a34.0) from group pinmux_usb1_pins  on device pinctrl-single

    [   10.200356] musb-dsps musb-hdrc.1.auto: Error applying setting, reverse things back

    When i checked the pinmux

    $cat pinmux-pins

    I got this output

    pin 141 (44e10a34.0): 47401c00.usb (GPIO UNCLAIMED) function pinmux_usb1_pins group pinmux_usb1_pins

    I see in the am33xx.dtsi file there is asection like this

    usb1_phy: usb-phy@47401b00 {
                    compatible = "ti,am335x-usb-phy";
                    reg = <0x47401b00 0x100>;
                    reg-names = "phy";
                    status = "disabled";
                    ti,ctrl_mod = <&ctrl_mod>;
                };

                usb1: usb@47401800 {
                    compatible = "ti,musb-am33xx";
                    status = "disabled";
                    reg = <0x47401c00 0x400
                        0x47401800 0x200>;
                    reg-names = "mc", "control";
                    interrupts = <19>;
                    interrupt-names = "mc";
                    dr_mode = "otg";
                    mentor,multipoint = <1>;
                    mentor,num-eps = <16>;
                    mentor,ram-bits = <12>;
                    mentor,power = <500>;
                    //phys = <&usb1_phy>;

                    dmas = <&cppi41dma 15 0 &cppi41dma 16 0
                        &cppi41dma 17 0 &cppi41dma 18 0
                        &cppi41dma 19 0 &cppi41dma 20 0
                        &cppi41dma 21 0 &cppi41dma 22 0
                        &cppi41dma 23 0 &cppi41dma 24 0
                        &cppi41dma 25 0 &cppi41dma 26 0
                        &cppi41dma 27 0 &cppi41dma 28 0
                        &cppi41dma 29 0 &cppi41dma 15 1
                        &cppi41dma 16 1 &cppi41dma 17 1
                        &cppi41dma 18 1 &cppi41dma 19 1
                        &cppi41dma 20 1 &cppi41dma 21 1
                        &cppi41dma 22 1 &cppi41dma 23 1
                        &cppi41dma 24 1 &cppi41dma 25 1
                        &cppi41dma 26 1 &cppi41dma 27 1
                        &cppi41dma 28 1 &cppi41dma 29 1>;
                    dma-names =
                        "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
                        "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
                        "rx14", "rx15",
                        "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
                        "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
                        "tx14", "tx15";
                };


    Will it be wise to disable this part? I see the status disabled anyway but the claim is happening there i think.

    Thanks

    -RD

  • This pin is already pinmuxed by the USB init, no need to pinmux it additionaly.

  • Ok,  but i am trying to reinitialize the USB phy by toggling this pin. I am doing it by exporting the gpio 109(gpio3_13) and toggling the value. But i see no effect.

    Thanks

    -RD

  • This will not work. What is your hardware configuration?

  • I am sorry, i need some specific point to answer that question.

    Thanks

    -RD

  • I will send you a friend request with my e-mail.