We are looking for detailed knowledge regarding the operation of the Vybrid's USB controller pins. We are having numerous problems with the USB behavior, and Vybrid documentation does not provide enough information for us to understand what is happening.
Our version of u-boot loads the USB driver (so we can reprogram the kernel and rfs on existing boards). If the DETECT pin is low, the u-boot driver gets stuck in a brown-out condition (ANADIG_REG_3P0, bit-16 BO_VDD3P0="1" and bit-17 OK_VDD3P0="0"). The USBx_VBUS pin looks good at a nominal 5V, so the Vybrid's 3.0V LDO regulator should be happy. The DETECT pin is not supposed to have any effect on the brown-out bit either, but bringing this DETECT pin high definitely clears the brown-out condition. The Vybrid does not seem to care which DETECT pin is high either, as long as one of them is high. Does anyone understand how a DETECT pin can clear the 3.0V LDO brown-out condition?
Also, we continue to have a problem where the Vybrid pulls the USB0_VBUS_EN line high - in both u-boot, and then again when the kernel is loaded. We understand this VBUS_EN pin is intended to drive an external VBUS FET switch, but we don't want it to enable 5V to the USB connector for no reason. We don’t see any places in the u-boot or kernel code where the USBx_VBUS_EN pin output is being specifically set or cleared (and it is not pin-muxed as a GPIO pin anyway). When this VBUS_EN pin is pin-muxed as this particular VBUS_EN function of the USB controller, it seems to have a preprogrammed behavior, but we don’t know what this behavior is, or what config register bit(s) affect this behavior…? What conditions cause the VBUS_EN pin to be set high? Does the Vybrid USB controller need to be configured in USB Host mode in order for this VBUS_EN pin to be driven high? If the USB controller is configured in USB Device mode, then should this pin always be seen as a low output?
Our external VBUS FET switch (TPS2051) expects the USB0_VBUS_EN to be active-high. When the pin is muxed to be the VBUS_EN function though, we don’t really know for sure what polarity the Vybrid part intends for this output pin to have. Does the Vybrid set the pin high to enable, or high to disable the eternal VBUS FET switch, as switches with either polarity are available? We have been assuming that it is an active high output (due to the pin name), but maybe this is wrong?
Does anyone know any details surrounding the preprogrammed behavior of the Vybrid USB controller's VBUS_EN pin is and what is the active polarity?
What about the VBUS_OC pin? OC=high is an overcurrent indication from the VBUS FET switch, and OC=low is current OK? We think the former here as well, but we don’t see anywhere that this is specifically stated. We have had to add a single gate inverter to our hardware design to change the OC polarity for the Vybrid, It would be nice if this polarity were programmable.