2 Wolfson Microelectronics WM9705 and WM9712 Touchscreen Controllers
3 ===================================================================
5 The WM9705 and WM9712 are high performance AC97 audio codecs with built
6 in touchscreen controllers that are mainly found in portable devices.
7 i.e. Dell Axim and Toshiba e740.
9 This driver uses the AC97 link controller for all communication with the
10 codec and can be either built into the kernel or built as a module.
15 The driver will be built into the kernel if "sound card support" = y and
16 "wolfson AC97 touchscreen support" = y in the kernel sound configuration.
18 To build as a module, "wolfson AC97 touchscreen support" = m
19 in the kernel sound configuration.
25 * supports WM9705, WM9712
28 * adjustable rpu/dpp settings
29 * adjustable pressure current
30 * adjustable sample settle delay
31 * 4 and 5 wire touchscreens (5 wire is WM9712 only)
40 In order to use this driver, a char device called wm97xx with a major
41 number of 10 and minor number 16 will have to be created under
45 mknod /dev/touchscreen/wm97xx c 10 16
50 The driver can accept several parameters for fine tuning the touchscreen.
51 However, the syntax is different between module options and passing the
52 options in the kernel command line.
57 rpu:1 (kernel command line)
60 1. Codec sample mode. (mode)
62 The WM9712 can sample touchscreen data in 3 different operating
63 modes. i.e. polling, coordinate and continous.
65 Polling:- The driver polls the codec and issues 3 seperate commands
66 over the AC97 link to read X,Y and pressure.
68 Coordinate: - The driver polls the codec and only issues 1 command over
69 the AC97 link to read X,Y and pressure. This mode has
70 strict timing requirements and may drop samples if
71 interrupted. However, it is less demanding on the AC97
72 link. Note: this mode requires a larger delay than polling
75 Continuous:- The codec automatically samples X,Y and pressure and then
76 sends the data over the AC97 link in slots. This is then
77 same method used by the codec when recording audio.
79 Set mode = 0 for polling, 1 for coordinate and 2 for continuous.
85 2. WM9712 Internal pull up for pen detect. (rpu)
87 Pull up is in the range 1.02k (least sensitive) to 64k (most sensitive)
88 i.e. pull up resistance = 64k Ohms / rpu.
90 Adjust this value if you are having problems with pen detect not
91 detecting any down events.
99 3. WM9705 Pen detect comparator threshold. (pdd)
101 0 to Vmid in 15 steps, 0 = use zero power comparator with Vmid threshold
102 i.e. 1 = Vmid/15 threshold
103 15 = Vmid/1 threshold
105 Adjust this value if you are having problems with pen detect not
106 detecting any down events.
114 4. Set current used for pressure measurement. (pil)
116 Set pil = 2 to use 400uA
117 pil = 1 to use 200uA and
118 pil = 0 to disable pressure measurement.
120 This is used to increase the range of values returned by the adc
121 when measureing touchpanel pressure.
127 5. WM9712 Set 5 wire touchscreen mode. (five_wire)
129 Set five_wire = 1 to enable 5 wire mode on the WM9712.
131 Default five_wire = 0
133 NOTE: Five wire mode does not allow for readback of pressure.
137 6. ADC sample delay. (delay)
139 For accurate touchpanel measurements, some settling time may be
140 required between the switch matrix applying a voltage across the
141 touchpanel plate and the ADC sampling the signal.
143 This delay can be set by setting delay = n, where n is the array
144 position of the delay in the array delay_table below.
145 Long delays > 1ms are supported for completeness, but are not
150 wm_delay uS AC97 link frames
151 ====================================
167 15 0 0 (No delay, switch matrix always on)
174 Further information about the WM9705 and WM9712 can be found on the
175 Wolfson Website. http://www.wolfsonmicro.com
177 Please report bugs to liam.girdwood@wolfsonmicro.com or
178 linux@wolfsonmicro.com