Back to home page

OSCL-LXR

 
 

    


0001 ==================================================
0002 Sony Programmable I/O Control Device Driver Readme
0003 ==================================================
0004 
0005         - Copyright (C) 2001-2004 Stelian Pop <stelian@popies.net>
0006         - Copyright (C) 2001-2002 AlcĂ´ve <www.alcove.com>
0007         - Copyright (C) 2001 Michael Ashley <m.ashley@unsw.edu.au>
0008         - Copyright (C) 2001 Junichi Morita <jun1m@mars.dti.ne.jp>
0009         - Copyright (C) 2000 Takaya Kinjo <t-kinjo@tc4.so-net.ne.jp>
0010         - Copyright (C) 2000 Andrew Tridgell <tridge@samba.org>
0011 
0012 This driver enables access to the Sony Programmable I/O Control Device which
0013 can be found in many Sony Vaio laptops. Some newer Sony laptops (seems to be
0014 limited to new FX series laptops, at least the FX501 and the FX702) lack a
0015 sonypi device and are not supported at all by this driver.
0016 
0017 It will give access (through a user space utility) to some events those laptops
0018 generate, like:
0019 
0020         - jogdial events (the small wheel on the side of Vaios)
0021         - capture button events (only on Vaio Picturebook series)
0022         - Fn keys
0023         - bluetooth button (only on C1VR model)
0024         - programmable keys, back, help, zoom, thumbphrase buttons, etc.
0025           (when available)
0026 
0027 Those events (see linux/sonypi.h) can be polled using the character device node
0028 /dev/sonypi (major 10, minor auto allocated or specified as a option).
0029 A simple daemon which translates the jogdial movements into mouse wheel events
0030 can be downloaded at: <http://popies.net/sonypi/>
0031 
0032 Another option to intercept the events is to get them directly through the
0033 input layer.
0034 
0035 This driver supports also some ioctl commands for setting the LCD screen
0036 brightness and querying the batteries charge information (some more
0037 commands may be added in the future).
0038 
0039 This driver can also be used to set the camera controls on Picturebook series
0040 (brightness, contrast etc), and is used by the video4linux driver for the
0041 Motion Eye camera.
0042 
0043 Please note that this driver was created by reverse engineering the Windows
0044 driver and the ACPI BIOS, because Sony doesn't agree to release any programming
0045 specs for its laptops. If someone convinces them to do so, drop me a note.
0046 
0047 Driver options:
0048 ---------------
0049 
0050 Several options can be passed to the sonypi driver using the standard
0051 module argument syntax (<param>=<value> when passing the option to the
0052 module or sonypi.<param>=<value> on the kernel boot line when sonypi is
0053 statically linked into the kernel). Those options are:
0054 
0055         =============== =======================================================
0056         minor:          minor number of the misc device /dev/sonypi,
0057                         default is -1 (automatic allocation, see /proc/misc
0058                         or kernel logs)
0059 
0060         camera:         if you have a PictureBook series Vaio (with the
0061                         integrated MotionEye camera), set this parameter to 1
0062                         in order to let the driver access to the camera
0063 
0064         fnkeyinit:      on some Vaios (C1VE, C1VR etc), the Fn key events don't
0065                         get enabled unless you set this parameter to 1.
0066                         Do not use this option unless it's actually necessary,
0067                         some Vaio models don't deal well with this option.
0068                         This option is available only if the kernel is
0069                         compiled without ACPI support (since it conflicts
0070                         with it and it shouldn't be required anyway if
0071                         ACPI is already enabled).
0072 
0073         verbose:        set to 1 to print unknown events received from the
0074                         sonypi device.
0075                         set to 2 to print all events received from the
0076                         sonypi device.
0077 
0078         compat:         uses some compatibility code for enabling the sonypi
0079                         events. If the driver worked for you in the past
0080                         (prior to version 1.5) and does not work anymore,
0081                         add this option and report to the author.
0082 
0083         mask:           event mask telling the driver what events will be
0084                         reported to the user. This parameter is required for
0085                         some Vaio models where the hardware reuses values
0086                         used in other Vaio models (like the FX series who does
0087                         not have a jogdial but reuses the jogdial events for
0088                         programmable keys events). The default event mask is
0089                         set to 0xffffffff, meaning that all possible events
0090                         will be tried. You can use the following bits to
0091                         construct your own event mask (from
0092                         drivers/char/sonypi.h)::
0093 
0094                                 SONYPI_JOGGER_MASK              0x0001
0095                                 SONYPI_CAPTURE_MASK             0x0002
0096                                 SONYPI_FNKEY_MASK               0x0004
0097                                 SONYPI_BLUETOOTH_MASK           0x0008
0098                                 SONYPI_PKEY_MASK                0x0010
0099                                 SONYPI_BACK_MASK                0x0020
0100                                 SONYPI_HELP_MASK                0x0040
0101                                 SONYPI_LID_MASK                 0x0080
0102                                 SONYPI_ZOOM_MASK                0x0100
0103                                 SONYPI_THUMBPHRASE_MASK         0x0200
0104                                 SONYPI_MEYE_MASK                0x0400
0105                                 SONYPI_MEMORYSTICK_MASK         0x0800
0106                                 SONYPI_BATTERY_MASK             0x1000
0107                                 SONYPI_WIRELESS_MASK            0x2000
0108 
0109         useinput:       if set (which is the default) two input devices are
0110                         created, one which interprets the jogdial events as
0111                         mouse events, the other one which acts like a
0112                         keyboard reporting the pressing of the special keys.
0113         =============== =======================================================
0114 
0115 Module use:
0116 -----------
0117 
0118 In order to automatically load the sonypi module on use, you can put those
0119 lines a configuration file in /etc/modprobe.d/::
0120 
0121         alias char-major-10-250 sonypi
0122         options sonypi minor=250
0123 
0124 This supposes the use of minor 250 for the sonypi device::
0125 
0126         # mknod /dev/sonypi c 10 250
0127 
0128 Bugs:
0129 -----
0130 
0131         - several users reported that this driver disables the BIOS-managed
0132           Fn-keys which put the laptop in sleeping state, or switch the
0133           external monitor on/off. There is no workaround yet, since this
0134           driver disables all APM management for those keys, by enabling the
0135           ACPI management (and the ACPI core stuff is not complete yet). If
0136           you have one of those laptops with working Fn keys and want to
0137           continue to use them, don't use this driver.
0138 
0139         - some users reported that the laptop speed is lower (dhrystone
0140           tested) when using the driver with the fnkeyinit parameter. I cannot
0141           reproduce it on my laptop and not all users have this problem.
0142           This happens because the fnkeyinit parameter enables the ACPI
0143           mode (but without additional ACPI control, like processor
0144           speed handling etc). Use ACPI instead of APM if it works on your
0145           laptop.
0146 
0147         - sonypi lacks the ability to distinguish between certain key
0148           events on some models.
0149 
0150         - some models with the nvidia card (geforce go 6200 tc) uses a
0151           different way to adjust the backlighting of the screen. There
0152           is a userspace utility to adjust the brightness on those models,
0153           which can be downloaded from
0154           https://www.acc.umu.se/~erikw/program/smartdimmer-0.1.tar.bz2
0155 
0156         - since all development was done by reverse engineering, there is
0157           *absolutely no guarantee* that this driver will not crash your
0158           laptop. Permanently.