In our reference design (Olinuxino maxi), there is a chip from SMSC handling LAN and USB, but in our design we don't need LAN, and we only require one USB port, so just decided to attach USB connector directly to the processor.
Unfortunately there was a slight layout problem, and we couldn't use the connector we planned, but we thought to verify the design we could just take regular extension cable and cut it and solder the wires to the pads. (it looks like this now: http://i57.tinypic.com/wtu7w1.jpg ), please ignore me my sw guy soldering skills .
Now the port seems to work, but when I attach our wifi dongle to the cable, the device seems to enumerate, and driver loading starts, but now driver loading fails (as designed, from software side) when it misreads the chipset ID, and thinks it cannot support this chip:
[ 2.390000] ieee80211 phy0: rt2x00usb_vendor_request: Error - Vendor Request 0x07 failed for offset 0x1000 with error -
[ 2.400000] ieee80211 phy0: rt2800_probe_rt: Error - Invalid RT chipset 0xc37b, rev 5108 detected
[ 2.410000] ieee80211 phy0: rt2x00lib_probe_dev: Error - Failed to allocate device
The signaling looks good, I measured the data lines with a scope: http://i58.tinypic.com/2yvryxl.jpg and it's very much comparable to our reference design signaling - but in our reference design with same SW and same usb wifi dongle the driver correctly identifies the chipset, and driver loads without problems.
Could it be that soldering connector this way affects the high speed (480Mbit/s) signaling enough that data is misread ? Though the signaling looks very much comparable in our reference, so that kind of fights that theory..
Actually currently in our kernel config we are still supporting SMSC, so that we can verify stuff also on our reference board, that shouldn't be a problem right ? Thanks for any help!