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