The cable detect is originally used to detect if a cable is plugged into the USB-B plug. If the level of the GPIO CableDetectGPIO is identical to CableDetectPol, the USB client driver assumes that it should be active.
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Usbfn] "CableDetectPol"=dword:0x00000001 ;default 1 "CableDetectGPIO"=dword:0x00000029 ;default no entry ->driver uses GPIO 41 (on a PXA270 this is SODIMM Pin 137)
There is one additional registry setting (beginning in Image Revision 3.4 Beta2) to control the pulldown resistors on the USB D+ and D- signals:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Usbfn] "InternalPulldown"=dword:0x00000001 ;default 0
Setting InternalPulldown to 1 is necessary to be compliant to the USB OTG specification (while the USB port is running in Host mode). In this case, no external pulldown resistors should be connected to the D+ and D- signals.
However, in the past there were many designs done with the external pulldown resistors assembled, therefore the default behavior is InternalPulldown = 0, like it was in earlier images.
This feature is supported since image V1.2. It is part of the USB OTG driver. To make use of it you have to enable USB OTG.
The setup is the same as for the PXA family. Instead of the GPIO value you have to provide the SODIMM value for the detect pin.
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\USBOTG] "CableDetectPol"=dword:0x00000001 ;default 1 "CableDetectPin"=dword:0x00000089 ;default no entry ->driver uses SODIMM 137
USB Host (OHCI) and USB Client (USBFN) driver are linked. Both drivers have to be enabled even if you need one driver only.
On boards designed for old modules the USB physical implementation may not support USB 2.0 High-speed connections and this may lead to the device not being recognized correctly when connected to a PC. By adding this registry entries:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\USBOTG\USBFn] "HighSpeed"=dword:0 ;default 1
it's possible to force the client port to behave like a USB 1.0 device.