Hi, We have been working on USB gadget function implementations for the video device class, audio device class and human interface device class. The main characteristics are: Video Intends to be compliant with version 1.1 of the USB video device class specification, supporting BULK-IN video. This particular implementation works by attaching itself to a framebuffer device (which should support page-flipping mode). If synchronizes with the pan operation of the framebuffer, so that each pan operation triggers the transmission of a video frame over a bulk-in endpoint. The driver automatically determines the proper video descriptors to use to represent the major aspects of the attached framebuffer (such as width and height). From user-land perspective, this driver has no particular interface; it just rides along with any framebuffer updates. Audio This implements a USB soundcard interface with both playback and capture support. The driver relies on isochronous endpoint support in the USB device controller. From user-land perspective the interface is an ALSA soundcard with two devices. There are module parameters that determine the characteristics of the sound devices (samplerate, # channels). There is a limitation that these characteristics are set upon initialisation of the driver, and cannot be changed thereafter. Human Interface This implements a small framework where handlers for various HID reports can be added upon driver initialisation. The current implementation has two report handlers that can handle 'touchscreen' reports (x,y & pressure) and 'button press' reports. These are handled by inserting appropriate events in the input framework and are represented in user-land by the usual input device interfaces. These three functions are tied together in a composite gadget (using the composite framework of course). We intend to release this implementation under the GPL (obviously) on our GPL website, but feel that it may be of interest to others on this list and may be a nice candidate for inclusion in upstream kernels. Please let me know whether this work is of interest to you, and how I should proceed. Robert Lukassen (TomTom International) -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html