clean
[linux-2.4.21-pre4.git] / Documentation / sonypi.txt
1 Sony Programmable I/O Control Device Driver Readme
2 --------------------------------------------------
3         Copyright (C) 2001-2002 Stelian Pop <stelian@popies.net>
4         Copyright (C) 2001-2002 AlcĂ´ve <www.alcove.com>
5         Copyright (C) 2001 Michael Ashley <m.ashley@unsw.edu.au>
6         Copyright (C) 2001 Junichi Morita <jun1m@mars.dti.ne.jp>
7         Copyright (C) 2000 Takaya Kinjo <t-kinjo@tc4.so-net.ne.jp>
8         Copyright (C) 2000 Andrew Tridgell <tridge@samba.org>
9
10 This driver enables access to the Sony Programmable I/O Control Device which
11 can be found in many (all ?) Sony Vaio laptops.
12
13 It will give access (through a user space utility) to some events those laptops
14 generate, like:
15         - jogdial events (the small wheel on the side of Vaios)
16         - capture button events (only on Vaio Picturebook series)
17         - Fn keys
18         - bluetooth button (only on C1VR model)
19         - programmable keys, back, help, zoom, thumbphrase buttons, etc.
20           (when available)
21
22 Those events (see linux/sonypi.h) can be polled using the character device node
23 /dev/sonypi (major 10, minor auto allocated or specified as a option).
24
25 A simple daemon which translates the jogdial movements into mouse wheel events
26 can be downloaded at: <http://popies.net/sonypi/>
27
28 This driver supports also some ioctl commands for setting the LCD screen
29 brightness and querying the batteries charge information (some more 
30 commands may be added in the future).
31
32 This driver can also be used to set the camera controls on Picturebook series
33 (brightness, contrast etc), and is used by the video4linux driver for the 
34 Motion Eye camera.
35
36 Please note that this driver was created by reverse engineering the Windows
37 driver and the ACPI BIOS, because Sony doesn't agree to release any programming
38 specs for its laptops. If someone convinces them to do so, drop me a note.
39
40 Driver options:
41 ---------------
42
43 Several options can be passed to the sonypi driver, either by adding them
44 to /etc/modules.conf file, when the driver is compiled as a module or by
45 adding the following to the kernel command line (in your bootloader):
46
47         sonypi=minor[,verbose[,fnkeyinit[,camera[,compat[,mask]]]]]
48
49 where:
50
51         minor:          minor number of the misc device /dev/sonypi, 
52                         default is -1 (automatic allocation, see /proc/misc
53                         or kernel logs)
54
55         camera:         if you have a PictureBook series Vaio (with the
56                         integrated MotionEye camera), set this parameter to 1
57                         in order to let the driver access to the camera
58
59         fnkeyinit:      on some Vaios (C1VE, C1VR etc), the Fn key events don't
60                         get enabled unless you set this parameter to 1.
61                         Do not use this option unless it's actually necessary,
62                         some Vaio models don't deal well with this option.
63                         This option is available only if the kernel is 
64                         compiled without ACPI support (since it conflicts
65                         with it and it shouldn't be required anyway if 
66                         ACPI is already enabled).
67
68         verbose:        set to 1 to print unknown events received from the 
69                         sonypi device.
70                         set to 2 to print all events received from the 
71                         sonypi device.
72
73         compat:         uses some compatibility code for enabling the sonypi
74                         events. If the driver worked for you in the past
75                         (prior to version 1.5) and does not work anymore,
76                         add this option and report to the author.
77
78         mask:           event mask telling the driver what events will be
79                         reported to the user. This parameter is required for some 
80                         Vaio models where the hardware reuses values used in 
81                         other Vaio models (like the FX series who does not
82                         have a jogdial but reuses the jogdial events for
83                         programmable keys events). The default event mask is
84                         set to 0xffffffff, meaning that all possible events will be
85                         tried. You can use the following bits to construct
86                         your own event mask (from drivers/char/sonypi.h):
87                                 SONYPI_JOGGER_MASK              0x0001
88                                 SONYPI_CAPTURE_MASK             0x0002
89                                 SONYPI_FNKEY_MASK               0x0004
90                                 SONYPI_BLUETOOTH_MASK           0x0008
91                                 SONYPI_PKEY_MASK                0x0010
92                                 SONYPI_BACK_MASK                0x0020
93                                 SONYPI_HELP_MASK                0x0040
94                                 SONYPI_LID_MASK                 0x0080
95                                 SONYPI_ZOOM_MASK                0x0100
96                                 SONYPI_THUMBPHRASE_MASK         0x0200
97                                 SONYPI_MEYE_MASK                0x0400
98                                 SONYPI_MEMORYSTICK_MASK         0x0800
99
100 Module use:
101 -----------
102
103 In order to automatically load the sonypi module on use, you can put those
104 lines in your /etc/modules.conf file:
105
106         alias char-major-10-250 sonypi
107         options sonypi minor=250
108
109 This supposes the use of minor 250 for the sonypi device:
110
111         # mknod /dev/sonypi c 10 250
112
113 Bugs:
114 -----
115
116         - several users reported that this driver disables the BIOS-managed
117           Fn-keys which put the laptop in sleeping state, or switch the
118           external monitor on/off. There is no workaround yet, since this
119           driver disables all APM management for those keys, by enabling the
120           ACPI management (and the ACPI core stuff is not complete yet). If
121           you have one of those laptops with working Fn keys and want to 
122           continue to use them, don't use this driver.
123
124         - some users reported that the laptop speed is lower (dhrystone
125           tested) when using the driver with the fnkeyinit parameter. I cannot
126           reproduce it on my laptop and not all users have this problem.
127           This happens because the fnkeyinit parameter enables the ACPI 
128           mode (but without additionnal ACPI control, like processor 
129           speed handling etc). Use ACPI instead of APM if it works on your
130           laptop.
131         
132         - since all development was done by reverse engineering, there is
133           _absolutely no guarantee_ that this driver will not crash your
134           laptop. Permanently.