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