|
|
Wolfson Microelectronics WM9705 and WM9712 Touchscreen Controllers
|
Wolfson Microelectronics WM9705 and WM9712 Touchscreen Controllers
|
===================================================================
|
===================================================================
|
|
|
The WM9705 and WM9712 are high performance AC97 audio codecs with built
|
The WM9705 and WM9712 are high performance AC97 audio codecs with built
|
in touchscreen controllers that are mainly found in portable devices.
|
in touchscreen controllers that are mainly found in portable devices.
|
i.e. Dell Axim and Toshiba e740.
|
i.e. Dell Axim and Toshiba e740.
|
|
|
This driver uses the AC97 link controller for all communication with the
|
This driver uses the AC97 link controller for all communication with the
|
codec and can be either built into the kernel or built as a module.
|
codec and can be either built into the kernel or built as a module.
|
|
|
Build Instructions
|
Build Instructions
|
==================
|
==================
|
|
|
The driver will be built into the kernel if "sound card support" = y and
|
The driver will be built into the kernel if "sound card support" = y and
|
"wolfson AC97 touchscreen support" = y in the kernel sound configuration.
|
"wolfson AC97 touchscreen support" = y in the kernel sound configuration.
|
|
|
To build as a module, "wolfson AC97 touchscreen support" = m
|
To build as a module, "wolfson AC97 touchscreen support" = m
|
in the kernel sound configuration.
|
in the kernel sound configuration.
|
|
|
|
|
Driver Features
|
Driver Features
|
===============
|
===============
|
|
|
* supports WM9705, WM9712
|
* supports WM9705, WM9712
|
* polling mode
|
* polling mode
|
* coordinate polling
|
* coordinate polling
|
* adjustable rpu/dpp settings
|
* adjustable rpu/dpp settings
|
* adjustable pressure current
|
* adjustable pressure current
|
* adjustable sample settle delay
|
* adjustable sample settle delay
|
* 4 and 5 wire touchscreens (5 wire is WM9712 only)
|
* 4 and 5 wire touchscreens (5 wire is WM9712 only)
|
* pen down detection
|
* pen down detection
|
* power management
|
* power management
|
* AUX ADC sampling
|
* AUX ADC sampling
|
|
|
|
|
Driver Usage
|
Driver Usage
|
============
|
============
|
|
|
In order to use this driver, a char device called wm97xx with a major
|
In order to use this driver, a char device called wm97xx with a major
|
number of 10 and minor number 16 will have to be created under
|
number of 10 and minor number 16 will have to be created under
|
/dev/touchscreen.
|
/dev/touchscreen.
|
|
|
e.g.
|
e.g.
|
mknod /dev/touchscreen/wm97xx c 10 16
|
mknod /dev/touchscreen/wm97xx c 10 16
|
|
|
|
|
Driver Parameters
|
Driver Parameters
|
=================
|
=================
|
The driver can accept several parameters for fine tuning the touchscreen.
|
The driver can accept several parameters for fine tuning the touchscreen.
|
However, the syntax is different between module options and passing the
|
However, the syntax is different between module options and passing the
|
options in the kernel command line.
|
options in the kernel command line.
|
|
|
e.g.
|
e.g.
|
|
|
rpu=1 (module)
|
rpu=1 (module)
|
rpu:1 (kernel command line)
|
rpu:1 (kernel command line)
|
|
|
|
|
1. Codec sample mode. (mode)
|
1. Codec sample mode. (mode)
|
|
|
The WM9712 can sample touchscreen data in 3 different operating
|
The WM9712 can sample touchscreen data in 3 different operating
|
modes. i.e. polling, coordinate and continous.
|
modes. i.e. polling, coordinate and continous.
|
|
|
Polling:- The driver polls the codec and issues 3 seperate commands
|
Polling:- The driver polls the codec and issues 3 seperate commands
|
over the AC97 link to read X,Y and pressure.
|
over the AC97 link to read X,Y and pressure.
|
|
|
Coordinate: - The driver polls the codec and only issues 1 command over
|
Coordinate: - The driver polls the codec and only issues 1 command over
|
the AC97 link to read X,Y and pressure. This mode has
|
the AC97 link to read X,Y and pressure. This mode has
|
strict timing requirements and may drop samples if
|
strict timing requirements and may drop samples if
|
interrupted. However, it is less demanding on the AC97
|
interrupted. However, it is less demanding on the AC97
|
link. Note: this mode requires a larger delay than polling
|
link. Note: this mode requires a larger delay than polling
|
mode.
|
mode.
|
|
|
Continuous:- The codec automatically samples X,Y and pressure and then
|
Continuous:- The codec automatically samples X,Y and pressure and then
|
sends the data over the AC97 link in slots. This is then
|
sends the data over the AC97 link in slots. This is then
|
same method used by the codec when recording audio.
|
same method used by the codec when recording audio.
|
|
|
Set mode = 0 for polling, 1 for coordinate and 2 for continuous.
|
Set mode = 0 for polling, 1 for coordinate and 2 for continuous.
|
|
|
Default mode = 0
|
Default mode = 0
|
|
|
|
|
|
|
2. WM9712 Internal pull up for pen detect. (rpu)
|
2. WM9712 Internal pull up for pen detect. (rpu)
|
|
|
Pull up is in the range 1.02k (least sensitive) to 64k (most sensitive)
|
Pull up is in the range 1.02k (least sensitive) to 64k (most sensitive)
|
i.e. pull up resistance = 64k Ohms / rpu.
|
i.e. pull up resistance = 64k Ohms / rpu.
|
|
|
Adjust this value if you are having problems with pen detect not
|
Adjust this value if you are having problems with pen detect not
|
detecting any down events.
|
detecting any down events.
|
|
|
Set rpu = value
|
Set rpu = value
|
|
|
Default rpu = 1
|
Default rpu = 1
|
|
|
|
|
|
|
3. WM9705 Pen detect comparator threshold. (pdd)
|
3. WM9705 Pen detect comparator threshold. (pdd)
|
|
|
0 to Vmid in 15 steps, 0 = use zero power comparator with Vmid threshold
|
0 to Vmid in 15 steps, 0 = use zero power comparator with Vmid threshold
|
i.e. 1 = Vmid/15 threshold
|
i.e. 1 = Vmid/15 threshold
|
15 = Vmid/1 threshold
|
15 = Vmid/1 threshold
|
|
|
Adjust this value if you are having problems with pen detect not
|
Adjust this value if you are having problems with pen detect not
|
detecting any down events.
|
detecting any down events.
|
|
|
Set pdd = value
|
Set pdd = value
|
|
|
Default pdd = 0
|
Default pdd = 0
|
|
|
|
|
|
|
4. Set current used for pressure measurement. (pil)
|
4. Set current used for pressure measurement. (pil)
|
|
|
Set pil = 2 to use 400uA
|
Set pil = 2 to use 400uA
|
pil = 1 to use 200uA and
|
pil = 1 to use 200uA and
|
pil = 0 to disable pressure measurement.
|
pil = 0 to disable pressure measurement.
|
|
|
This is used to increase the range of values returned by the adc
|
This is used to increase the range of values returned by the adc
|
when measureing touchpanel pressure.
|
when measureing touchpanel pressure.
|
|
|
Default pil = 0
|
Default pil = 0
|
|
|
|
|
|
|
5. WM9712 Set 5 wire touchscreen mode. (five_wire)
|
5. WM9712 Set 5 wire touchscreen mode. (five_wire)
|
|
|
Set five_wire = 1 to enable 5 wire mode on the WM9712.
|
Set five_wire = 1 to enable 5 wire mode on the WM9712.
|
|
|
Default five_wire = 0
|
Default five_wire = 0
|
|
|
NOTE: Five wire mode does not allow for readback of pressure.
|
NOTE: Five wire mode does not allow for readback of pressure.
|
|
|
|
|
|
|
6. ADC sample delay. (delay)
|
6. ADC sample delay. (delay)
|
|
|
For accurate touchpanel measurements, some settling time may be
|
For accurate touchpanel measurements, some settling time may be
|
required between the switch matrix applying a voltage across the
|
required between the switch matrix applying a voltage across the
|
touchpanel plate and the ADC sampling the signal.
|
touchpanel plate and the ADC sampling the signal.
|
|
|
This delay can be set by setting delay = n, where n is the array
|
This delay can be set by setting delay = n, where n is the array
|
position of the delay in the array delay_table below.
|
position of the delay in the array delay_table below.
|
Long delays > 1ms are supported for completeness, but are not
|
Long delays > 1ms are supported for completeness, but are not
|
recommended.
|
recommended.
|
|
|
Default delay = 4
|
Default delay = 4
|
|
|
wm_delay uS AC97 link frames
|
wm_delay uS AC97 link frames
|
====================================
|
====================================
|
0 21 1
|
0 21 1
|
1 42 2
|
1 42 2
|
2 84 4
|
2 84 4
|
3 167 8
|
3 167 8
|
4 333 16
|
4 333 16
|
5 667 32
|
5 667 32
|
6 1000 48
|
6 1000 48
|
7 1333 64
|
7 1333 64
|
8 2000 96
|
8 2000 96
|
9 2667 128
|
9 2667 128
|
10 3333 160
|
10 3333 160
|
11 4000 192
|
11 4000 192
|
12 4667 224
|
12 4667 224
|
13 5333 256
|
13 5333 256
|
14 6000 288
|
14 6000 288
|
15 0 0 (No delay, switch matrix always on)
|
15 0 0 (No delay, switch matrix always on)
|
|
|
|
|
|
|
Contact
|
Contact
|
=======
|
=======
|
|
|
Further information about the WM9705 and WM9712 can be found on the
|
Further information about the WM9705 and WM9712 can be found on the
|
Wolfson Website. http://www.wolfsonmicro.com
|
Wolfson Website. http://www.wolfsonmicro.com
|
|
|
Please report bugs to liam.girdwood@wolfsonmicro.com or
|
Please report bugs to liam.girdwood@wolfsonmicro.com or
|
linux@wolfsonmicro.com
|
linux@wolfsonmicro.com
|
|
|