About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / laptops / sonypi.txt


Based on kernel version 4.16.1. Page generated on 2018-04-09 11:53 EST.

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
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	
109	Module use:
110	-----------
111	
112	In order to automatically load the sonypi module on use, you can put those
113	lines a configuration file in /etc/modprobe.d/:
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	
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.
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog