Generic Input Devices Driver



  • Description evdev is an Xorg input driver for Linux's generic event devices. It therefore supports all input devices that the kernel knows about, including most mice, keyboards, tablets and touchscreens. Evdev is the default driver on the major Linux distributions. The evdev driver can serve as both a pointer and a keyboard input device.
  • Type Device Manager in the search box and press Enter. Locate sound driver by clicking the drop-down arrow to expand one of the categories. Right-click on the installed driver and then select Properties. Under the display driver properties window, select the Driver tab.

Audio Stream Input/Output (ASIO) is a computer sound card driver protocol for digital audio specified by Steinberg, providing a low-latency and high fidelity interface between a software application and a computer's sound card. Whereas Microsoft’s DirectSound is commonly used as an intermediary signal path for non-professional users, ASIO.

Author:Daniel Mack <daniel@caiaq.de>, Feb 2009

14.1. Function¶

Rotary encoders are devices which are connected to the CPU or otherperipherals with two wires. The outputs are phase-shifted by 90 degreesand by triggering on falling and rising edges, the turn direction canbe determined.

Some encoders have both outputs low in stable states, others also havea stable state with both outputs high (half-period mode) and some havea stable state in all steps (quarter-period mode).

The phase diagram of these two outputs look like this:

Generic Disk Drivers

Devices
For more information, please see
https://en.wikipedia.org/wiki/Rotary_encoder

14.2. Events / state machine¶

In half-period mode, state a) and c) above are used to determine therotational direction based on the last stable state. Events are reported instates b) and d) given that the new stable state is different from the last(i.e. the rotation was not reversed half-way).

Otherwise, the following apply:

  1. Rising edge on channel A, channel B in low state
    This state is used to recognize a clockwise turn
  2. Rising edge on channel B, channel A in high state
    When entering this state, the encoder is put into ‘armed’ state,meaning that there it has seen half the way of a one-step transition.
  3. Falling edge on channel A, channel B in high state
    This state is used to recognize a counter-clockwise turn
  4. Falling edge on channel B, channel A in low state
    Parking position. If the encoder enters this state, a full transitionshould have happened, unless it flipped back on half the way. The‘armed’ state tells us about that.

14.3. Platform requirements¶

As there is no hardware dependent call in this driver, the platform it isused with must support gpiolib. Another requirement is that IRQs must beable to fire on both edges.

14.4. Board integration¶

Generic Input Devices Driver Device

To use this driver in your system, register a platform_device with thename ‘rotary-encoder’ and associate the IRQs and some specific platformdata with it. Because the driver uses generic device properties, this canbe done either via device tree, ACPI, or using static board files, like inexample below:

Generic

Please consult device tree binding documentation to see all propertiessupported by the driver.

Generic Software Device

-->

Human Interface Devices (HID) is a device class definition to replace PS/2-style connectors with a generic USB driver to support HID devices such as keyboards, mice, game controllers, etc. Prior to HID, devices could only utilize strictly-defined protocols for mice and keyboards. Hardware innovation required either overloading data in an existing protocol or creating non-standard hardware with its own specialized driver. HID provided support for these “boot mode” devices while adding support for hardware innovation through extensible, standardized and easily-programmable interfaces.

HID devices today include a broad range of devices such as alphanumeric displays, bar code readers, volume controls on speakers/headsets, auxiliary displays, sensors and many others. Many hardware vendors also use HID for their proprietary devices.

HID began with USB but was designed to be bus-agnostic. It was designed for low latency, low bandwidth devices but with flexibility to specify the rate in the underlying transport. The specification for HID over USB was ratified by the USB-IF in 1996 and support over additional transports followed soon after. Details on currently supported transports can be found in HID Transports Supported in Windows. 3rd-party, vendor-specific transports are also allowed via custom transport drivers.

HID Concepts

HID consists of two fundamental concepts, a Report Descriptor, and Reports. Reports are the actual data that is exchanged between a device and a software client. The Report Descriptor describes the format and meaning the data that the device supports.

Reports

Applications and HID devices exchange data through Reports. There are three Report types: Input Reports, Output Reports, and Feature Reports.

Report TypeDescription
Input ReportData sent from the HID device to the application, typically when the state of a control changes.
Output ReportData sent from the application to the HID device, for example to the LEDs on a keyboard.
Feature ReportData that can be manually read and/or written, and are typically related to configuration information.

Microsoft Generic Drivers

Each Top Level Collection defined in a Report Descriptor can contain zero (0) or more reports of each type.

Usage Tables

The USB-IF working group publishes HID Usage Tables that are part of the Report Descriptors that describe what HID devices are allowed to do. These HID Usage Tables contain a list with descriptions of Usages, which describe the intended meaning and use of a particular item described in the Report Descriptor. For example, a Usage is defined for the left button of a mouse. The Report Descriptor can define where in a Report an application can find the current state of the mouse’s left button. The Usage Tables are broken up into several name spaces, called Usage Pages. Each Usage Page describes a set of related Usages to help organize the document. The combination of a Usage Page and Usage define the Usage ID that uniquely identifies a specific Usage in the Usage Tables.

See also

Generic Input Devices Driver Updater

Windows generic usb driver

Generic Dvd Driver

USB-IF HID Specifications.