import of upstream 2.4.34.4 from kernel.org
[linux-2.4.git] / Documentation / wolfson-touchscreen.txt
1
2 Wolfson Microelectronics WM9705 and WM9712 Touchscreen Controllers
3 ===================================================================
4
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. 
8
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. 
11
12 Build Instructions
13 ==================
14
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.
17
18 To build as a module, "wolfson AC97 touchscreen support" = m
19 in the kernel sound configuration.
20
21
22 Driver Features
23 ===============
24
25  * supports WM9705, WM9712
26  * polling mode
27  * coordinate polling
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)
32  * pen down detection
33  * power management
34  * AUX ADC sampling
35
36
37 Driver Usage
38 ============
39
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 
42 /dev/touchscreen.
43   
44 e.g.
45 mknod /dev/touchscreen/wm97xx c 10 16
46
47
48 Driver Parameters
49 =================
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.
53
54 e.g.
55
56 rpu=1   (module)
57 rpu:1   (kernel command line)
58
59
60 1. Codec sample mode. (mode)
61  
62    The WM9712 can sample touchscreen data in 3 different operating
63    modes. i.e. polling, coordinate and continous.
64   
65    Polling:-     The driver polls the codec and issues 3 seperate commands
66                  over the AC97 link to read X,Y and pressure.
67    
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
73                  mode.
74   
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.
78  
79    Set mode = 0 for polling, 1 for coordinate and 2 for continuous.
80              
81    Default mode = 0
82    
83    
84
85 2. WM9712 Internal pull up for pen detect. (rpu) 
86   
87    Pull up is in the range 1.02k (least sensitive) to 64k (most sensitive)
88    i.e. pull up resistance = 64k Ohms / rpu.
89    
90    Adjust this value if you are having problems with pen detect not 
91    detecting any down events.
92    
93    Set rpu = value
94
95    Default rpu = 1
96    
97    
98
99 3. WM9705 Pen detect comparator threshold. (pdd) 
100    
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
104    
105    Adjust this value if you are having problems with pen detect not 
106    detecting any down events.
107    
108    Set pdd = value
109
110    Default pdd = 0
111
112
113  
114 4. Set current used for pressure measurement. (pil)
115  
116    Set pil = 2 to use 400uA 
117        pil = 1 to use 200uA and
118        pil = 0 to disable pressure measurement.
119   
120    This is used to increase the range of values returned by the adc
121    when measureing touchpanel pressure. 
122    
123    Default pil = 0
124   
125
126
127 5. WM9712 Set 5 wire touchscreen mode. (five_wire)
128
129    Set five_wire = 1 to enable 5 wire mode on the WM9712.
130    
131    Default five_wire = 0
132    
133    NOTE: Five wire mode does not allow for readback of pressure.
134
135
136
137 6. ADC sample delay. (delay)
138   
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.
142   
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
146    recommended.
147    
148    Default delay = 4
149  
150     wm_delay     uS     AC97 link frames
151     ====================================
152        0              21          1
153        1              42          2
154        2          84          4
155        3         167          8
156        4         333         16
157        5         667         32
158        6        1000         48
159        7        1333         64
160        8        2000         96
161        9        2667        128
162       10        3333        160
163       11        4000        192
164       12        4667        224
165       13        5333        256
166       14        6000        288
167       15           0          0 (No delay, switch matrix always on)
168
169
170
171 Contact
172 =======
173
174 Further information about the WM9705 and WM9712 can be found on the 
175 Wolfson Website. http://www.wolfsonmicro.com
176
177 Please report bugs to liam.girdwood@wolfsonmicro.com or 
178                       linux@wolfsonmicro.com