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