How HID devices relate to the hiddev interface

As stated in a prior chapter, the USB host controller interacts with the USB devices on its bus. The USB core functionality ensures that information associated with HID devices is delivered to the HID device driver (hid.o). The HID device driver then uses the Application of the particular USB device interface to determine whether the device is an input type device (such as a keyboard, mouse, joystick or gamepad) or is some other HID device (such as a USB monitor control, or a uninterruptable power supply).

If the device appears to be an input type device, and the HID device driver was compliled to support the input subsystem, then the information from the HID device will be provided to the input subsystem (where it can be accessed using joystick, mouse, keyboard or event interfaces, as discussed in later chapters).

If the device does not appear to be an input device (or there is no input subsystem support in the HID device driver) and the HID device driver has been compiled to support the hiddev driver, then the information provided by the HID device will be made available on the hiddev interface, which is the subject of this chapter.