Difference between revisions of "TSC2102 Linux driver"
From ArmadeusWiki
(→Usage) |
|||
| Line 36: | Line 36: | ||
cat /sys/class/hwmon/hwmon0/device/temp1_input -- result in m°C | cat /sys/class/hwmon/hwmon0/device/temp1_input -- result in m°C | ||
* play sounds through [http://www.alsa-project.org/ ALSA interface] | * play sounds through [http://www.alsa-project.org/ ALSA interface] | ||
| + | |||
| + | ===Envt variables=== | ||
| + | * You should define some ENVT variables to use the touchscreen API (tslib): | ||
| + | export TSLIB_TSDEVICE=/dev/input/event0 | ||
| + | export TSLIB_TSEVENTTYPE=INPUT | ||
| + | export TSLIB_CONFFILE=/etc/ts.conf | ||
| + | export TSLIB_CALIBFILE=/etc/pointercal | ||
| + | |||
| + | ===Device file creation if not exist=== | ||
| + | * ''/dev/input/event0'' is created from the infos got from: | ||
| + | # cat /sys/class/input/event0/dev | ||
| + | 13:64 | ||
| + | # mkdir /dev/input | ||
| + | # cd /dev/input/ | ||
| + | # mknod event0 c 13 64 | ||
| + | # ls -al | ||
| + | drwxr-xr-x 2 root root 0 Jan 1 00:39 . | ||
| + | drwxr-xr-x 5 root root 0 Jan 1 00:39 .. | ||
| + | crw-r--r-- 1 root root 13, 64 Jan 1 00:39 event0 | ||
| + | # | ||
==Quick test== | ==Quick test== | ||
Revision as of 17:24, 17 November 2007
Contents
Driver Installation
$ make linux-menuconfig
in 'device driver/input device support' select 'event interface' as kernel part in 'device driver/input device support' select 'touchscreen ->tsc2102' as module
in 'device driver/spi support' select 'spi support ->freescale iMX spi' as module in 'device driver/spi support' select 'spi support ->TSC2102 codec' as module
in 'device driver/hardware monitoring support' select 'hardware monitoring support' as module
TSLib API Installation
Install the touchscreen API tslib
Architecture
| Touchscreen (tsc2102_ts.ko) | HWmon | ALSA |
|---|---|---|
| TSC2102 Main driver (tsc2102.ko) | ||
| Linux API | ||
Usage
start the drivers:
# insmod /lib/modules/drivers/hwmon/hwmon.ko # insmod /lib/modules/drivers/spi/spi_imx.ko # insmod /lib/modules/drivers/spi/tsc2102.ko # insmod /lib/modules/drivers/input/touchscreen/tsc2102_ts.ko
Then:
- get temperature and voltage with hwmon (Hardware Monitoring) interface
cat /sys/class/hwmon/hwmon0/device/temp1_input -- result in m°C
- play sounds through ALSA interface
Envt variables
- You should define some ENVT variables to use the touchscreen API (tslib):
export TSLIB_TSDEVICE=/dev/input/event0 export TSLIB_TSEVENTTYPE=INPUT export TSLIB_CONFFILE=/etc/ts.conf export TSLIB_CALIBFILE=/etc/pointercal
Device file creation if not exist
- /dev/input/event0 is created from the infos got from:
# cat /sys/class/input/event0/dev 13:64 # mkdir /dev/input # cd /dev/input/ # mknod event0 c 13 64 # ls -al drwxr-xr-x 2 root root 0 Jan 1 00:39 . drwxr-xr-x 5 root root 0 Jan 1 00:39 .. crw-r--r-- 1 root root 13, 64 Jan 1 00:39 event0 #
Quick test
To quickly check driver fonctionnality, touch the screen and check that tsc2102 interrupts count is increasing:
# cat /proc/interrupts
CPU0
26: 0 MPU IMX-uart
29: 17 MPU IMX-uart
30: 22 MPU IMX-uart
35: 12 MPU imx-mmc
39: 14 MPU I2C_IMX
40: 16 MPU imx-spi.2
41: 0 MPU imx-spi.1
59: 3682 MPU i.MX Timer Tick
60: 0 MPU DMA
61: 0 MPU DMA
110: 0 GPIO eth0
168: 0 GPIO tsc2102
Err: 0
#
Links
- http://source.mvista.com/git/gitweb.cgi?p=linux-omap-2.6.git;a=log;t=7 (search for TSC2102)
- http://osdir.com/ml/linux.ports.arm.omap/2006-08/msg00183.html
- Touchscreen usage on Blackfin
- Compiling TSlib
- http://www.opentom.org/Tslib
- http://www.openembedded.org/filebrowser/org.openembedded.packaged-staging/packages/tslib