xref: /linux/Documentation/input/devices/bcm5974.rst (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1.. include:: <isonum.txt>
2
3------------------------
4BCM5974 Driver (bcm5974)
5------------------------
6
7:Copyright: |copy| 2008-2009	Henrik Rydberg <rydberg@euromail.se>
8
9The USB initialization and package decoding was made by Scott Shawcroft as
10part of the touchd user-space driver project:
11
12:Copyright: |copy| 2008	Scott Shawcroft (scott.shawcroft@gmail.com)
13
14The 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
24This driver adds support for the multi-touch trackpad on the new Apple
25Macbook Air and Macbook Pro laptops. It replaces the appletouch driver on
26those computers, and integrates well with the synaptics driver of the Xorg
27system.
28
29Known to work on Macbook Air, Macbook Pro Penryn and the new unibody
30Macbook 5 and Macbook Pro 5.
31
32Usage
33-----
34
35The driver loads automatically for the supported usb device ids, and
36becomes available both as an event device (/dev/input/event*) and as a
37mouse via the mousedev driver (/dev/input/mice).
38
39USB Race
40--------
41
42The Apple multi-touch trackpads report both mouse and keyboard events via
43different interfaces of the same usb device. This creates a race condition
44with the HID driver, which, if not told otherwise, will find the standard
45HID mouse and keyboard, and claim the whole device. To remedy, the usb
46product id must be listed in the mouse_ignore list of the hid driver.
47
48Debug output
49------------
50
51To ease the development for new hardware version, verbose packet output can
52be switched on with the debug kernel module parameter. The range [1-9]
53yields 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
61Trivia
62------
63
64The driver was developed at the ubuntu forums in June 2008 [#f1]_, and now has
65a 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/
71