USB HID driver
##############

Supports keyboard and mouse connected via USB.
It connects to one or multiple USB sessions. A run script can be found
under 'run/usb_hid.run'.

Configuration snippet:

!<start name="usb_hid_drv">
!  <resource name="RAM" quantum="10M"/>
!  <provides><service name="Input"/></provides>
!  <config use_report="yes"/>
!</start>

When the use_report attribute is set, the HID driver will request a ROM called
"report" that is used to iterate over all devices provided by the USB host
controller driver (resp. a rom filter). In that mode the driver tries to
claim all HID devices (class 0x3) via dedicated USB sessions.

Note: It has been observed that certain 1.0 versions of Qemu do not generate
mouse interrupts. The mouse driver should work correctly on Qemu 1.0.93 and
above.

HID - Touchscreen support
~~~~~~~~~~~~~~~~~~~~~~~~~

Touchscreen absolute coordinates must be calibrated (e.g. re-calculated) to
screen absolute coordinates. The screen resolution is not determined
automatically by the HID driver, but can be configured:

!...
!<config touchscreen width="1024" height="768" multitouch="no"/>
!...

If a touchscreen is multi-touch-capable than the multitouch attribute gears
which type of Genode input events are generated. If set to  'no' (default)
than absolute events are generated and no multitouch events. If set to 'yes'
solely multitouch events are generated.

Keyboard LED handling
~~~~~~~~~~~~~~~~~~~~~

The state of the keyboard LEDs like capslock can be controlled by providing
a corresponding ROM to the driver and configure it appropriatedly:

!...
!<config capslock_led="rom" numlock_led="rom" scrlock_led="rom"/>
!...
