xref: /OK3568_Linux_fs/kernel/Documentation/input/devices/bcm5974.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. include:: <isonum.txt>
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun------------------------
4*4882a593SmuzhiyunBCM5974 Driver (bcm5974)
5*4882a593Smuzhiyun------------------------
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun:Copyright: |copy| 2008-2009	Henrik Rydberg <rydberg@euromail.se>
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunThe USB initialization and package decoding was made by Scott Shawcroft as
10*4882a593Smuzhiyunpart of the touchd user-space driver project:
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun:Copyright: |copy| 2008	Scott Shawcroft (scott.shawcroft@gmail.com)
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunThe BCM5974 driver is based on the appletouch driver:
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun:Copyright: |copy| 2001-2004	Greg Kroah-Hartman (greg@kroah.com)
17*4882a593Smuzhiyun:Copyright: |copy| 2005		Johannes Berg (johannes@sipsolutions.net)
18*4882a593Smuzhiyun:Copyright: |copy| 2005		Stelian Pop (stelian@popies.net)
19*4882a593Smuzhiyun:Copyright: |copy| 2005		Frank Arnold (frank@scirocco-5v-turbo.de)
20*4882a593Smuzhiyun:Copyright: |copy| 2005		Peter Osterlund (petero2@telia.com)
21*4882a593Smuzhiyun:Copyright: |copy| 2005		Michael Hanselmann (linux-kernel@hansmi.ch)
22*4882a593Smuzhiyun:Copyright: |copy| 2006		Nicolas Boichat (nicolas@boichat.ch)
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunThis driver adds support for the multi-touch trackpad on the new Apple
25*4882a593SmuzhiyunMacbook Air and Macbook Pro laptops. It replaces the appletouch driver on
26*4882a593Smuzhiyunthose computers, and integrates well with the synaptics driver of the Xorg
27*4882a593Smuzhiyunsystem.
28*4882a593Smuzhiyun
29*4882a593SmuzhiyunKnown to work on Macbook Air, Macbook Pro Penryn and the new unibody
30*4882a593SmuzhiyunMacbook 5 and Macbook Pro 5.
31*4882a593Smuzhiyun
32*4882a593SmuzhiyunUsage
33*4882a593Smuzhiyun-----
34*4882a593Smuzhiyun
35*4882a593SmuzhiyunThe driver loads automatically for the supported usb device ids, and
36*4882a593Smuzhiyunbecomes available both as an event device (/dev/input/event*) and as a
37*4882a593Smuzhiyunmouse via the mousedev driver (/dev/input/mice).
38*4882a593Smuzhiyun
39*4882a593SmuzhiyunUSB Race
40*4882a593Smuzhiyun--------
41*4882a593Smuzhiyun
42*4882a593SmuzhiyunThe Apple multi-touch trackpads report both mouse and keyboard events via
43*4882a593Smuzhiyundifferent interfaces of the same usb device. This creates a race condition
44*4882a593Smuzhiyunwith the HID driver, which, if not told otherwise, will find the standard
45*4882a593SmuzhiyunHID mouse and keyboard, and claim the whole device. To remedy, the usb
46*4882a593Smuzhiyunproduct id must be listed in the mouse_ignore list of the hid driver.
47*4882a593Smuzhiyun
48*4882a593SmuzhiyunDebug output
49*4882a593Smuzhiyun------------
50*4882a593Smuzhiyun
51*4882a593SmuzhiyunTo ease the development for new hardware version, verbose packet output can
52*4882a593Smuzhiyunbe switched on with the debug kernel module parameter. The range [1-9]
53*4882a593Smuzhiyunyields different levels of verbosity. Example (as root)::
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun    echo -n 9 > /sys/module/bcm5974/parameters/debug
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun    tail -f /var/log/debug
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun    echo -n 0 > /sys/module/bcm5974/parameters/debug
60*4882a593Smuzhiyun
61*4882a593SmuzhiyunTrivia
62*4882a593Smuzhiyun------
63*4882a593Smuzhiyun
64*4882a593SmuzhiyunThe driver was developed at the ubuntu forums in June 2008 [#f1]_, and now has
65*4882a593Smuzhiyuna more permanent home at bitmath.org [#f2]_.
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun.. Links
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun.. [#f1] http://ubuntuforums.org/showthread.php?t=840040
70*4882a593Smuzhiyun.. [#f2] http://bitmath.org/code/
71