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.

USB Hub connected to the AM335x does not work

Other Parts Discussed in Thread: AM3356, TPS65910

We have a new board design using the CY7C65642 hub chip connected to USB0 of the AM3356 CPU and a type B connector to USB1.

I've changed the usb structure in the board-am335x.c file:

static struct omap_musb_board_data musb_board_data = {
    .interface_type = MUSB_INTERFACE_UTMI, /* EVM: MUSB_INTERFACE_ULPI */
    /*
     * mode[0:3] = USB0PORT's mode
     * mode[4:7] = USB1PORT's mode
     * AM335X beta EVM has USB0 in OTG mode and USB1 in host mode.
     */
/* Note: USB0 is for hub host, and USB1 should be connected with B or mini-B connector */
    .mode           = (MUSB_PERIPHERAL << 4) | MUSB_HOST,  /* EVM: (MUSB_HOST << 4) | MUSB_OTG */
    .power      = 100, /* EVM: 500 */
#endif
    .instances  = 1,
};

I can see that linux detects a hub during boot-up, but nothing plugged into the hub's USB ports is detected.

This is my kernel boot-up output:

[    0.171477] usbcore: registered new interface driver hub
[    0.171924] usbcore: registered new device driver usb
[    0.172568] registerd cppi-dma Intr @ IRQ 17
[    0.172601] Cppi41 Init Done Qmgr-base(d083a000) dma-base(d0838000)
[    0.172623] Cppi41 Init Done
[    0.172676] musb-ti81xx musb-ti81xx: musb0, board_mode=0x21, plat_mode=0x1
[    0.173274] musb-ti81xx musb-ti81xx: musb1, board_mode=0x21, plat_mode=0x2
[    0.177398] Advanced Linux Sound Architecture Driver Version 1.0.24.
[    0.179943] Switching to clocksource gp timer
[    0.219111] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
[    0.219452] musb-hdrc musb-hdrc.0: dma type: dma-cppi41
[    0.220994] musb-hdrc musb-hdrc.0: MUSB HDRC host driver
[    0.221182] musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 1
[    0.221403] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    0.221439] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.221472] usb usb1: Product: MUSB HDRC host driver
[    0.221497] usb usb1: Manufacturer: Linux 3.2.0-ts-armv7l musb-hcd
[    0.221524] usb usb1: SerialNumber: musb-hdrc.0
[    0.223284] hub 1-0:1.0: USB hub found
[    0.223351] hub 1-0:1.0: 1 port detected

[    0.224546] musb-hdrc musb-hdrc.0: USB Host mode controller at d081e000 using DMA, IRQ 18
[    0.224885] musb-hdrc musb-hdrc.1: dma type: dma-cppi41
[    0.227153] musb-hdrc musb-hdrc.1: USB Peripheral mode controller at d0832800 using DMA, IRQ 19

The hub is configured to use all 4 ports, but it doesn't seem to me like it's detecting the 4 ports of the USB hub.

# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Also, the VID and PID that is detected, is it related to this hub? From the CY7C65642 documentation it looks like a different VID/PID: 0x04B4 and 0x6572.

I thought  the generic hub probe would work for almost any hub, but this one just isn't cooperating :(

Would really appreciate any help...

Thanks in advance for any help or suggestions.

  • Adri,

    I don't think the hub chip has been enumerated. Please first provide the output of 'cat /proc/driver/musb_hdrc.0', which gives the status of the usb0 port.

    Also please provide the usb portion of the schematics, I think our hw expert will check if there is any issue.

  • Thank you for replying. I tried to find information on "SetPortPower request" to see if I could enable the ports somehow. It's mentioned in the CY7C65642 datasheet and I thought it might be a USB or comms standard, but couldn't find anything.

    This is the output:

    # cat  /proc/driver/musb_hdrc.0
    Status: MHDRC, Mode=Host (Power=e0, DevCtl=99)
    OTG state: a_idle; inactive
    Options: ?dma?, otg (peripheral+host), [eps=16]
    Peripheral address: 00
    Root port status: 00000100
    CPPI: txcr=0 txsrc=0 txena=0; rxcr=0 rxsrc=280de80 rxena=0

    Who can I send the USB schematic to (as I do not wish to post it on a public forum)?

    Thank you!

  • Hi Adri,

    I have moved this thread to the Sitara forum. I will send you a friend request and you can e-mail the schematic directly to me. I will take care to forward it to Bin to take a look.

  • Adri,

    I received your schematics. As I suspected, you tied USB0_VBUS directly to 5V rail.

    As mentioned in the AM335x TRM, the musb is a dual-role controller, its USBx_VBUS pin has to be controlled by a power switch device to switch between host or device mode.

    You could modify your design to add a a power switch as in AM335x EVM reference. Or since you use host-only mode for USB0 port, you could try the following patch, and then please post the output of 'cat /proc/driver/musb_hdrc.0' after applied the patch.

    diff --git a/arch/arm/mach-omap2/omap_phy_internal.c b/arch/arm/mach-omap2/omap_phy_internal.c
    index 13bfef3..e41b224 100644
    --- a/arch/arm/mach-omap2/omap_phy_internal.c
    +++ b/arch/arm/mach-omap2/omap_phy_internal.c
    @@ -288,8 +288,17 @@ void ti81xx_musb_phy_power(u8 id, u8 on , bool wkup)
                                                    TI816X_USBPHY0_NORMAL_MODE;
                            usbphycfg &= ~TI816X_USBPHY_REFCLK_OSC;
                    } else if (cpu_is_am33xx()) {
    -                       usbphycfg &= ~(USBPHY_CM_PWRDN | USBPHY_OTG_PWRDN);
    -                       usbphycfg |= (USBPHY_OTGVDET_EN | USBPHY_OTGSESSEND_EN);
    +                       usbphycfg &= ~(USBPHY_CM_PWRDN | USBPHY_OTG_PWRDN | USBPHY_OTGVDET_EN);
    +
    +                       /* HACK: If USB0 port is in host-only mode, clear its
    +                        * USBPHY_OTGVDET_EN bit to ignore first VBUS sensing.
    +                        * Change 0 to 1 if USB1 port is in host-only mode.
    +                        */
    +                       if (id == 0)
    +                               usbphycfg |= USBPHY_OTGSESSEND_EN;
    +                       else
    +                               usbphycfg |= (USBPHY_OTGVDET_EN | USBPHY_OTGSESSEND_EN);
    +
                            usbwkupctrl = AM33XX_USB_WKUP_CTRL_DISABLE;
                    }
            } else {
    

    By the way, I have some doubts in your schematics, too many stuff on DP/DM lines. I will consult our hw expert to get accurate comments.

  • Hi Adri,

    Some comments on USB schematics: AM335X USB1 port (USB4_DP/DM lines) have some resistors that should be removed: R115, R190, R191. Same for R200, R201 on USB0 port (USB0_DP/DM_TOHUB lines). Also make sure that the suppressors you have on the USB data lines (D24...D29) are very low-capacitance, suitable for high speed data lines.

  • Thank you for the code patch and feedback on the design. I read section 16.3.1 of the CPU datasheet on VBUS Voltage Sourcing. Do I understand correctly that USB0_VBUS pin on CPU should've been tied to GND instead of 5V (since we're only using host mode and don't have a power switch device there currently)?

    I added the patch to the omap_phy_internal.c file but the output is still not quite right and nothing happens when inserting a USB device:

    # cat /proc/driver/musb_hdrc.0
    Status: MHDRC, Mode=Host (Power=e0, DevCtl=99)
    OTG state: a_idle; inactive
    Options: ?dma?, otg (peripheral+host), [eps=16]
    Peripheral address: 00
    Root port status: 00000100
    CPPI: txcr=0 txsrc=0 txena=0; rxcr=0 rxsrc=280de80 rxena=0
    #
    # cat /proc/driver/musb_hdrc.1
    Status: MHDRC, Mode=Peripheral (Power=20, DevCtl=80)
    OTG state: b_idle; inactive
    Options: ?dma?, otg (peripheral+host), [eps=16]
    Peripheral address: 00
    Root port status: 00000000
    CPPI: txcr=0 txsrc=0 txena=0; rxcr=0 rxsrc=280de80 rxena=0
    Gadget driver: (none)

    ep0 (hw0): 1buf, csr 0000 maxp 0000
            (queue empty)

    While reviewing our design we also noticed that the hub's RESET/ pin has been tied to 3.3V instead of a VBUS output form a CPU. The TI processor only has a DRVVBUS output pin which enables external power supply logic which should be capable of supplying 5V. We don't currently have such a device on the board that I can see and it would make it easier if we could tie that pin directly to 5V with a wire if needed, for now...

  • Adri,

    Adri G said:
    Do I understand correctly that USB0_VBUS pin on CPU should've been tied to GND instead of 5V (since we're only using host mode and don't have a power switch device there currently)?

    No, USBx_VBUS should not be grounded. The reference design is to connect it to the output of the power switch. But we do have some customers directly tied the pin to 5V for host-only mode, then my patch is required.

    Please dump the two 32-bit registers 0x44E10620 and 0x44E10628. The SDK filesystem has a utility 'devmem2' which could be used to read the registers.

    By the way, did you ground USB0_ID pin? Your schematics is just a picture, not searchable. The ID pin has to be grounded within 10 Ohm resistance for host mode.

  • Thanks for the devmem2 suggestion. I found register values weren't were I expected because I wasn't building the kernel with the flag that enabled my code changes. I've fixed that but unfortunately USB still doesn't work. Here's the new output:

    # devmem2 0x44E10620
    /dev/mem opened.
    Memory mapped at address 0x40083000.
    Read at address  0x44E10620 (0x40083620): 0x3C106004


    # devmem2 0x44E10628
    /dev/mem opened.
    Memory mapped at address 0x40231000.
    Read at address  0x44E10628 (0x40231628): 0x3C186004

    # lsusb
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    #
    # cat /proc/driver/musb_hdrc.0
    Status: MHDRC, Mode=Host (Power=f0, DevCtl=89)
    OTG state: a_idle; inactive
    Options: ?dma?, otg (peripheral+host), [eps=16]
    Peripheral address: 00
    Root port status: 00000100
    CPPI: txcr=0 txsrc=0 txena=0; rxcr=0 rxsrc=280de80 rxena=0

    USB0_ID pin is unconnected from what I can see. It's in the "AM335x USB Connections Schematic.pdf". I should've probably mentioned that the USB circuit and sockets are on a host board and the CPU is on a daughterboard connected to the host via small white connectors.

    The USB0_ID net is labelled as USB0_ID_TOHUB but doesn't look to be connected to the USB circuit on the other board. That could be one issue then.

    We're having the HW team review the reset circuit at the moment. They also said that "the series 37 or 33 ohm resistors are present to prevent harmonic reflection from going back to the processor". I need to verify we're talking about the same resistors as the values I see on the data lines are different.

  • Adri,

    Adri G said:
    Here's the new output:

    The registers are correct now.

    Adri G said:
    The USB0_ID net is labelled as USB0_ID_TOHUB but doesn't look to be connected to the USB circuit on the other board. That could be one issue then.

    It _is_ the issue. The controller will not work in host mode if the ID pin is floating.

  • Thank you, I put a 9Ohm Resistor to GND on the USB0_ID pin (only found two 4.5Ohm resistors) and it is now reporting that it's active, so it's something...

    # cat /proc/driver/musb_hdrc.0
    Status: MHDRC, Mode=Host (Power=e0, DevCtl=3d)
    OTG state: a_host; active
    Options: ?dma?, otg (peripheral+host), [eps=16]
    Peripheral address: 00
    Root port status: 00000301

    Plugging in devices into the hub though still doesn't get them recognised.

    I noticed an error in the kernel during bootup, it's same whether there's something plugged into the ports or not:

    [    1.756377] usb 1-1: new low-speed USB device number 3 using musb-hdrc
    [    1.886288] usb 1-1: device descriptor read/64, error -71
    [    2.116277] usb 1-1: device descriptor read/64, error -71
    [    2.346273] usb 1-1: new low-speed USB device number 4 using musb-hdrc
    [    2.766269] usb 1-1: device not accepting address 4, error -71
    [    2.886269] usb 1-1: new low-speed USB device number 5 using musb-hdrc
    [    3.306256] usb 1-1: device not accepting address 5, error -71
    [    3.312485] hub 1-0:1.0: unable to enumerate USB device on port 1

  • Adri,

    The ID pin can be directly grounded. You could save the resistors.

    Can you please post the output of 'lsusb' and 'dmesg' commands? Let's check if the the hub has been enumerated correctly.

  • Nothing different in lsusb unfortunately and in dmesg I've only seen some of our MMC messages, which I haven't yet looked into (I'd like to fix whatever is causing it as it's updated every second or so by mmc driver).

    # lsusb
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    #
    #
    # dmesg|grep usb
    # dmesg|tail
    [  268.062848] omap_hsmmc omap_hsmmc.0: IRQ Status is 1
    [  268.065232] omap_hsmmc omap_hsmmc.0: IRQ Status is 2
    [  268.065264] mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
    [  268.065292] mmc0:     4096 bytes transferred: 0
    [  268.065320] mmc0:     (CMD12): 0: 00000c00 00000000 00000000 00000000
    [  268.065372] mmc0: starting CMD13 arg 12340000 flags 00000195
    [  268.065404] omap_hsmmc omap_hsmmc.0: mmc0: CMD13, argument 0x12340000
    [  268.065442] omap_hsmmc omap_hsmmc.0: IRQ Status is 1
    [  268.065472] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
    [  268.156240] omap_hsmmc omap_hsmmc.0: disabled

    I think error -71 is EPROTO, which is a protocol error, i.e. the device does not respond to addressing request. There was nothing connected though, so it makes sense. However, why does it thinks something is connected...

  • Adri,

    Adri G said:
    # dmesg|grep usb
    # dmesg|tail

    This does not make any sense. The log you posted yesterday showed the host was trying to enumerate a low-speed device but failed with -71. (You did not mentioned this is for the hub or a new device plugged in the hub.) But how come now the dmesg log does not have anything about usb??? At least the dmesg log should have musb initialization log...

    If hub has been enumerated with -71, I am guessing something wrong in your hub design. Please review your hw design. The schematics you provided is not searchable, our hw expert was not able to fully review it.

  • Adri G said:
    There was nothing connected though, so it makes sense.

    No, your should not get this log if the design is correct, even if nothing is plugged in.

  • After reviewing this thread I am concerned that there exists a signal integrity issue.

    Please provide a searchable schematic (to Biser) for our review. 

  • The USB errors were only displayed during boot-up. I could not reproduce them once the board was booted, even when plugging anything in or out of the USB ports. I think you have a point with dmesg, and I didn't think of it - there must be so many messages concerning mmc logs that by the time I log in and try to view any messages, dmesg buffer does not have any of our boot-up messages any longer, including the USB ones I posted. I found the MMC_DEBUG kernel flag that was causing continuous mmc messages and have removed it. I can now view "usb" messages in dmesg:

    # dmesg|grep usb
    [    0.170401] usbcore: registered new interface driver usbfs
    [    0.171141] usbcore: registered new interface driver hub
    [    0.171602] usbcore: registered new device driver usb
    [    0.172350] musb-ti81xx musb-ti81xx: musb0, board_mode=0x21, plat_mode=0x1
    [    0.172921] musb-ti81xx musb-ti81xx: musb1, board_mode=0x21, plat_mode=0x2
    [    0.232450] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
    [    0.232791] musb-hdrc musb-hdrc.0: dma type: dma-cppi41
    [    0.234187] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
    [    0.234230] musb-hdrc: MHDRC RTL version 2.0
    [    0.234252] musb-hdrc: setup fifo_mode 4
    [    0.234304] musb-hdrc: 28/31 max ep, 16384/16384 memory
    [    0.234404] musb-hdrc musb-hdrc.0: MUSB HDRC host driver
    [    0.234592] musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 1
    [    0.234836] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    [    0.234872] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    0.234903] usb usb1: Product: MUSB HDRC host driver
    [    0.234928] usb usb1: Manufacturer: Linux 3.2.0-ts-armv7l musb-hcd
    [    0.234954] usb usb1: SerialNumber: musb-hdrc.0
    [    0.237980] musb-hdrc musb-hdrc.0: USB Host mode controller at d081e000 using DMA, IRQ 18
    [    0.238311] musb-hdrc musb-hdrc.1: dma type: dma-cppi41
    [    0.239546] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
    [    0.239588] musb-hdrc: MHDRC RTL version 2.0
    [    0.239610] musb-hdrc: setup fifo_mode 4
    [    0.239657] musb-hdrc: 28/31 max ep, 16384/16384 memory
    [    0.240564] musb-hdrc musb-hdrc.1: USB Peripheral mode controller at d0832800 using DMA, IRQ 19
    [    1.209980] usb 1-1: new low-speed USB device number 2 using musb-hdrc
    [    1.217742] usbcore: registered new interface driver cdc_ether
    [    1.224373] usbcore: registered new interface driver cdc_subset
    [    1.237011] usbcore: registered new interface driver usb-storage
    [    1.248812] usbcore: registered new interface driver cypress_cy7c63
    [    1.345037] usbcore: registered new interface driver uvcvideo
    [    1.403301] usb 1-1: device descriptor read/64, error -71
    [    1.526626] usbcore: registered new interface driver usbhid
    [    1.532555] usbhid: USB HID core driver
    [    1.538070] usbcore: registered new interface driver snd-usb-audio
    [    1.713345] usb 1-1: device descriptor read/64, error -71
    [    1.943372] usb 1-1: new low-speed USB device number 3 using musb-hdrc
    [    2.063311] usb 1-1: device descriptor read/64, error -71
    [    2.293318] usb 1-1: device descriptor read/64, error -71
    [    2.523305] usb 1-1: new low-speed USB device number 4 using musb-hdrc
    [    2.949767] usb 1-1: device not accepting address 4, error -71
    [    3.073535] usb 1-1: new low-speed USB device number 5 using musb-hdrc
    [    3.503369] usb 1-1: device not accepting address 5, error -71

    The USB boot-up errors come up whether there's something plugged into the ports or not. -71 looks like an error code rather than enumeration of a device or the hub. I'm guessing the error is to do with the hub itself, since other devices don't make a difference to the reporting of that error.

    Bin Liu said:
    No, your should not get this log if the design is correct, even if nothing is plugged in.

    Sorry for not being clear, you are right, our design may not be correct. I just mean that if the error means that it cannot get a response from a device (protocol error) it thinks is connected but is not, it makes sense that it would report that it wasn't able to communicate with the device. However, when something is plugged in, the error still happens. :(

    I saw the latest comment about the schematic. I will try get a hold of a proper document you can search and send it to Biser again, just need to wait for the HW guys.

    Thank you very much for all your help so far!

  • Adri,

    Adri G said:
    [    1.209980] usb 1-1: new low-speed USB device number 2 using musb-hdrc
    ......
    [    1.403301] usb 1-1: device descriptor read/64, error -71
    ......
    [    1.713345] usb 1-1: device descriptor read/64, error -71
    [    1.943372] usb 1-1: new low-speed USB device number 3 using musb-hdrc
    [    2.063311] usb 1-1: device descriptor read/64, error -71
    [    2.293318] usb 1-1: device descriptor read/64, error -71
    [    2.523305] usb 1-1: new low-speed USB device number 4 using musb-hdrc
    [    2.949767] usb 1-1: device not accepting address 4, error -71
    [    3.073535] usb 1-1: new low-speed USB device number 5 using musb-hdrc
    [    3.503369] usb 1-1: device not accepting address 5, error -71

    This error log is only for the hub enumeration. Something is wrong (I think most likely it is in hw design) which causes the hub is only be recognized as a low-speed device then the data (device descriptors) received by the host cannot be interpreted correct (which is the error code -71), then the host tried to reset the hub a few times.

    Since the hub is not enumerated, any USB device plugged into the hub will not trigger any action, because the hub is not able to report the new device connection. So you don't see any new logs while plugging in a USB device.

    Please also let your HW engineers to review the design as while. Let' see what we can find from the hw perspective.

  • I've sent new design PDFs to Biser. I hope they're more useful.

  • First of all, I think we have the hub enumerating now!

    bash-4.2# cat /proc/driver/musb_hdrc.0
    Status: MHDRC, Mode=Host (Power=f0, DevCtl=5d)
    OTG state: a_host; active
    Options: ?dma?, otg (peripheral+host), [eps=16]
    Peripheral address: 00
    Root port status: 00000503
    CPPI: txcr=0 txsrc=0 txena=0; rxcr=0 rxsrc=280de80 rxena=0

    RX10: 1buf rxcsr 3020 interval 0c max 0001 type 71; dev 2 hub 0 port 0
        rx dma9: 0 left, 00000000 00000000, 00000000 00000000; 00000000 00000000 00000000 .. 00000000
        qh cf027180 dev2 ep1-int max1
            in urb cf057d40 0/1
    bash-4.2#
    bash-4.2#
    bash-4.2# lsusb
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 002: ID 04b4:6572 Cypress Semiconductor Corp.

    Just as an update. We tried several things, the SW workaround for ID and VBUS. In addition to Bin Liu's patch to omap_phy_internal.c code, I added:

        u32 usbphymode;

        scm_base = ioremap((id ? AM33XX_USB1_BASE : AM33XX_USB0_BASE), 0x2FF);

        if (on && cpu_is_am33xx()) {
            usbphymode = __raw_readl(scm_base + USB_MODE_REG); // 0x47401000 + 0xE8

            usbphymode &= ~ USB_PHY_LOOPBACK | IDDIG;
        }

        __raw_writel(usbphycfg, scm_base + USB_MODE_REG);
        iounmap(scm_base);

    Just in case, soldered the AM335x USB0_ID pin to Gnd. The dubious reset circuit on the hub was pulling the reset line up to 3.3V instead of VBUS, so according to the AN72332 Application Note I pulled it up to 5V instead and added 50K (didn't have the recommended 47K) resistor to GND.

    Had a call with our HW guy who spotted the downstream DP and DM lines were crossed over and then checking the upstream lines we discovered the same! Silly error that I don't know why we didn't spot earlier and Bin Liu was absolutely right that it was a HW issue.

    Apart from the swapped lines, I'd like to see if it will still work if we roll back the other HW changes and keep the SW changes.

    Thanks for all your support on this! Just need to swap the downsteam lines back (another soldering job) and fingers crossed we'll be good to go.

  • Hi, i also have an issue with this chip on a custom Board connected to an phyCORE-AM3352 (Phytec).

    My schematic is attached. The IOUSBEN signals are connected to some GPIOs.

    My board file looks like this:

    /* pinmux for usb0 drvvbus */
    static struct pinmux_config usb0_pin_mux[] = {
    	{"usb0_drvvbus.usb0_drvvbus",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
    	{NULL, 0},
    };
    
    /* pinmux for usb1 drvvbus */
    static struct pinmux_config usb1_pin_mux[] = {
    	{"gpmc_ad8.gpio0_22",	OMAP_MUX_MODE7 |  AM33XX_PULL_ENBL |
    					AM33XX_PIN_OUTPUT_PULLUP},
    	{"gpmc_ad9.gpio0_23",	OMAP_MUX_MODE7 |  AM33XX_PULL_ENBL |
    					AM33XX_PIN_OUTPUT_PULLUP},
    	{"lcd_vsync.gpio2_22",	OMAP_MUX_MODE7 |  AM33XX_PULL_ENBL |
    					AM33XX_PIN_OUTPUT_PULLUP},
    	{"lcd_ac_bias_en.gpio2_25",	OMAP_MUX_MODE7 |  AM33XX_PULL_ENBL |
    					AM33XX_PIN_OUTPUT_PULLUP},
    	{"usb1_drvvbus.usb1_drvvbus",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
    	{NULL, 0},
    };
    
    
    
    static void usb0_init(void)
    {
    	setup_pin_mux(usb0_pin_mux);
    	return;
    }
    
    static void usb1_init(void)
    {
    	setup_pin_mux(usb1_pin_mux);
    	return;
    }
    

    static struct omap_musb_board_data musb_board_data = {
     .interface_type = MUSB_INTERFACE_ULPI,
     /*
      * mode[0:3] = USB0PORT's mode
      * mode[4:7] = USB1PORT's mode
      * PCM051 has USB0 in OTG mode and USB1 in host mode.
      */
     .mode           = (MUSB_HOST << 4) | MUSB_OTG,
     .power  = 500,
     .instances = 1,
    };



    The inits are called correctly.
    First i get this message polling:
    ti81xx_interrupt 1146: VBUS error workaround (delay coming)

    Then i used this patch:
    6378.0001-Revert-usb-musb-ti81xx-fix-for-handling-vbus-error.zip
    from Bin Liu in this Forum. It stopped polling but is still in the dmesg log.

    Then I also tried to not use the USB_DRVV Pin and connected the Reset Pin directly to 3.3V and tried this hack:

    diff --git a/arch/arm/mach-omap2/omap_phy_internal.c b/arch/arm/mach-omap2/omap_phy_internal.c
    index 13bfef3..e41b224 100644
    --- a/arch/arm/mach-omap2/omap_phy_internal.c
    +++ b/arch/arm/mach-omap2/omap_phy_internal.c
    @@ -288,8 +288,17 @@ void ti81xx_musb_phy_power(u8 id, u8 on , bool wkup)
                                                    TI816X_USBPHY0_NORMAL_MODE;
                            usbphycfg &= ~TI816X_USBPHY_REFCLK_OSC;
                    } else if (cpu_is_am33xx()) {
    -                       usbphycfg &= ~(USBPHY_CM_PWRDN | USBPHY_OTG_PWRDN);
    -                       usbphycfg |= (USBPHY_OTGVDET_EN | USBPHY_OTGSESSEND_EN);
    +                       usbphycfg &= ~(USBPHY_CM_PWRDN | USBPHY_OTG_PWRDN | USBPHY_OTGVDET_EN);
    +
    +                       /* HACK: If USB0 port is in host-only mode, clear its
    +                        * USBPHY_OTGVDET_EN bit to ignore first VBUS sensing.
    +                        * Change 0 to 1 if USB1 port is in host-only mode.
    +                        */
    +                       if (id == 0)
    +                               usbphycfg |= USBPHY_OTGSESSEND_EN;
    +                       else
    +                               usbphycfg |= (USBPHY_OTGVDET_EN | USBPHY_OTGSESSEND_EN);
    +
                            usbwkupctrl = AM33XX_USB_WKUP_CTRL_DISABLE;
                    }
            } else {

    Nothing helped. I disabled the hack and soldered all changes back. My Board looks like the schematic.
    Linux posted with cat /proc/drivers/musb_hdrc.1

    root@phyCORE-AM335x:~  cat /proc/driver/musb_hdrc.1
    Status: MHDRC, Mode=Host (Power=e0, DevCtl=88)
    OTG state: a_wait_vfall; inactive
    Options: pio, otg (peripheral+host), [eps=16]
    Peripheral address: 00
    Root port status: 00000100

    dmesg said:
    [    0.000000] pcpu-alloc: [0] 0
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
    [    0.000000] Kernel command line: console=ttyO0,115200 ip=none:::::eth0: root=/dev/mmcblk0p2 rootfstype=ext3 rootwait
    [    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
    [    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
    [    0.000000] Memory: 256MB = 256MB total
    [    0.000000] Memory: 254280k/254280k available, 7864k reserved, 0K highmem
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    [    0.000000]     vmalloc : 0xd0800000 - 0xff000000   ( 744 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc04bb000   (4812 kB)
    [    0.000000]       .init : 0xc04bb000 - 0xc04ef000   ( 208 kB)
    [    0.000000]       .data : 0xc04f0000 - 0xc05451f8   ( 341 kB)
    [    0.000000]        .bss : 0xc054521c - 0xc057083c   ( 174 kB)
    [    0.000000] NR_IRQS:396
    [    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    [    0.000000] Total of 128 interrupts on 1 active controller
    [    0.000000] OMAP clockevent source: GPTIMER2 at 25000000 Hz
    [    0.000000] OMAP clocksource: GPTIMER1 at 32768 Hz
    [    0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms
    [    0.000000] Console: colour dummy device 80x30
    [    0.000122] Calibrating delay loop... 597.60 BogoMIPS (lpj=2988032)
    [    0.058746] pid_max: default: 32768 minimum: 301
    [    0.058898] Security Framework initialized
    [    0.058990] Mount-cache hash table entries: 512
    [    0.059417] CPU: Testing write buffer coherency: ok
    [    0.060241] devtmpfs: initialized
    [    0.080505] omap_hwmod: gfx: failed to hardreset
    [    0.096923] omap_hwmod: pruss: failed to hardreset
    [    0.098114] print_constraints: dummy:
    [    0.098541] NET: Registered protocol family 16
    [    0.101013] OMAP GPIO hardware version 0.1
    [    0.103729] omap_mux_init: Add partition: #1: core, flags: 0
    [    0.104095] The board is a PCM051 phyCORE-AM335x
    [    0.104309]  omap_hsmmc.0: alias fck already exists
    [    0.106872]  omap_i2c.1: alias fck already exists
    [    0.108673]  omap2_mcspi.1: alias fck already exists
    [    0.108978]  omap2_mcspi.2: alias fck already exists
    [    0.109283]  edma.0: alias fck already exists
    [    0.109313]  edma.0: alias fck already exists
    [    0.109344]  edma.0: alias fck already exists
    [    0.134246] bio: create slab <bio-0> at 0
    [    0.136535] SCSI subsystem initialized
    [    0.138702] usbcore: registered new interface driver usbfs
    [    0.139129] usbcore: registered new interface driver hub
    [    0.139373] usbcore: registered new device driver usb
    [    0.139556] musb-ti81xx musb-ti81xx: musb0, board_mode=0x13, plat_mode=0x3
    [    0.139862] musb-ti81xx musb-ti81xx: musb1, board_mode=0x13, plat_mode=0x1
    [    0.141113] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 100 kHz
    [    0.142333] tps65910 1-002d: JTAGREVNUM 0x1
    [    0.146240] print_constraints: VRTC:
    [    0.147735] print_constraints: VIO: at 1500 mV
    [    0.150085] print_constraints: VDD1: 600 <--> 1500 mV at 1100 mV normal
    [    0.152404] print_constraints: VDD2: at 1100 mV
    [    0.153472] print_constraints: VDD3: 5000 mV
    [    0.154937] print_constraints: VDIG1: at 1800 mV
    [    0.156372] print_constraints: VDIG2: at 1800 mV
    [    0.157836] print_constraints: VPLL: at 1800 mV
    [    0.159301] print_constraints: VDAC: at 1800 mV
    [    0.160766] print_constraints: VAUX1: at 1800 mV
    [    0.162231] print_constraints: VAUX2: at 3300 mV
    [    0.163696] print_constraints: VAUX33: at 3300 mV
    [    0.165161] print_constraints: VMMC: at 3300 mV
    [    0.183563] cfg80211: Calling CRDA to update world regulatory domain
    [    0.184844] Switching to clocksource gp timer
    [    0.205932] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
    [    0.206085] musb-hdrc musb-hdrc.0: dma type: pio
    [    0.206420] MUSB0 controller's USBSS revision = 4ea20800
    [    0.206451] musb0: Enabled SW babble control
    [    0.206481] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
    [    0.206512] musb-hdrc: MHDRC RTL version 2.0
    [    0.206512] musb-hdrc: setup fifo_mode 4
    [    0.206542] musb-hdrc: 28/31 max ep, 16384/16384 memory
    [    0.206573] musb-hdrc.0: bulk split disabled
    [    0.206573] musb-hdrc.0: bulk combine disabled
    [    0.207122] musb-hdrc musb-hdrc.0: USB OTG mode controller at d083c000 using PIO, IRQ 18
    [    0.207305] musb-hdrc musb-hdrc.1: dma type: pio
    [    0.207641] MUSB1 controller's USBSS revision = 4ea20800
    [    0.207672] musb1: Enabled SW babble control
    [    0.207672] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
    [    0.207702] musb-hdrc: MHDRC RTL version 2.0
    [    0.207702] musb-hdrc: setup fifo_mode 4
    [    0.207733] musb-hdrc: 28/31 max ep, 16384/16384 memory
    [    0.207763] musb-hdrc.1: bulk split disabled
    [    0.207763] musb-hdrc.1: bulk combine disabled
    [    0.207794] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
    [    0.207885] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
    [    0.208038] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    [    0.208068] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    0.208068] usb usb1: Product: MUSB HDRC host driver
    [    0.208068] usb usb1: Manufacturer: Linux 3.2.0-SMA musb-hcd
    [    0.208099] usb usb1: SerialNumber: musb-hdrc.1
    [    0.209136] hub 1-0:1.0: USB hub found
    [    0.209167] hub 1-0:1.0: 1 port detected
    [    0.209808] musb-hdrc musb-hdrc.1: USB Host mode controller at d083e800 using PIO, IRQ 19
    [    0.210296] NET: Registered protocol family 2
    [    0.210510] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.210815] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
    [    0.211029] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
    [    0.211120] TCP: Hash tables configured (established 8192 bind 8192)
    [    0.211151] TCP reno registered
    [    0.211151] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [    0.211181] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [    0.211395] NET: Registered protocol family 1
    [    0.211669] NetWinder Floating Point Emulator V0.97 (double precision)
    [    0.223999] VFS: Disk quotas dquot_6.5.2
    [    0.224060] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    [    0.224426] msgmni has been set to 496
    [    0.225402] io scheduler noop registered
    [    0.225433] io scheduler deadline registered
    [    0.225494] io scheduler cfq registered (default)
    [    0.226654] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
    [    0.228576] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
    [    0.858093] ti81xx_interrupt 1139: VBUS error workaround (delay coming)
    [    0.865081] console [ttyO0] enabled
    [    0.869445] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
    [    0.877380] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
    [    0.885253] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
    [    0.893157] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
    [    0.901031] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
    [    0.920227] brd: module loaded
    [    0.929626] loop: module loaded
    [    0.933013] at24 1-0052: 4096 byte 24c32 EEPROM, writable, 32 bytes/write
    [    0.942321] Fixed MDIO Bus: probed
    [    0.945953] CAN device driver interface
    [    0.949981] CAN bus driver for Bosch D_CAN controller 1.0
    [    0.956176] ------------[ cut here ]------------
    [    0.961059] WARNING: at fs/sysfs/dir.c:481 sysfs_add_one+0x88/0xa8()
    [    0.967773] sysfs: cannot create duplicate filename '/class/mdio_bus/0'
    [    0.974731] Modules linked in:
    [    0.977935] Backtrace:
    [    0.980560] [<c0017d78>] (dump_backtrace+0x0/0x10c) from [<c0384740>] (dump_stack+0x18/0x1c)
    [    0.989440]  r6:c00f8384 r5:00000009 r4:cf01dd28 r3:c0510014
    [    0.995422] [<c0384728>] (dump_stack+0x0/0x1c) from [<c003debc>] (warn_slowpath_common+0x54/0x6c)
    [    1.004760] [<c003de68>] (warn_slowpath_common+0x0/0x6c) from [<c003df78>] (warn_slowpath_fmt+0x38/0x40)
    [    1.014739]  r8:00000001 r7:cf029000 r6:cf029000 r5:cf1c2b80 r4:ffffffef
    [    1.021636] r3:00000009
    [    1.024414] [<c003df40>] (warn_slowpath_fmt+0x0/0x40) from [<c00f8384>] (sysfs_add_one+0x88/0xa8)
    [    1.033752]  r3:cf029000 r2:c0458a00
    [    1.037536] [<c00f82fc>] (sysfs_add_one+0x0/0xa8) from [<c00f8c24>] (sysfs_do_create_link+0xf8/0x1e0)
    [    1.047241]  r7:cf01dd80 r6:cf0acbd0 r5:cf1c2b80 r4:cf1c2cc0
    [    1.053222] [<c00f8b2c>] (sysfs_do_create_link+0x0/0x1e0) from [<c00f8d20>] (sysfs_create_link+0x14/0x18)
    [    1.063293] [<c00f8d0c>] (sysfs_create_link+0x0/0x18) from [<c01a4a84>] (device_add+0x300/0x594)
    [    1.072570] [<c01a4784>] (device_add+0x0/0x594) from [<c01a4d34>] (device_register+0x1c/0x20)
    [    1.081542] [<c01a4d18>] (device_register+0x0/0x20) from [<c01cb87c>] (mdiobus_register+0x80/0x174)
    [    1.091064]  r4:cf1b9004 r3:cf1bf1c0
    [    1.094848] [<c01cb7fc>] (mdiobus_register+0x0/0x174) from [<c037e984>] (davinci_mdio_probe+0x1e4/0x2d0)
    [    1.104827]  r8:00000000 r7:cf06df80 r6:cf06a808 r5:cf1bf300 r4:cf06a800
    [    1.111724] r3:00000000
    [    1.114501] [<c037e7a0>] (davinci_mdio_probe+0x0/0x2d0) from [<c01a86e4>] (platform_drv_probe+0x20/0x24)
    [    1.124481]  r7:c052676c r6:c053f288 r5:c0569ab0 r4:cf06a808
    [    1.130462] [<c01a86c4>] (platform_drv_probe+0x0/0x24) from [<c01a7344>] (driver_probe_device+0xb4/0x2c8)
    [    1.140533] [<c01a7290>] (driver_probe_device+0x0/0x2c8) from [<c01a75ec>] (__driver_attach+0x94/0x98)
    [    1.150329]  r8:00000000 r7:cf1beb40 r6:cf06a83c r5:c052676c r4:cf06a808
    [    1.157409] [<c01a7558>] (__driver_attach+0x0/0x98) from [<c01a609c>] (bus_for_each_dev+0x4c/0x94)
    [    1.166839]  r6:c01a7558 r5:c052676c r4:00000000 r3:c01a7558
    [    1.172821] [<c01a6050>] (bus_for_each_dev+0x0/0x94) from [<c01a6f6c>] (driver_attach+0x24/0x28)
    [    1.182067]  r6:c05252c8 r5:c052676c r4:c052676c
    [    1.186950] [<c01a6f48>] (driver_attach+0x0/0x28) from [<c01a6bc0>] (bus_add_driver+0x188/0x270)
    [    1.196197] [<c01a6a38>] (bus_add_driver+0x0/0x270) from [<c01a78b0>] (driver_register+0x80/0x144)
    [    1.205657] [<c01a7830>] (driver_register+0x0/0x144) from [<c01a88fc>] (platform_driver_register+0x4c/0x60)
    [    1.215911] [<c01a88b0>] (platform_driver_register+0x0/0x60) from [<c04da950>] (davinci_mdio_init+0x14/0x1c)
    [    1.226287] [<c04da93c>] (davinci_mdio_init+0x0/0x1c) from [<c0008764>] (do_one_initcall+0x128/0x1a8)
    [    1.235992] [<c000863c>] (do_one_initcall+0x0/0x1a8) from [<c04bb88c>] (kernel_init+0x84/0x120)
    [    1.245147] [<c04bb808>] (kernel_init+0x0/0x120) from [<c0040c9c>] (do_exit+0x0/0x654)
    [    1.253479]  r5:c04bb808 r4:00000000
    [    1.257293] ---[ end trace 17a705f9df929b66 ]---
    [    1.262512] mii_bus 0 failed to register
    [    1.266723] davinci_mdio: probe of davinci_mdio.0 failed with error -22
    [    1.273864] PPP generic driver version 2.4.2
    [    1.279144] usbcore: registered new interface driver rtl8192cu
    [    1.285522] usbcore: registered new interface driver cdc_ether
    [    1.291687] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    [    1.298797] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
    [    1.305755] usbcore: registered new interface driver cdc_acm
    [    1.311706] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
    [    1.320312] usbcore: registered new interface driver cdc_wdm
    [    1.326263] Initializing USB Mass Storage driver...
    [    1.331634] usbcore: registered new interface driver usb-storage
    [    1.337982] USB Mass Storage support registered.
    [    1.343048] usbcore: registered new interface driver libusual
    [    1.349273] usbcore: registered new interface driver ums_eneub6250
    [    1.355957] usbcore: registered new interface driver ums-sddr09
    [    1.362365] usbcore: registered new interface driver ums-sddr55
    [    1.369018] usbcore: registered new interface driver usbserial
    [    1.375305] USB Serial support registered for generic
    [    1.380828] usbcore: registered new interface driver usbserial_generic
    [    1.387725] usbserial: USB Serial Driver core
    [    1.392456] USB Serial support registered for DeLorme Earthmate USB
    [    1.399230] USB Serial support registered for HID->COM RS232 Adapter
    [    1.406066] USB Serial support registered for Nokia CA-42 V2 Adapter
    [    1.412933] usbcore: registered new interface driver cypress
    [    1.418914] cypress_m8: v1.10:Cypress USB to Serial Driver
    [    1.424835] USB Serial support registered for FTDI USB Serial Device
    [    1.431823] usbcore: registered new interface driver ftdi_sio
    [    1.437896] ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver
    [    1.444183] USB Serial support registered for IPWireless converter
    [    1.450897] usbcore: registered new interface driver ipwtty
    [    1.456756] ipw: v0.4:IPWireless tty driver
    [    1.461303] USB Serial support registered for GSM modem (1-port)
    [    1.467926] usbcore: registered new interface driver option
    [    1.473785] option: v0.7.2:USB Driver for GSM modems
    [    1.479187] USB Serial support registered for Qualcomm USB modem
    [    1.485717] usbcore: registered new interface driver qcserial
    [    1.491912] USB Serial support registered for Sierra USB modem
    [    1.498260] usbcore: registered new interface driver sierra
    [    1.504119] sierra: v.1.7.16:USB Driver for Sierra Wireless USB modems
    [    1.511199] usbcore: registered new interface driver cypress_cy7c63
    [    1.518463] mousedev: PS/2 mouse device common for all mice
    [    1.525665] omap_rtc am33xx-rtc: rtc core: registered am33xx-rtc as rtc0
    [    1.541046] tps65910-rtc tps65910-rtc: rtc core: registered tps65910-rtc as rtc1
    [    1.550750] i2c /dev entries driver
    [    1.557128] OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [    1.565887] cpuidle: using governor ladder
    [    1.570770] cpuidle: using governor menu
    [    1.575256] sdhci: Secure Digital Host Controller Interface driver
    [    1.581756] sdhci: Copyright(c) Pierre Ossman
    [    1.591522] usbcore: registered new interface driver usbhid
    [    1.597412] usbhid: USB HID core driver
    [    1.601715] usbcore: registered new interface driver r8712u
    [    1.608612] oprofile: hardware counters not available
    [    1.613922] oprofile: using timer interrupt.
    [    1.618469] nf_conntrack version 0.5.0 (3973 buckets, 15892 max)
    [    1.625305] ip_tables: (C) 2000-2006 Netfilter Core Team
    [    1.631042] TCP cubic registered
    [    1.634460] NET: Registered protocol family 17
    [    1.639160] can: controller area network core (rev 20090105 abi 8)
    [    1.645751] NET: Registered protocol family 29
    [    1.650421] can: raw protocol (rev 20090105)
    [    1.654907] can: broadcast manager protocol (rev 20090105 t)
    [    1.660888] Registering the dns_resolver key type
    [    1.665924] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [    1.673980] ThumbEE CPU extension supported.
    [    1.679290] Power Management for AM33XX family
    [    1.689544] Detected MACID=1c:ba:8c:97:c3:ed
    [    1.696441] input: gpio-keys as /devices/platform/gpio-keys/input/input0
    [    1.710021] tps65910-rtc tps65910-rtc: setting system clock to 2000-01-01 05:00:11 UTC (946702811)
    [    1.722137] PHY 0:00 not found
    [    1.725372] PHY 0:02 not found
    [    1.766326] mmc0: host does not support reading read-only switch. assuming write-enable.
    [    1.776824] mmc0: new high speed SDHC card at address 0007
    [    1.783355] mmcblk0: mmc0:0007 SD4GB 3.70 GiB
    [    1.790191]  mmcblk0: p1 p2
    [    2.745971] IP-Config: Guessing netmask 255.0.0.0
    [    2.751281] IP-Config: Complete:
    [    2.754699]      device=eth0, addr=109.0.0.0, mask=255.0.0.0, gw=255.255.255.255,
    [    2.762420]      host=109.0.0.0, domain=, nis-domain=(none),
    [    2.768432]      bootserver=255.255.255.255, rootserver=255.255.255.255, rootpath=
    [    6.790527] kjournald starting.  Commit interval 5 seconds
    [    6.800750] EXT3-fs (mmcblk0p2): using internal journal
    [    6.806335] EXT3-fs (mmcblk0p2): recovery complete
    [    6.827575] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
    [    6.834960] VFS: Mounted root (ext3 filesystem) on device 179:2.
    [    6.843780] devtmpfs: mounted
    [    6.847686] Freeing init memory: 208K
    >[    7.304687] udevd[589]: starting version 182

    lsusb this:

    root@phyCORE-AM335x:~ lsusb
    Bus 001 Device 001: ID 1d6b:0002


    Can anybody help me?

    At boot time USB_DRVV changed shortly to high and then back to low.
    USB_VBUS is already high at this time and goes low when the USB_DRVV signal went low.
    After this VBUS is going back to high. I can't figue my issue out.
    I think my schematics are ok.
    0572.board-pcm051.c
    /*
     * Code for SMA-Datalogger.
     * Based on AM335X-EVM from 
     * Copyright (C) 2011 Texas Instruments, Inc. - http://www.ti.com/
     *
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License as
     * published by the Free Software Foundation version 2.
     *
     * This program is distributed "as is" WITHOUT ANY WARRANTY of any
     * kind, whether express or implied; without even the implied warranty
     * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     * GNU General Public License for more details.
     */
    #include <linux/kernel.h>
    #include <linux/init.h>
    #include <linux/i2c.h>
    #include <linux/module.h>
    #include <linux/i2c/at24.h>
    #include <linux/phy.h>
    #include <linux/gpio.h>
    #include <linux/spi/spi.h>
    #include <linux/spi/spidev.h>
    #include <linux/spi/flash.h>
    #include <linux/gpio_keys.h>
    #include <linux/input.h>
    #include <linux/input/matrix_keypad.h>
    #include <linux/mtd/mtd.h>
    #include <linux/mtd/nand.h>
    #include <linux/mtd/partitions.h>
    #include <linux/platform_device.h>
    #include <linux/clk.h>
    #include <linux/err.h>
    #include <linux/export.h>
    #include <linux/wl12xx.h>
    #include <linux/ethtool.h>
    #include <linux/mfd/tps65910.h>
    #include <linux/mfd/tps65217.h>
    #include <linux/pwm_backlight.h>
    #include <linux/input/ti_tsc.h>
    #include <linux/input/edt-ft5x06.h>
    #include <linux/platform_data/ti_adc.h>
    #include <linux/mfd/ti_tscadc.h>
    #include <linux/reboot.h>
    #include <linux/pwm/pwm.h>
    #include <linux/opp.h>
    #include <linux/micrel_phy.h>
    
    /* LCD controller is similar to DA850 */
    #include <video/da8xx-fb.h>
    
    #include <mach/hardware.h>
    #include <mach/board-pcm051.h>
    
    #include <asm/mach-types.h>
    #include <asm/mach/arch.h>
    #include <asm/mach/map.h>
    #include <asm/hardware/asp.h>
    
    #include <plat/omap_device.h>
    #include <plat/irqs.h>
    #include <plat/board.h>
    #include <plat/common.h>
    #include <plat/lcdc.h>
    #include <plat/usb.h>
    #include <plat/mmc.h>
    #include <plat/emif.h>
    #include <plat/nand.h>
    
    #include "board-flash.h"
    #include "cpuidle33xx.h"
    #include "mux.h"
    #include "devices.h"
    #include "hsmmc.h"
    #include "am33xx_generic.h"
    
    #define TLK110_PHY_ID	0x2000A201
    #define TLK110_PHY_MASK	0xfffffff0
    #define GPIO_RTC_RV4162C7_IRQ  GPIO_TO_PIN(0, 20)
    #define GPIO_RTC_PMIC_IRQ  GPIO_TO_PIN(3, 4)
    
    /* Convert GPIO signal to GPIO pin number */
    #define GPIO_TO_PIN(bank, gpio) (32 * (bank) + (gpio))
    
    #include "common.h"
    
    
    static struct omap2_hsmmc_info am335x_mmc[] __initdata = {
    	{
    		.mmc            = 1,
    		.caps           = MMC_CAP_4_BIT_DATA,
    		.gpio_cd        = GPIO_TO_PIN(0, 6),
    		.gpio_wp	= -EINVAL,
    		.ocr_mask       = MMC_VDD_32_33 | MMC_VDD_33_34, /* 3V3 */
    	},
    	{	
    		.mmc = 2,
    		.name = "EX_SD",
    		.caps = MMC_CAP_4_BIT_DATA,
    		.nonremovable = false,
    		.gpio_cd = GPIO_TO_PIN(3, 16),
    		.gpio_wp = -EINVAL,
    		.ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34, /* 3V3 */
    	},
    	{
    		.mmc            = 0,	/* will be set at runtime */
    	},
    	{}      /* Terminator */
    };
    
    
    #ifdef CONFIG_OMAP_MUX
    static struct omap_board_mux board_mux[] __initdata = {
    	AM33XX_MUX(I2C0_SDA, OMAP_MUX_MODE0 | AM33XX_SLEWCTRL_SLOW |
    			AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT),
    	AM33XX_MUX(I2C0_SCL, OMAP_MUX_MODE0 | AM33XX_SLEWCTRL_SLOW |
    			AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT),
    	{ .reg_offset = OMAP_MUX_TERMINATOR },
    };
    #else
    #define	board_mux	NULL
    #endif
    
    /* module pin mux structure */
    struct pinmux_config {
    	const char *string_name; /* signal name format */
    	int val; /* Options for the mux register value */
    };
    
    /// EVM
    /*
    
    static struct pinmux_config gpio_keys_pin_mux[] = {
    	{"gpmc_wait0.gpio0_30", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
    	{"gpmc_oen_ren.gpio2_3", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
    	{"gpmc_advn_ale.gpio2_2", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
    	{"gpmc_ben0_cle.gpio2_5", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
    	{NULL, 0},
    };
    
    
    
    static struct gpio_keys_button am335x_gpio_buttons[] = {
    	{
    		.code                   = BTN_0,
    		.gpio                   = GPIO_TO_PIN(2, 3),
    		.desc                   = "SW1",
    	},
    	{
    		.code                   = BTN_1,
    		.gpio                   = GPIO_TO_PIN(2, 2),
    		.desc                   = "SW2",
    	},
    	{
    		.code                   = BTN_2,
    		.gpio                   = GPIO_TO_PIN(0, 30),
    		.desc                   = "SW3",
    		.wakeup                 = 1,
    	},
    	{
    		.code                   = BTN_3,
    		.gpio                   = GPIO_TO_PIN(2, 5),
    		.desc                   = "SW4",
    	},
    };
    
    static struct gpio_keys_platform_data am335x_evm_gpio_key_info = {
    	.buttons        = am335x_evm_gpio_buttons,
    	.nbuttons       = ARRAY_SIZE(am335x_evm_gpio_buttons),
    };
    
    static struct platform_device am335x_evm_gpio_keys = {
    	.name   = "gpio-keys",
    	.id     = -1,
    	.dev    = {
    		.platform_data  = &am335x_evm_gpio_key_info,
    	},
    };
    
    static void gpio_keys_init(int evm_id, int profile)
    {
    	int err;
    
    	setup_pin_mux(gpio_keys_pin_mux);
    	err = platform_device_register(&am335x_evm_gpio_keys);
    	if (err)
    		pr_err("failed to register gpio key device\n");
    }
    
    */
    //EVM ENDE
    
    
    /* pinmux for normal GPIO + LED */
    static struct pinmux_config gpio_pin_mux[] = {
    	{"lcd_hsync.gpio2_23",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
    	{"mcasp0_ahclkx.gpio3_21",    OMAP_MUX_MODE7 | AM33XX_PULL_ENBL |
    					AM33XX_PIN_OUTPUT_PULLUP},
    	{"mcasp0_axr1.gpio3_20",    OMAP_MUX_MODE7 |AM33XX_PIN_OUTPUT},
    	{"gpmc_csn1.gpio1_30",    OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
    	{"gpmc_csn2.gpio1_31",    OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
    	{"mii1_rxd0.gpio2_21",    OMAP_MUX_MODE7 | AM33XX_PULL_ENBL |
    					AM33XX_PIN_INPUT_PULLUP},
    	{"gpmc_ad10.gpio0_26",    OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
    	{NULL, 0},
    };
    
    
    
    /* pinmux for Ev button device */
    static struct pinmux_config keys_pin_mux[] = {
    	{"mcasp0_fsr.gpio3_19",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
    	{"lcd_pclk.gpio2_24",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
    	{NULL, 0},
    };
    
    /* Configure GPIOs for Volume Keys */
    static struct gpio_keys_button keys_gpio_buttons[] = {
    	{
    		.code                   = 161,
    		.gpio                   = GPIO_TO_PIN(3, 19),
    		.active_low             = true,
    		.desc                   = "SD-Mount",
    		.type                   = EV_KEY,
    		.wakeup                 = 1,
    	},
    	{
    		.code                   = 162,
    		.gpio                   = GPIO_TO_PIN(2, 24),
    		.active_low             = true,
    		.desc                   = "Copy-SD",
    		.type                   = EV_KEY,
    		.wakeup                 = 1,
    	},
    };
    
    static struct gpio_keys_platform_data gpio_key_info = {
    	.buttons        = keys_gpio_buttons,
    	.nbuttons       = ARRAY_SIZE(keys_gpio_buttons),
    };
    
    static struct platform_device am335x_keys = {
    	.name   = "gpio-keys",
    	.id     = -1,
    	.dev    = {
    		.platform_data  = &gpio_key_info,
    	},
    };
    
    
    
    
    /*BFS @ SPI0*/
    static struct spi_board_info am335x_spi0_slave_info[] = {
    	{
    		.modalias      = "spidev",
    		.irq	       = -1,
    		.max_speed_hz  = 24000000,
    		.bus_num       = 1,
    		.chip_select   = 0,
    		.mode = SPI_MODE_0,
    	},
    };
    
    
    /* Module pin mux for SPI fash */
    static struct pinmux_config spi0_pin_mux[] = {
    	{"spi0_sclk.spi0_sclk", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL
    							| AM33XX_INPUT_EN},
    	{"spi0_d0.spi0_d0", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_PULL_UP
    							| AM33XX_INPUT_EN},
    	{"spi0_d1.spi0_d1", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL
    							| AM33XX_INPUT_EN},
    	{"spi0_cs0.spi0_cs0", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_PULL_UP
    							| AM33XX_INPUT_EN},
    	{NULL, 0},
    };
    
    
    
    static struct pinmux_config gmii2_pin_mux[] = {
    	{"gpmc_a0.mii2_txen", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
    	{"gpmc_a1.mii2_rxdv", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
    	{"gpmc_a2.mii2_txd3", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
    	{"gpmc_a3.mii2_txd2", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
    	{"gpmc_a4.mii2_txd1", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
    	{"gpmc_a5.mii2_txd0", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
    	{"gpmc_a6.mii2_txclk", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
    	{"gpmc_a7.mii2_rxclk", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
    	{"gpmc_a8.mii2_rxd3", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
    	{"gpmc_a9.mii2_rxd2", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
    	{"gpmc_a10.mii2_rxd1", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
    	{"gpmc_a11.mii2_rxd0", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
    	{"gpmc_wpn.mii2_rxerr", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
    	{"gpmc_wait0.mii2_crs", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
    	{"gpmc_ben1.mii2_col", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
    	{"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
    	{"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP},
    	{NULL, 0},
    };
    
    /* Module pin mux for mmc0 */
    static struct pinmux_config mmc0_pin_mux[] = {
    	{"mmc0_dat3.mmc0_dat3",	OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
    	{"mmc0_dat2.mmc0_dat2",	OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
    	{"mmc0_dat1.mmc0_dat1",	OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
    	{"mmc0_dat0.mmc0_dat0",	OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
    	{"mmc0_clk.mmc0_clk",	OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
    	{"mmc0_cmd.mmc0_cmd",	OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
    	{"spi0_cs1.mmc0_sdcd",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
    	{NULL, 0},
    };
    
    /* Module pin mux for mmc2 */
    static struct pinmux_config mmc2_pin_mux[] = {
    	{"gpmc_ad12.mmc2_dat0", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
    	{"gpmc_ad13.mmc2_dat1", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
    	{"gpmc_ad14.mmc2_dat2", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
    	{"gpmc_ad15.mmc2_dat3", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
    	{"gpmc_csn3.mmc2_cmd", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
    	{"mii1_rxd1.mmc2_clk", OMAP_MUX_MODE6 | AM33XX_PIN_INPUT_PULLUP},
    	{"mcasp0_axr0.mmc2_sdcd", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLUP},
    	{NULL, 0},
    };
    
    
    
    /* pinmux for usb0 drvvbus */
    static struct pinmux_config usb0_pin_mux[] = {
    	{"usb0_drvvbus.usb0_drvvbus",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
    	{NULL, 0},
    };
    
    /* pinmux for usb1 drvvbus */
    static struct pinmux_config usb1_pin_mux[] = {
    	{"gpmc_ad8.gpio0_22",	OMAP_MUX_MODE7 |  AM33XX_PULL_ENBL |
    					AM33XX_PIN_OUTPUT_PULLUP},
    	{"gpmc_ad9.gpio0_23",	OMAP_MUX_MODE7 |  AM33XX_PULL_ENBL |
    					AM33XX_PIN_OUTPUT_PULLUP},
    	{"lcd_vsync.gpio2_22",	OMAP_MUX_MODE7 |  AM33XX_PULL_ENBL |
    					AM33XX_PIN_OUTPUT_PULLUP},
    	{"lcd_ac_bias_en.gpio2_25",	OMAP_MUX_MODE7 |  AM33XX_PULL_ENBL |
    					AM33XX_PIN_OUTPUT_PULLUP},
    	{"usb1_drvvbus.usb1_drvvbus",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
    	{NULL, 0},
    };
    
    /*
    static struct pinmux_config uart1_pin_mux[] = {
    	{"uart1_ctsn.uart1_ctsn", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
    	{"uart1_rtsn.uart1_rtsn", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT},
    	{"uart1_rxd.uart1_rxd", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
    	{"uart1_txd.uart1_txd", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL},
    	{NULL, 0},
    };
    */
    
    /*
    * @pin_mux - single module pin-mux structure which defines pin-mux
    *			details for all its pins.
    */
    static void setup_pin_mux(struct pinmux_config *pin_mux)
    {
    	int i;
    
    	for (i = 0; pin_mux->string_name != NULL; pin_mux++)
    		omap_mux_init_signal(pin_mux->string_name, pin_mux->val);
    
    }
    
    
    
    /* setup spi0 */
    static void spi0_init(void)
    {
    	setup_pin_mux(spi0_pin_mux);
    	spi_register_board_info(am335x_spi0_slave_info,
    			ARRAY_SIZE(am335x_spi0_slave_info));
    	return;
    }
    
    static void gmii2_init(void)
    {
    	setup_pin_mux(gmii2_pin_mux);
    	return;
    }
    
    
    static void usb0_init(void)
    {
    	setup_pin_mux(usb0_pin_mux);
    	return;
    }
    
    static void usb1_init(void)
    {
    	setup_pin_mux(usb1_pin_mux);
    	return;
    }
    
    static void gpio_init(void)
    {
    	setup_pin_mux(gpio_pin_mux);
    	return;
    }
    
    static void keys_init(void)
    {
    	int err;
    
    	setup_pin_mux(keys_pin_mux);
    	err = platform_device_register(&am335x_keys);
    	if (err)
    		pr_err("failed to register Button device\n");
    }
    
    /*
    tatic void uart1_init(void)
    {
    	setup_pin_mux(uart1_wl12xx_pin_mux);
    }
    */
    
    
    static void mmc0_init(void)
    {
    	setup_pin_mux(mmc0_pin_mux);
    	setup_pin_mux(mmc2_pin_mux);
    	omap2_hsmmc_init(am335x_mmc);
    	return;
    }
    
    
    
    
    /*
    static void mmc2_init(int evm_id, int profile)
    {
    	setup_pin_mux(mmc2_pin_mux);
    
    	am335x_mmc[1].mmc = 2;
    	am335x_mmc[1].name = "EX_SD";
    	am335x_mmc[1].caps = MMC_CAP_4_BIT_DATA;
    	am335x_mmc[1].nonremovable = false;
    	am335x_mmc[1].gpio_cd = -EINVAL;
    	am335x_mmc[1].gpio_wp = -EINVAL;
    	am335x_mmc[1].ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34; \\3V3
    	
    	return;
    }
    */
    
    #define CBMUX_VAL 2
    
    static void pcm051_mux_dev_cfg(int mux_val)
    {
    
    	mmc0_init();
    	usb0_init();
    	usb1_init();
    	gmii2_init();
    	spi0_init();
    	gpio_init();
    	keys_init();
    	return;
    }
    
    static void pcm051_mux_init(void)
    {
    	pr_info("The board is a PCM051 phyCORE-AM335x\n");
    	pcm051_mux_dev_cfg(CBMUX_VAL);
    }
    
    #define PHY_ISOLATE BIT(10)
    
    static int am335x_disable_phy(struct phy_device *phydev)
    {
    	phy_write(phydev, 0x0, PHY_ISOLATE);
    
    	return 0;
    }
    
    static void pcm051_setup(struct memory_accessor *mem_acc, void *context)
    {
    
    //am33xx_cpsw_init(AM33XX_CPSW_MODE_MII, NULL, NULL);
    //		phy_register_fixup(PHY_ANY_ID, PHY_ANY_UID, 0xffffffff,
    //					am335x_disable_phy);
    	return;
    }
    
    static struct at24_platform_data am335x_baseboard_eeprom_info = {
    	.byte_len       = (32*1024) / 8,
    	.page_size      = 32,
    	.flags          = AT24_FLAG_ADDR16,
    	.setup          = pcm051_setup,
    	.context        = (void *)NULL,
    };
    
    static struct regulator_init_data am335x_dummy = {
    	.constraints.always_on	= true,
    };
    
    static struct regulator_consumer_supply am335x_vdd1_supply[] = {
    	REGULATOR_SUPPLY("vdd_mpu", NULL),
    };
    
    static struct regulator_init_data am335x_vdd1 = {
    	.constraints = {
    		.min_uV			= 600000,
    		.max_uV			= 1500000,
    		.valid_modes_mask	= REGULATOR_MODE_NORMAL,
    		.valid_ops_mask		= REGULATOR_CHANGE_VOLTAGE,
    		.always_on		= 1,
    	},
    	.num_consumer_supplies	= ARRAY_SIZE(am335x_vdd1_supply),
    	.consumer_supplies	= am335x_vdd1_supply,
    };
    
    static struct tps65910_board am335x_tps65910_info = {
    	.tps65910_pmic_init_data[TPS65910_REG_VRTC]	= &am335x_dummy,
    	.tps65910_pmic_init_data[TPS65910_REG_VIO]	= &am335x_dummy,
    	.tps65910_pmic_init_data[TPS65910_REG_VDD1]	= &am335x_vdd1,
    	.tps65910_pmic_init_data[TPS65910_REG_VDD2]	= &am335x_dummy,
    	.tps65910_pmic_init_data[TPS65910_REG_VDD3]	= &am335x_dummy,
    	.tps65910_pmic_init_data[TPS65910_REG_VDIG1]	= &am335x_dummy,
    	.tps65910_pmic_init_data[TPS65910_REG_VDIG2]	= &am335x_dummy,
    	.tps65910_pmic_init_data[TPS65910_REG_VPLL]	= &am335x_dummy,
    	.tps65910_pmic_init_data[TPS65910_REG_VDAC]	= &am335x_dummy,
    	.tps65910_pmic_init_data[TPS65910_REG_VAUX1]	= &am335x_dummy,
    	.tps65910_pmic_init_data[TPS65910_REG_VAUX2]	= &am335x_dummy,
    	.tps65910_pmic_init_data[TPS65910_REG_VAUX33]	= &am335x_dummy,
    	.tps65910_pmic_init_data[TPS65910_REG_VMMC]	= &am335x_dummy,
    	.irq				= OMAP_GPIO_IRQ(GPIO_RTC_PMIC_IRQ),
    };
    
    static struct i2c_board_info __initdata pcm051_i2c_boardinfo[] = {
    
    	{
    		/* Baseboard board EEPROM */
    		I2C_BOARD_INFO("24c32", EEPROM_I2C_ADDR),
    		.platform_data  = &am335x_baseboard_eeprom_info,
    	},
    	{
    		I2C_BOARD_INFO("tps65910", TPS65910_I2C_ID1),
    		.platform_data  = &am335x_tps65910_info,
    	},
    	{
    		I2C_BOARD_INFO("rv4162c7", 0x68),
    	},
    };
    
    static struct omap_musb_board_data musb_board_data = {
    	.interface_type	= MUSB_INTERFACE_ULPI,
    	/*
    	 * mode[0:3] = USB0PORT's mode
    	 * mode[4:7] = USB1PORT's mode
    	 * PCM051 has USB0 in OTG mode and USB1 in host mode.
    	 */
    	.mode           = (MUSB_HOST << 4) | MUSB_OTG,
    	.power		= 500,
    	.instances	= 1,
    };
    
    static void __init pcm051_i2c_init(void)
    {
    	omap_register_i2c_bus(1, 100, pcm051_i2c_boardinfo,
    				ARRAY_SIZE(pcm051_i2c_boardinfo));
    }
    
    /* Enable clkout1 */
    static struct pinmux_config clkout1_pin_mux[] = {
    	{"xdma_event_intr0.clkout1", OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT},
    	{NULL, 0},
    };
    
    static void __init clkout1_enable(void)
    {
    	struct clk *ck_32;
    
    	ck_32 = clk_get(NULL, "clkout1_ck");
    	if (IS_ERR(ck_32)) {
    		pr_err("Cannot clk_get ck_32\n");
    		return;
    	}
    
    	clk_enable(ck_32);
    
    	setup_pin_mux(clkout1_pin_mux);
    }
    
    static struct pinmux_config rtc_pin_mux[] = {
    	{"xdma_event_intr1.gpio0_20", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
    	/* gpio0_20 is shared by lcd touch irq and rtc irq */
    	{"mii1_rxdv.gpio3_4", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
    	{NULL, 0},
    };
    
    static void __init pcm051_rtc_irq_init(void)
    {
    	int r;
    
    	setup_pin_mux(rtc_pin_mux);
    
    #if !defined(CONFIG_TOUCHSCREEN_EDT_FT5X06) && \
    		!defined(CONFIG_TOUCHSCREEN_EDT_FT5X06_MODULE)
    	/* Option 1: RV-4162 */
    	r = gpio_request_one(GPIO_RTC_RV4162C7_IRQ,
    				GPIOF_IN, "rtc-rv4162c7-irq");
    	if (r < 0) {
    		printk(KERN_WARNING "failed to request GPIO%d\n",
    				GPIO_RTC_RV4162C7_IRQ);
    		return;
    	}
    #endif
    
    	/* Option 2: RTC in the TPS65910 PMIC */
    	if (omap_mux_init_signal("mii1_rxdv.gpio3_4", AM33XX_PIN_INPUT_PULLUP))
    		printk(KERN_WARNING "Failed to mux PMIC IRQ\n");
    	else if (gpio_request_one(GPIO_RTC_PMIC_IRQ,
    				GPIOF_IN, "rtc-tps65910-irq") < 0)
    		printk(KERN_WARNING "failed to request GPIO%d\n",
    				GPIO_RTC_PMIC_IRQ);
    }
    
    static struct resource am33xx_cpuidle_resources[] = {
    	{
    		.start		= AM33XX_EMIF0_BASE,
    		.end		= AM33XX_EMIF0_BASE + SZ_32K - 1,
    		.flags		= IORESOURCE_MEM,
    	},
    };
    
    /* AM33XX devices support DDR2 power down */
    static struct am33xx_cpuidle_config am33xx_cpuidle_pdata = {
    	.ddr2_pdown	= 1,
    };
    
    static struct platform_device am33xx_cpuidle_device = {
    	.name			= "cpuidle-am33xx",
    	.num_resources		= ARRAY_SIZE(am33xx_cpuidle_resources),
    	.resource		= am33xx_cpuidle_resources,
    	.dev = {
    		.platform_data	= &am33xx_cpuidle_pdata,
    	},
    };
    
    static void __init am33xx_cpuidle_init(void)
    {
    	int ret;
    
    	am33xx_cpuidle_pdata.emif_base = am33xx_get_mem_ctlr();
    
    	ret = platform_device_register(&am33xx_cpuidle_device);
    
    	if (ret)
    		pr_warning("AM33XX cpuidle registration failed\n");
    
    }
    
    
    static void __init pcm051_init(void)
    {
    	am33xx_cpuidle_init();
    	am33xx_mux_init(board_mux);
    	pcm051_mux_init();
    	pcm051_rtc_irq_init();
    	omap_serial_init();
    	clkout1_enable();
    	pcm051_i2c_init();
    	am335x_internal_rtc_init();
    	omap_sdrc_init(NULL, NULL);
    	usb_musb_init(&musb_board_data);
    	am33xx_cpsw_init(AM33XX_CPSW_MODE_MII, NULL, NULL);
    	/* Create an alias for icss clock */
    	if (clk_add_alias("pruss", NULL, "pruss_uart_gclk", NULL))
    		pr_warn("failed to create an alias: pruss_uart_gclk --> pruss\n");
    	/* Create an alias for gfx/sgx clock */
    	if (clk_add_alias("sgx_ck", NULL, "gfx_fclk", NULL))
    		pr_warn("failed to create an alias: gfx_fclk --> sgx_ck\n");
    }
    
    static void __init pcm051_map_io(void)
    {
    	omap2_set_globals_am33xx();
    	omapam33xx_map_common_io();
    }
    
    MACHINE_START(PCM051, "pcm051")
    	/* Maintainer: PHYTEC America */
    	.atag_offset	= 0x100,
    	.map_io		= pcm051_map_io,
    	.init_early	= am33xx_init_early,
    	.init_irq	= ti81xx_init_irq,
    	.handle_irq     = omap3_intc_handle_irq,
    	.timer		= &omap3_am33xx_timer,
    	.init_machine	= pcm051_init,
    MACHINE_END
    
    0753.SMA_Datenlogger_Rev_1_0_Final.pdf


  • Felix,

    I am not a hw guy to comment your schematics, but please remove R77 (10K) and directly ground USB1_ID.

    For MUSB working in host mode, its ID pin has be to grounded with <10 Ohm resistance.

  • Hm, I did what you told me. But nothing changed. :-(

  • 5008.Zeichnung1.pdf

    Hi,

    i got it to work. But with a really strange hack.

    I marked it with the Yellow Circle in the attached schematic.

    Also it doesn't matter to which PWR# Pin (PWRN1 PWRN2 PWRN3 PWRN4) i connect the 3.3V.

    I also tested it with a 4k2 and a 2k2 Resistor Pullup without R93 -R96. It doesn't work with a resistor between.

    Directly wired to 3.3V it works and Linux enumerates everything.

    I thought it could be a Voltagesource thing. I measured all source Pins from the CY7C65642 and the U10 74LVX08M Chip but all Voltage level are looking fine. Everything is at 3.3V.

    I measured also the delay between the 5V source is coming up and the 3.3V soure (Not the intern regulated!!) It is a short delay of 20-25 ms.

    Also i desoldered C70 (Reset Pin). To get the response to the USB_DRV Signal faster.

    Could you give me some advise for this strange behaviour?