1Sony 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 10This driver enables access to the Sony Programmable I/O Control Device which 11can be found in many Sony Vaio laptops. Some newer Sony laptops (seems to be 12limited to new FX series laptops, at least the FX501 and the FX702) lack a 13sonypi device and are not supported at all by this driver. 14 15It will give access (through a user space utility) to some events those laptops 16generate, 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 24Those 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). 26A simple daemon which translates the jogdial movements into mouse wheel events 27can be downloaded at: <http://popies.net/sonypi/> 28 29Another option to intercept the events is to get them directly through the 30input layer. 31 32This driver supports also some ioctl commands for setting the LCD screen 33brightness and querying the batteries charge information (some more 34commands may be added in the future). 35 36This 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 38Motion Eye camera. 39 40Please note that this driver was created by reverse engineering the Windows 41driver and the ACPI BIOS, because Sony doesn't agree to release any programming 42specs for its laptops. If someone convinces them to do so, drop me a note. 43 44Driver options: 45--------------- 46 47Several options can be passed to the sonypi driver using the standard 48module argument syntax (<param>=<value> when passing the option to the 49module or sonypi.<param>=<value> on the kernel boot line when sonypi is 50statically 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 102 SONYPI_WIRELESS_MASK 0x2000 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 109Module use: 110----------- 111 112In order to automatically load the sonypi module on use, you can put those 113lines in your /etc/modprobe.conf file: 114 115 alias char-major-10-250 sonypi 116 options sonypi minor=250 117 118This supposes the use of minor 250 for the sonypi device: 119 120 # mknod /dev/sonypi c 10 250 121 122Bugs: 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 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 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. 153