iNexio touchscreen driver

Richard Lemon richard at
Sun Jun 22 17:04:23 PDT 2008

On 21/06/2008, at 9:16 PM, Peter Hutterer wrote:

> I had a look through the source and it looks fine to me. Much  
> easier to read
> than before, and i didn't spot anything obvious. The source is  
> clean and
> pretty straightforward, though I did notice a number of sections in  
> comments
> (mostly referring to a USB version). Can you comment on that?
>> I *think* I have made all of the changes you suggested and have  
>> pushed them
>> up to the repository and thanks for your offer of reviewing the code.
> For future commits, please try to split up commits into  
> semantically dependent
> chunks and commit them separately. This makes it easier to review  
> the history
> and find a certain change using git-log.
> A commit of "fixed everything suggested" is a bit hard to  
> understand without
> looking at the source code. I would prefer multiple commits such as
> "removed stale comments from tutorial driver"
> "convert C++ style comments to C comments"
> "indentation and whitespace fixes"
> All these give some indication into what they changed and make it  
> easier to
> track the driver on a high-level basis. I'd event recommend that  
> you revert
> the last patch and apply the changes in separate chunks again. Of  
> course, you
> need to decide yourself whether you want to spend the time doing  
> this :)
>> I know there are still some comments from your random sample, if  
>> you think
>> any of them are no longer appropriate I will happily remove them.
> The ones I didn't like were the ones that still referred to a  
> "random" device.
> From what I saw, they are all gone now.
>> I have also added mob access to the git repository if you want you  
>> can push
>> any changes anonymously to the mob branch of the repository. I am  
>> also
>> happy to add you as a developer on the main branch.
> Thanks, but for now I'll just mail you patches if required.
> Here is what I think should happen:
> - you apply for a fdo account. how to do so is somewhere on the  
> wiki, bonus
>   points if you can find it yourself :)
> - host the driver on your fdo account for a while, until we reach  
> something
>   that resembles a reasonably stable solution. It'd be great if we  
> can find
>   other users that test this driver and report back.
> - after that time, we can decide on merging it into the standard  
> distribution.
> The reasoning for delaying it is simple: we already have a number of
> unmaintained drivers in the tree that get little use (or bug  
> reports anyway)
> and I'd like to avoid adding one more. Delaying it for a while  
> gives us a hint
> on how many (potential) users there are out there.
> With the modularisation of X.Org, it really doesn't matter much  
> where the
> actual repository is anyway.
> On that note, I'd like to hear other's comments on this.
> Cheers,
>   Peter

Hi Peter,

I have applied for an account as per the instructions on http://

I have had both the serial and USB versions of the screen on loan  
from an Australian distributor and played around with both of them.

The comments regarding the USB version are due to the way the  
manufacturer built their USB version of the touchscreen. The iNexio  
USB touchscreen is identical to the serial screen with a USB chip  
jammed on the serial board to  tunnel the serial data through USB.

The USB version is reported by the linux kernel in /proc/bus/usb as a  
communications device (type 0x02) and is handled by the cdc_acm  
kernel driver and placed in /dev as ttyACM0. Some of the newer  
kernels need the following line added to cdc_acm.c to get the driver  
to claim the screen:

	{ USB_DEVICE(0x1870, 0x0001), /* iNexio touchscreen (don't ask) */
	.driver_info = NO_UNION_NORMAL, /* has no union descriptor */

I hope this clarifies the reason I have put some comments about the  
USB screen in both the man page and the source. I have tested the X  
driver with the USB screen using /dev/ttyACM0


PS Here is the devices entry for completeness...

T:  Bus=05 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  5 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=1870 ProdID=0001 Rev= 1.00
S:  Manufacturer=iNexio
S:  Product=iNexio USB
S:  SerialNumber=100000000
C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm
E:  Ad=83(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms

More information about the xorg mailing list