1Sony Programmable I/O Control Device Driver Readme
   3        Copyright (C) 2001-2004 Stelian Pop <>
   4        Copyright (C) 2001-2002 Alc\xC3\xB4ve <>
   5        Copyright (C) 2001 Michael Ashley <>
   6        Copyright (C) 2001 Junichi Morita <>
   7        Copyright (C) 2000 Takaya Kinjo <>
   8        Copyright (C) 2000 Andrew Tridgell <>
  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.
  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)
  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: <>
  29Another option to intercept the events is to get them directly through the
  30input layer.
  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).
  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.
  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.
  44Driver options:
  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:
  52        minor:          minor number of the misc device /dev/sonypi,
  53                        default is -1 (automatic allocation, see /proc/misc
  54                        or kernel logs)
  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
  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).
  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.
  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.
  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
 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.
 109Module use:
 112In order to automatically load the sonypi module on use, you can put those
 113lines a configuration file in /etc/modprobe.d/:
 115        alias char-major-10-250 sonypi
 116        options sonypi minor=250
 118This supposes the use of minor 250 for the sonypi device:
 120        # mknod /dev/sonypi c 10 250
 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.
 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.
 141        - sonypi lacks the ability to distinguish between certain key
 142          events on some models.
 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
 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.