Zephyr has evolved and now there is something that serve as a touchscreen device. (KSCAN_TOUCH)
the board definition file has been adapted slightly, using the focaltech ft5336 as a touch_controller. A minor change in this driver is enough to get data from the hynitron cst816S.
The big advantage : almost standard zephyr install! Unfortunately I cannot get the KSCAN_TOUCH working in an out-of-tree setup.
I have created the renamed ft9999 driver.
west build -p -b pinetime_devkit0 samples/display/lvgl
this driver does not exist, so it has been created. Still work in progress ….
(this is the old way of doing things ….)
the Hynitron cst816s is a touchscreen. Zephyr doesn’t handle touchscreens yet. In order to investigate, the touchscreen driver has been created as a sensor. In fact it senses your finger ;)
for this sensor does not exist any driver, so here’s what I did to create one under zephyr
adapt CMakeLists.txt adapt Kconfig add yaml file
The driver reads only one position. Multitouch is possible, but the screen is small….
see under drivers/sensor/cst816s
have a look at the pinetime.dts (under board/arm/pinetime) file:
&i2c1 {
cst816s@15 {
compatible = "hynitron,cst816s";
reg = <0x15>;
label = "CST816S";
};
};
There are two samples :
* samples/gui/lvtouch (graphical)
* samples/sensor/cst816s (no graphics)
The graphical sample doesn’t handle interrupts.
There is little available for this touchscreen.