:::: MENU ::::
Posts tagged with: chipsee

Display panel and touchscreen driver support for Pandaboard ES

Chipsee pandaboard expansion set comes with ubuntu-precise kernel. Even though, modified files are already indicated by readme files, as far as i know there isn’t any vanilla kernel integration of expansion set drivers.

To achieve that, I analyzed some linux kernel patches* from version 3.2 through version 3.10.80. And then, modified both chipsee provided files and kernel files.

These are the changed files:

+ drivers/video/omap2/displays/panel-chipsee-dpi.c
M drivers/video/omap2/displays/Kconfig
M drivers/video/omap2/displays/Makefile
M drivers/input/touchscreen/ads7846.c
M arch/arm/mach-omap2/board-omap4panda.c
M arch/arm/mach-omap2/dss-common.c

And this is the related commit:
https://github.com/eckucukoglu/sober-kernel/commit/f6820c3a926b6ffd685b47f5ac9d4aac7b78dc26

Although, it is not proper to implement platform spesifics in dss-common.c, since it is an experimental work, i didn’t hesitate to do that.

After patching kernel, one should calibrate the touchscreen. Tslib (http://processors.wiki.ti.com/index.php/Tslib) is the hardware handling utility and it has ts_calibrate tool to do that. However, before executing ts_calibrate, some environment variables should be set:

export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal

Moreover, in TSLIB_CONFFILE, module_raw input line has to be commented out.

After all of them, to run a qt application in linux frame buffer, these arguments should be passed:

-platform linuxfb -plugin evdevkeyboard:/dev/input/eventX -plugin evdevmouse:/dev/input/eventY -plugin tslib:/dev/input/eventZ

X, Y, Z numbers can be checked from /sys/class/input.

*: Here are the kernel patches that I analyzed:
http://permalink.gmane.org/gmane.linux.kernel.commits.head/335192
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=a8d5e41cef43bd740ca7c56ff316bdee30040a91
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=a9105cb5c25aa335b11088549927a8aa9eaa7ef2
http://www.spinics.net/lists/linux-omap/msg86741.html
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=54b956b903607
http://permalink.gmane.org/gmane.linux.ports.arm.omap/87206
http://permalink.gmane.org/gmane.linux.ports.arm.omap/73541
http://lists.infradead.org/pipermail/linux-arm-kernel/2011-December/076194.html
http://lists.infradead.org/pipermail/linux-arm-kernel/2012-October/128063.html
http://lkml.iu.edu/hypermail/linux/kernel/1007.3/02904.html
http://lists.infradead.org/pipermail/linux-arm-kernel/2011-February/040712.html