Cirque Touchpad Driver

Vadim Klishko vadim at
Wed Oct 3 18:13:53 UTC 2007

Hello Yogesh and Miguel,

Thank you for your response. So far, three people have expressed interest, including you. Welcome aboard! It makes four of us. I think that should be enough for a project this size. However, if anybody else wants to join us, please feel free. Also, any suggestions are welcome from those developers who don't want to work on this project, but want to share their ideas.

The first person who expressed interest is Aditya Newalkar. He did it without CC'ing to the entire list, so I hope he doesn't mind my sharing this information with the rest of the world.

I don't know if we should keep CC'ing the entire list as we start discussing the details of the project. On the one hand, it could be beneficial to keep everybody abreast of our progress, so someone could correct us in case we are doing something wrong. On the other hand, I don't really want to clutter everybody's mailboxes. Does anyone know what is the commonly accepted practice in this regard?


----- Original Message ----- 
From: "Vadim Klishko" <vadim at>
To: "Linux Driver Developers" <devel at>
Sent: Monday, October 01, 2007 8:34 PM
Subject: Cirque Touchpad Driver

Dear Colleagues:

Please let me introduce another driver project and also myself.

I am a full-time software engineer at Cirque Corporation ( The company is best known for its capacitive touchpads (see We have manufactured PS/2, serial, and USB touchpads in the past, but serial touchpads have been discontinued. I don't know how many users are out there who would be interested in a Linux driver for a serial touchpad, but we have seen interest in PS/2 and especially USB Linux drivers for our touchpads.

Both PS/2 and USB touchpads work as a standard mouse without a special driver, since they report themselves to the OS as a standard two-button or three-button wheel or wheelless mouse, depending on the particular model. When you move the finger on the touchpad surface, the touchpad simply reports x, y, button, and wheel data in PS/2 packets or HID reports. However, a dedicated driver can send a special command to the device to start reporting the absolute position of the finger. In this case, it is the driver's responsibility to convert the data into mouse data or, depending on which area of the touchpad the finger is touching, perform vertical or horizontal scrolling, zooming, keystrokes, or any other action that can be assigned to that area.

We already have Windows drivers that do that. I am one of the co-authors of Cirque's current Windows drivers and will be able to answer questions on how the device works. I also volunteer to act as Project Manager for this project.

I have also signed up to this mailing list and want to be on the development team for this project. Since I have access to the Windows driver source code, it will be easy for me to port whatever code is applicable to the Linux driver (after consulting with my management about what part of the source code is allowed to be published under GPL :-) ).

My biggest problem is that I don't know how to properly fit all that code into the Linux operating system. I am totally new to Linux. I have only played with it for a few months.

I know that Linux has support for Synaptics touchpads. Creating a driver similar to that (or perhaps expanding that driver to include support for Cirque devices) seems like a good approach. Are there any volunteers to help me with that?

I guess, if no one objects to my managing this project, I should probably start with defining the team of developers. Please respond if you would like to be on the team. Please also specify if you would like to work on the USB or on the PS/2 driver, or both.

As a side note, I am geographically located in Utah, which is in the Mountain time zone in the U.S. (UTC - 0600 until November 4; UTC - 0700 afterwards).

Thank you,


devel mailing list
devel at

More information about the devel mailing list