Skip to content
Nick Dyer edited this page May 7, 2015 · 3 revisions

USB HID Digitizer Support

Some Atmel maXTouch chips may be attached via USB and use standard HID Digitizer support. This is configured using the T43 Digitizer HID Configuration object. The Linux kernel supports this protocol directly, using the hid-multitouch driver. This was added in Linux v2.6.38.

Kernel config

The HID drivers can be enabled by modifying the kernel .config file:

CONFIG_HIDRAW=y
CONFIG_USB_HIDDEV=y
CONFIG_USB_HID=y
CONFIG_HID_PID=y
CONFIG_HID_SUPPORT=y
CONFIG_HID_MULTITOUCH=y
CONFIG_HID=y

Alternatively make menuconfig can be used to configure USB HID, under “Device Drivers, HID support”.

VID/PID ids

The USB ids that enable the Atmel devices were added in Linux v3.3. To enable it on previous versions, appropriate lines must be added to hid-ids.h and hid-multitouch.c, for an example see:

http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=841cb1570d2c9eed4496ac9ce53c4fd4ae66ebfc

udev permissions

When using Android devices via adb or maXTouch devices connected via USB, it may be necessary to alter the device permissions via udev.

Create a new file in the /lib/udev/rules.d/ directory, called 51-atmel-permissions.rules, with a line like:

SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", MODE="0660", GROUP="plugdev"

The vendor ID given will match any Atmel maXTouch devices. Any user that needs to access the device should be added to the group referenced (eg plugdev). The location of the file may change between Linux distributions.

Bootloader

Firmware can be updated via mxt-app

maXTouch chips are designed to revert to bootloader mode if not accessed via the control interface for 10 reset cycles. This may be experienced if the hid-multitouch driver is probed many times without power-cycling USB, because it doesn't access the control interface. A workaround is to run mxt-app --load mxt.xcfg on boot (e.g. by from an init script).