Ubuntu and 1wire touchscreens

Reggie
Hi all, I've managed to get the H43 resistive touchscreen working with the
ubuntu image on the mini210S, ts_calibrate works just fine and ts_test too.

Unfortunately, I can't seem to get it to work in X.  I've tried using
xinput_calibrator but it seems to be grabbing my usb mouse and fa_ts_input
at the same time.  Does fa_ts_input have anything to do with my 1wire
touchscreen?

If I do 'cat /proc/input/devices', I get:                                  
                                                           

I: Bus=0013 Vendor=dead Product=beef Version=0101
N: Name="fa_ts_input"
P: Phys=input(ts)
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=mouse0 event1 
B: PROP=0
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=1000003

I see that TOUCHSCREEN_IF is enabled if TOUCHSCREEN_1WIRE is selected in
the .config/kconfig, so it seems that they're related but I'm at a loss as
to what to try next.

Does anyone have any ideas?

Tomasz Myrta
fa_ts_input is for older resistive touchscreens, where position was
meausured by CPU's ADC.
1-wire touchscreen uses extra microcontroller on LCD's board and is
available through /dev/touchscreen-1wire

Reggie
Tomasz, thanks for clearing that up, I knew that /dev/touchscreen-1wire is
the resistive touchscreen interface for the ts on my H43 but enabling the
touchscreen-1wire driver also enabled the fa_ts_input driver.


so the next question is, how to get X to talk to tslib/touchscreen-1wire?

Tomasz Myrta
Have you read this thread ?
http://www.friendlyarm.net/forum/topic/3366

They say you need 3 things:

1. qt built with -qt-mouse-tslib option

2. loading 1-wire module into tslib:
module_raw one-wire-ts-input

3. proper tslib configuration:
export TSLIB_TSDEVICE=/dev/touchscreen-1wire
export QWS_MOUSE_PROTO="tslib:/dev/touchscreen-1wire
IntelliMouse:/dev/input/mouse1"

Tomasz Myrta
Sorry, I didn't notice you want to start X11, not Qt.

Your case should be similiar, you also need xorg-server compiled against
tslib - it's called xserver-xorg-input-tslib.

Reggie
Hi Tomasz, yes, I had read that post for getting the touchscreen working
with just tslib/qt.

the tslib stuff just didn't want to work with X for me for some reason, so
I messed around with the mini210_1wire.c input driver code, I've now got it
so that it will output an 'evdev' device via  udev defined
/dev/input/event1 device, and it will still use tslib if you want it to.

My code is a bit hinky and I don't totally understand what's going on with
it but I've got it working in X now.

if I use the tslib + one-wire-ts-input and /dev/touchscreen-1wire from the
console, ts_calibrate works correctly, if I use the 'input' raw module and
/dev/input/event1, ts_calibrate also works correctly.

If I try and use tslib + X, it gets things very wrong for some reason in
xinput_calibrator.

My evdev device didn't calibrate very well for some reason, so in my driver
code I've cheated a little bit and used the minX:Y/maxX:Y values from
ts_calibrate, I then use those to map the raw X/Y values into something
that the evdev device understands, once I added that code in, it seems to
work.