Specifications
CHAPTER 2. DRIVERS AND INTERFACES 9
USB HC USB HCI USB HID
Input Core
USB HID Input
USB Device
USB Device
USB Device
USB Device
USB Device Driver
USB Device Driver
Figure 2.2: Linux USB Input
USB HID and USB HID input but use the input core driver, too. They are indicated as “USB
Device Driver” in Figure 2.2.
USB support for the Linux kernel is enabled by setting the configuration option CONFIG USB
to either y (compile static into kernel) or m (compile as module). In addition, it is mandatory
to choose a driver for the USB host controller. Linux supports the host controllers EHCI
(USB 2.0), OHCI and UHCI. Their corresponding configuration options are CONFIG EHCI,
CONFIG OHCI and CONFIG UHCI. To enable USB HID support the configuration options USB HID
and USB HIDINPUT have either to be set to y or n.
2.4 Bluetooth Input Device Drivers
The Bluetooth specification [Sig04] defines several profiles. Each profile represents a class of
similar Bluetooth devices. Bluetooth input devices are referred to the HID profile, which is
specified in [RG03]. Both the USB HID specification and the Bluetooth HID specification are
very similar and list the same type of devices which are considered as HID. Again, this fact is
important to support future devices without developing a new driver for every new device.
Due to the fact that Bluetooth host controllers can be attached in several ways, Figure 2.3
shows the different connection methods. It is possible to use USB, PCMCIA or UART (serial
connection) to connect a Bluetooth host controller. There are also Bluetooth host controllers
which use a serial connection via PCMCIA. This method is not shown in Figure 2.3.
BT HIDP
Input Core
UART
TTY
BT HC
BT HC
BT HC
USB HC
PCMCIA
HC
PCMCIA
CS
USB HCI
BT HCI
BT HCI
BT HCI
BT Devices
BT Devices
BT Devices
Figure 2.3: Linux Bluetooth Input