Androidでタッチパネルを使用するためのメモです。

http://www.aitendo.co.jp/:titleaitendo's電子工房さんのタッチスクリーンを使用しました。
使用するためにはカーネルコンフィグを変更するだけでOKです。


以下のカーネルコンフィグを有効にしてください。


Location:

  • > Device Drivers

-> Input device support
-> Generic input layer (needed for keyboard, mouse, ...)
-> Touchscreens
-> USB Touchscreen Driver
-> eGalax, eTurboTouch

これで起動時にUSBタッチパネルを認識して使用できるようになります。


私の環境では、X軸とY軸が入れ替わっていました。
なので、U-Bootのカーネル起動パラメータに以下を追加しました。


optargs=init=/init nohz=off androidboot.console=ttyS2 swap_xy=1
saveenv



キャリブレーションは動的に設定できないようです。
ioctlでX軸・Y軸の最大値・最小値を取得しています。
なので、実際の値を取得してドライバを変更する必要があります。


drivers/input/touchscreen/usbtouchscreen.c

#ifdef CONFIG_TOUCHSCREEN_USB_EGALAX
        [DEVTYPE_EGALAX] = {
                .min_xc         = 0,
                .max_xc         = 1900,
                .min_yc         = 0,
                .max_yc         = 1900,
                .rept_size      = 16,
                .process_pkt    = usbtouch_process_multi,
                .get_pkt_len    = egalax_get_pkt_len,
                .read_data      = egalax_read_data,
        },
#endif

結構調整が必要ですね(>_<)