Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | Sony Programmable I/O Control Device Driver Readme |
| 2 | -------------------------------------------------- |
| 3 | Copyright (C) 2001-2004 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 Sony Vaio laptops. Some newer Sony laptops (seems to be |
| 12 | limited to new FX series laptops, at least the FX501 and the FX702) lack a |
| 13 | sonypi device and are not supported at all by this driver. |
| 14 | |
| 15 | It will give access (through a user space utility) to some events those laptops |
| 16 | generate, like: |
| 17 | - jogdial events (the small wheel on the side of Vaios) |
| 18 | - capture button events (only on Vaio Picturebook series) |
| 19 | - Fn keys |
| 20 | - bluetooth button (only on C1VR model) |
| 21 | - programmable keys, back, help, zoom, thumbphrase buttons, etc. |
| 22 | (when available) |
| 23 | |
| 24 | Those events (see linux/sonypi.h) can be polled using the character device node |
| 25 | /dev/sonypi (major 10, minor auto allocated or specified as a option). |
| 26 | A simple daemon which translates the jogdial movements into mouse wheel events |
| 27 | can be downloaded at: <http://popies.net/sonypi/> |
| 28 | |
| 29 | Another option to intercept the events is to get them directly through the |
| 30 | input layer. |
| 31 | |
| 32 | This driver supports also some ioctl commands for setting the LCD screen |
| 33 | brightness and querying the batteries charge information (some more |
| 34 | commands may be added in the future). |
| 35 | |
| 36 | This driver can also be used to set the camera controls on Picturebook series |
| 37 | (brightness, contrast etc), and is used by the video4linux driver for the |
| 38 | Motion Eye camera. |
| 39 | |
| 40 | Please note that this driver was created by reverse engineering the Windows |
| 41 | driver and the ACPI BIOS, because Sony doesn't agree to release any programming |
| 42 | specs for its laptops. If someone convinces them to do so, drop me a note. |
| 43 | |
| 44 | Driver options: |
| 45 | --------------- |
| 46 | |
| 47 | Several options can be passed to the sonypi driver using the standard |
| 48 | module argument syntax (<param>=<value> when passing the option to the |
| 49 | module or sonypi.<param>=<value> on the kernel boot line when sonypi is |
| 50 | statically linked into the kernel). Those options are: |
| 51 | |
| 52 | minor: minor number of the misc device /dev/sonypi, |
| 53 | default is -1 (automatic allocation, see /proc/misc |
| 54 | or kernel logs) |
| 55 | |
| 56 | camera: if you have a PictureBook series Vaio (with the |
| 57 | integrated MotionEye camera), set this parameter to 1 |
| 58 | in order to let the driver access to the camera |
| 59 | |
| 60 | fnkeyinit: on some Vaios (C1VE, C1VR etc), the Fn key events don't |
| 61 | get enabled unless you set this parameter to 1. |
| 62 | Do not use this option unless it's actually necessary, |
| 63 | some Vaio models don't deal well with this option. |
| 64 | This option is available only if the kernel is |
| 65 | compiled without ACPI support (since it conflicts |
| 66 | with it and it shouldn't be required anyway if |
| 67 | ACPI is already enabled). |
| 68 | |
| 69 | verbose: set to 1 to print unknown events received from the |
| 70 | sonypi device. |
| 71 | set to 2 to print all events received from the |
| 72 | sonypi device. |
| 73 | |
| 74 | compat: uses some compatibility code for enabling the sonypi |
| 75 | events. If the driver worked for you in the past |
| 76 | (prior to version 1.5) and does not work anymore, |
| 77 | add this option and report to the author. |
| 78 | |
| 79 | mask: event mask telling the driver what events will be |
| 80 | reported to the user. This parameter is required for |
| 81 | some Vaio models where the hardware reuses values |
| 82 | used in other Vaio models (like the FX series who does |
| 83 | not have a jogdial but reuses the jogdial events for |
| 84 | programmable keys events). The default event mask is |
| 85 | set to 0xffffffff, meaning that all possible events |
| 86 | will be tried. You can use the following bits to |
| 87 | construct your own event mask (from |
| 88 | drivers/char/sonypi.h): |
| 89 | SONYPI_JOGGER_MASK 0x0001 |
| 90 | SONYPI_CAPTURE_MASK 0x0002 |
| 91 | SONYPI_FNKEY_MASK 0x0004 |
| 92 | SONYPI_BLUETOOTH_MASK 0x0008 |
| 93 | SONYPI_PKEY_MASK 0x0010 |
| 94 | SONYPI_BACK_MASK 0x0020 |
| 95 | SONYPI_HELP_MASK 0x0040 |
| 96 | SONYPI_LID_MASK 0x0080 |
| 97 | SONYPI_ZOOM_MASK 0x0100 |
| 98 | SONYPI_THUMBPHRASE_MASK 0x0200 |
| 99 | SONYPI_MEYE_MASK 0x0400 |
| 100 | SONYPI_MEMORYSTICK_MASK 0x0800 |
| 101 | SONYPI_BATTERY_MASK 0x1000 |
Erik Waling | d2052c1 | 2005-09-06 15:17:02 -0700 | [diff] [blame] | 102 | SONYPI_WIRELESS_MASK 0x2000 |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 103 | |
| 104 | useinput: if set (which is the default) two input devices are |
| 105 | created, one which interprets the jogdial events as |
| 106 | mouse events, the other one which acts like a |
| 107 | keyboard reporting the pressing of the special keys. |
| 108 | |
| 109 | Module use: |
| 110 | ----------- |
| 111 | |
| 112 | In order to automatically load the sonypi module on use, you can put those |
| 113 | lines in your /etc/modprobe.conf file: |
| 114 | |
| 115 | alias char-major-10-250 sonypi |
| 116 | options sonypi minor=250 |
| 117 | |
| 118 | This supposes the use of minor 250 for the sonypi device: |
| 119 | |
| 120 | # mknod /dev/sonypi c 10 250 |
| 121 | |
| 122 | Bugs: |
| 123 | ----- |
| 124 | |
| 125 | - several users reported that this driver disables the BIOS-managed |
| 126 | Fn-keys which put the laptop in sleeping state, or switch the |
| 127 | external monitor on/off. There is no workaround yet, since this |
| 128 | driver disables all APM management for those keys, by enabling the |
| 129 | ACPI management (and the ACPI core stuff is not complete yet). If |
| 130 | you have one of those laptops with working Fn keys and want to |
| 131 | continue to use them, don't use this driver. |
| 132 | |
| 133 | - some users reported that the laptop speed is lower (dhrystone |
| 134 | tested) when using the driver with the fnkeyinit parameter. I cannot |
| 135 | reproduce it on my laptop and not all users have this problem. |
| 136 | This happens because the fnkeyinit parameter enables the ACPI |
| 137 | mode (but without additional ACPI control, like processor |
| 138 | speed handling etc). Use ACPI instead of APM if it works on your |
| 139 | laptop. |
| 140 | |
Erik Waling | d2052c1 | 2005-09-06 15:17:02 -0700 | [diff] [blame] | 141 | - sonypi lacks the ability to distinguish between certain key |
| 142 | events on some models. |
| 143 | |
| 144 | - some models with the nvidia card (geforce go 6200 tc) uses a |
| 145 | different way to adjust the backlighting of the screen. There |
| 146 | is a userspace utility to adjust the brightness on those models, |
| 147 | which can be downloaded from |
| 148 | http://www.acc.umu.se/~erikw/program/smartdimmer-0.1.tar.bz2 |
| 149 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 150 | - since all development was done by reverse engineering, there is |
| 151 | _absolutely no guarantee_ that this driver will not crash your |
| 152 | laptop. Permanently. |