| 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 | 
 |  | 
 | 	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 in your /etc/modprobe.conf file: | 
 |  | 
 | 	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. | 
 |  | 
 | 	- since all development was done by reverse engineering, there is | 
 | 	  _absolutely no guarantee_ that this driver will not crash your | 
 | 	  laptop. Permanently. |