Hi, I am trying to write a driver for the Silicon Laboratories CP2101 USB to RS232 converter chip.
The protocol looks relatively simple after analysing the windows driver
with sniffers.
The device has only 1 configuration, which has a bulk in endpoint and a
bulk out endpoint.
The control pipe is used to set the baud rates, data bits, flow control
etc and is relatively straight forward.
The bulk in/out endpoints are used to send the raw serial data.
In windows, when the device is plugged in, it gets 3 descriptors from
the device and issues a select configuration.
There is then no activity until the port is used.
The first transfer which occurs is this:
00000130 468.14388924 UsbSnoop - IRP_MJ_INTERNAL_DEVICE_CONTROL,
IOCTL_INTERNAL_USB_SUBMIT_URB
00000132 468.14457424 >>>>>>> URB 5 going down...
00000133 468.14466420 -- URB_FUNCTION_VENDOR_INTERFACE:
00000134 468.14493239 TransferFlags = 00000000
(USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
00000135 468.14498128 TransferBufferLength = 00000000
00000136 468.14500418 TransferBuffer = 00000000
00000137 468.14502737 TransferBufferMDL = 00000000
00000139 468.14509637 no data supplied
00000140 468.14512738 UrbLink = 00000000
00000141 468.14515336 RequestTypeReservedBits = 00
00000142 468.14517739 Request = 11
00000143 468.14520225 Value = 0000
00000144 468.14522628 Index = 0000
00000146 468.16538638 <<<<<<< URB 5 coming back...
00000147 468.16546824 -- URB_FUNCTION_CONTROL_TRANSFER:
00000148 468.16551517 PipeHandle = 811d87b4
00000149 468.16555931 TransferFlags = 00000002
(USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK)
00000150 468.16558836 TransferBufferLength = 00000000
00000151 468.16560233 TransferBuffer = 00000000
00000152 468.16561630 TransferBufferMDL = 00000000
00000153 468.16565625 UrbLink = 00000000
00000154 468.16593142 SetupPacket : 41 11 00 00 00 00 00
00
In the linux driver, i try:
result = usb_control_msg (dev, usb_sndctrlpipe (dev, 0),
0x11, 0x00,
0x0000, 0, NULL, 0, 1000);
dbg("%s - result %d", __FUNCTION__, result);
The function fails with a result of -32 which appears to be EPIPE
which is either Babble detect or Endpoint stalled
Any advice would be greatly appreciated.
--
Craig Shelley
Email: [EMAIL PROTECTED]
Jabber: [EMAIL PROTECTED]
signature.asc
Description: This is a digitally signed message part
