|  | ================================================== | 
|  | Sony Programmable I/O Control Device Driver Readme | 
|  | ================================================== | 
|  |  | 
|  | - Copyright (C) 2001-2004 Stelian Pop <stelian@popies.net> | 
|  | - Copyright (C) 2001-2002 Alcรดve <www.alcove.com> | 
|  | - Copyright (C) 2001 Michael Ashley <m.ashley@unsw.edu.au> | 
|  | - Copyright (C) 2001 Junichi Morita <jun1m@mars.dti.ne.jp> | 
|  | - Copyright (C) 2000 Takaya Kinjo <t-kinjo@tc4.so-net.ne.jp> | 
|  | - Copyright (C) 2000 Andrew Tridgell <tridge@samba.org> | 
|  |  | 
|  | This driver enables access to the Sony Programmable I/O Control Device which | 
|  | can be found in many Sony Vaio laptops. Some newer Sony laptops (seems to be | 
|  | limited to new FX series laptops, at least the FX501 and the FX702) lack a | 
|  | sonypi device and are not supported at all by this driver. | 
|  |  | 
|  | It will give access (through a user space utility) to some events those laptops | 
|  | generate, like: | 
|  |  | 
|  | - jogdial events (the small wheel on the side of Vaios) | 
|  | - capture button events (only on Vaio Picturebook series) | 
|  | - Fn keys | 
|  | - bluetooth button (only on C1VR model) | 
|  | - programmable keys, back, help, zoom, thumbphrase buttons, etc. | 
|  | (when available) | 
|  |  | 
|  | Those events (see linux/sonypi.h) can be polled using the character device node | 
|  | /dev/sonypi (major 10, minor auto allocated or specified as a option). | 
|  | A simple daemon which translates the jogdial movements into mouse wheel events | 
|  | can be downloaded at: <http://popies.net/sonypi/> | 
|  |  | 
|  | Another option to intercept the events is to get them directly through the | 
|  | input layer. | 
|  |  | 
|  | This driver supports also some ioctl commands for setting the LCD screen | 
|  | brightness and querying the batteries charge information (some more | 
|  | commands may be added in the future). | 
|  |  | 
|  | This driver can also be used to set the camera controls on Picturebook series | 
|  | (brightness, contrast etc), and is used by the video4linux driver for the | 
|  | Motion Eye camera. | 
|  |  | 
|  | Please note that this driver was created by reverse engineering the Windows | 
|  | driver and the ACPI BIOS, because Sony doesn't agree to release any programming | 
|  | specs for its laptops. If someone convinces them to do so, drop me a note. | 
|  |  | 
|  | Driver options: | 
|  | --------------- | 
|  |  | 
|  | Several options can be passed to the sonypi driver using the standard | 
|  | module argument syntax (<param>=<value> when passing the option to the | 
|  | module or sonypi.<param>=<value> on the kernel boot line when sonypi is | 
|  | statically linked into the kernel). Those options are: | 
|  |  | 
|  | =============== ======================================================= | 
|  | minor:		minor number of the misc device /dev/sonypi, | 
|  | default is -1 (automatic allocation, see /proc/misc | 
|  | or kernel logs) | 
|  |  | 
|  | camera:		if you have a PictureBook series Vaio (with the | 
|  | integrated MotionEye camera), set this parameter to 1 | 
|  | in order to let the driver access to the camera | 
|  |  | 
|  | fnkeyinit:	on some Vaios (C1VE, C1VR etc), the Fn key events don't | 
|  | get enabled unless you set this parameter to 1. | 
|  | Do not use this option unless it's actually necessary, | 
|  | some Vaio models don't deal well with this option. | 
|  | This option is available only if the kernel is | 
|  | compiled without ACPI support (since it conflicts | 
|  | with it and it shouldn't be required anyway if | 
|  | ACPI is already enabled). | 
|  |  | 
|  | verbose:	set to 1 to print unknown events received from the | 
|  | sonypi device. | 
|  | set to 2 to print all events received from the | 
|  | sonypi device. | 
|  |  | 
|  | compat:		uses some compatibility code for enabling the sonypi | 
|  | events. If the driver worked for you in the past | 
|  | (prior to version 1.5) and does not work anymore, | 
|  | add this option and report to the author. | 
|  |  | 
|  | mask:		event mask telling the driver what events will be | 
|  | reported to the user. This parameter is required for | 
|  | some Vaio models where the hardware reuses values | 
|  | used in other Vaio models (like the FX series who does | 
|  | not have a jogdial but reuses the jogdial events for | 
|  | programmable keys events). The default event mask is | 
|  | set to 0xffffffff, meaning that all possible events | 
|  | will be tried. You can use the following bits to | 
|  | construct your own event mask (from | 
|  | drivers/char/sonypi.h):: | 
|  |  | 
|  | SONYPI_JOGGER_MASK		0x0001 | 
|  | SONYPI_CAPTURE_MASK		0x0002 | 
|  | SONYPI_FNKEY_MASK		0x0004 | 
|  | SONYPI_BLUETOOTH_MASK		0x0008 | 
|  | SONYPI_PKEY_MASK		0x0010 | 
|  | SONYPI_BACK_MASK		0x0020 | 
|  | SONYPI_HELP_MASK		0x0040 | 
|  | SONYPI_LID_MASK			0x0080 | 
|  | SONYPI_ZOOM_MASK		0x0100 | 
|  | SONYPI_THUMBPHRASE_MASK		0x0200 | 
|  | SONYPI_MEYE_MASK		0x0400 | 
|  | SONYPI_MEMORYSTICK_MASK		0x0800 | 
|  | SONYPI_BATTERY_MASK		0x1000 | 
|  | SONYPI_WIRELESS_MASK		0x2000 | 
|  |  | 
|  | useinput:	if set (which is the default) two input devices are | 
|  | created, one which interprets the jogdial events as | 
|  | mouse events, the other one which acts like a | 
|  | keyboard reporting the pressing of the special keys. | 
|  | =============== ======================================================= | 
|  |  | 
|  | Module use: | 
|  | ----------- | 
|  |  | 
|  | In order to automatically load the sonypi module on use, you can put those | 
|  | lines a configuration file in /etc/modprobe.d/:: | 
|  |  | 
|  | alias char-major-10-250 sonypi | 
|  | options sonypi minor=250 | 
|  |  | 
|  | This supposes the use of minor 250 for the sonypi device:: | 
|  |  | 
|  | # mknod /dev/sonypi c 10 250 | 
|  |  | 
|  | Bugs: | 
|  | ----- | 
|  |  | 
|  | - several users reported that this driver disables the BIOS-managed | 
|  | Fn-keys which put the laptop in sleeping state, or switch the | 
|  | external monitor on/off. There is no workaround yet, since this | 
|  | driver disables all APM management for those keys, by enabling the | 
|  | ACPI management (and the ACPI core stuff is not complete yet). If | 
|  | you have one of those laptops with working Fn keys and want to | 
|  | continue to use them, don't use this driver. | 
|  |  | 
|  | - some users reported that the laptop speed is lower (dhrystone | 
|  | tested) when using the driver with the fnkeyinit parameter. I cannot | 
|  | reproduce it on my laptop and not all users have this problem. | 
|  | This happens because the fnkeyinit parameter enables the ACPI | 
|  | mode (but without additional ACPI control, like processor | 
|  | speed handling etc). Use ACPI instead of APM if it works on your | 
|  | laptop. | 
|  |  | 
|  | - sonypi lacks the ability to distinguish between certain key | 
|  | events on some models. | 
|  |  | 
|  | - some models with the nvidia card (geforce go 6200 tc) uses a | 
|  | different way to adjust the backlighting of the screen. There | 
|  | is a userspace utility to adjust the brightness on those models, | 
|  | which can be downloaded from | 
|  | http://www.acc.umu.se/~erikw/program/smartdimmer-0.1.tar.bz2 | 
|  |  | 
|  | - since all development was done by reverse engineering, there is | 
|  | *absolutely no guarantee* that this driver will not crash your | 
|  | laptop. Permanently. |