This is the short log mike posted in the review section of this project:
CY8CTMA300_TOUCH: dump_buf (012): 0xFF 0xF...
The Problem of reading data is irq releated, i think. if you add an delay of 100 ms before reading data you get sometimes some data.
Okay that is weird, maybe we could write a while loop that idles for x msecs and then checks if the data is val...
Here you go, altough im not sure why you think v2.1 is faster
So.. it took me a bit longer than i thought, but i think i have a pretty good grasp on how the driver works. I added locks to the enabling/disabling of the IRQ to avoid contention and added a reg_read_intcause_sync() call; hopefully this will stop...
Now i got a driver with sync calls working but i get no data :'(
Well you still need to somehow pass the data into the async_read_buf, because cy8ctma300_isr_work() is reading directly from it. EDIT2: Or maybe we could directly invoke cy8ctma300_...