[beagleboard] How to configure MUSB port in host only mode

Hi all,

I have a Beagle clone with OMAP3525 & TPS65950. The ID (R11) pin of
TPS65950 is connected to the VUSB.3P1 pin (P9) (and this connection is
buried within the PCB layers). HSUSB0 OTG controller pins are
connected to TPS65950 same as in BeagleBoard. The output of the
TPS65950 internal ULPI PHY is connected to an onboard HUB. The kernel
is not able to detect the hub at all.

I'm suspecting this is because the ID pin is pulled up by VUSB.3P1
output. Is this inference correct?

To overcome this issue, I selected the option USB_MUSB_HOST instead of
USB_MUSB_OTG to force the MUSB controller driver to operate in the
host mode only. This does not seem to cause the hub to be detected. Is
there any other configuration option that I can tweak to enable host
only mode?

Regards,
Sajith

If you want HOST on the OTG port, the ID pin must be grounded.

Gerald

Hi Gerald,

Thanks for the reply. Is there any work around for this issue at all?

Does TPS65950 configures the PHY in host or device mode according to the status of the ID pin?

Regards,
Sajith

This is not an issue. This is the way OTG works per the specification and yes the TPS65950 works this way as well. Normally, you can get a cable with this built in, but they can be hard to find. Beagle has a pad that you can blob some solder on to make the connection.

Gerald

I'm having the same issue as well.

My Beagle Board Rev. C4 won't detect any USB connections.

It gives me an error about not a bad cable and not being able to
enumerate the USB device. I am trying to connect a USB Bluetooth
adapter.

Thanks for the clarification, Gerald.

Regards,
Sajith

Hi Gerald,

The PCB was reworked to pull the ID pin to ground. Even with this change, the hub is not getting detected. We also noticed that even after the Kernel boots up the PMU does not generate VBUS. I booted this kernel on BB rev C2 and it is generating the VBUS and also the BB is able to detect an external hub connected to the OTG port.

Rev C2 BB uses TWL4030, whereas our board uses TPS65950. Is there any difference between the two PMU chips with respect to USB?

I’ve also uploaded the USB schematics of our board to the ‘Files’ section (USBHub.jpg and USB_PMU_Interface.jpg). When compared to BB Rev C3 schematics (which uses TPS65950), there are following differences:

  1. VBUS pin is pulled high through a pull-up resistor in our board (we tried disabling the pull up by removing R39, but it does not help). Also in C3, there is a series resistor connected to the VBUS pin.

  2. There is no filter capacitor connected to the VBUS pin on our board.

  3. CPIN is connected to 3.3v in our board, whereas on C3 it is connected to VBAT (4.7v). The size of the capacitor connected to this pin is different too.

Does any of the above cause the VBUS not to be generated?

Regards,
Sajith

Hi Gerald,

This problem was finally solved today. It was observed that the VBUS was getting generated by the kernel during the boot process. But it was getting turned off immediately. An observation of the waveform showed a ripple of about 3.4v peak-to-peak on the VBUS voltage output by the PMU. Also the boot log showed the generation of the VBUS_EROR interrupt at the controller. There was no filter capacitor connected to the VBUS line. Once the 4.7uf cap was added to the VBUS line, the waveform smoothened out and the hub got detected!

Thanks for your inputs and time.

Regards,
Sajith

Glad you got it working!

Gerald