I'm trying to write usb *device* driver for AT91RM9200 - for linux kernel2.6.14. I know there is already written this driver in this linux, but I'd like to write it from the scratch on my own. At present I've got configured the usb device controller on the AT91 side (48Mhz freq, pullup, etc). As the usb host side I'm using PC with 2.6.25 kernel and uhci host driver. Now I'm able to receive following setup tokens from PC: get_device_descriptor and set_address. I've got problems with handling get_dev_descriptor request. When arm receives setup token - it generates interrupt - so I know that there are some data in RX-FIFO and I can read it. But I don't know when the IN token comes, because arm doesn't issue any interrupt. Does anyone know why arm doesn't generate such interrupt? Maybe I'm doing something wrong - there is not any explanation of SETUP-IN sequence in documentation. There is only SETUP-OUT sequence described in docs. Is there any other docs for USB device module for AT91RM9200 on the net?