USB - atmel-maxtouch/linux GitHub Wiki
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:
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).