fdcavalcanti opened a new pull request, #19674: URL: https://github.com/apache/nuttx/pull/19674
## Summary Add support for ST7123 touchscreen controller (I2C only). It requires board level init to register a callback, as polling mode is not supported. - Add an I2C lower-half driver for the ST7123 capacitive touchscreen (drivers/input/st7123.c) - Interrupt-driven only: board GPIO ISR calls st7123_interrupt_callback(), HPWORK reads the full touch frame and reports contacts via touch_event() - Exposes /dev/inputN through the standard touchscreen upper half (multi-touch, DOWN/MOVE/UP, pressure, basic gestures) - Document board integration under `Documentation/components/drivers/character/input/st7123.rst` Datasheet: [link](https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1132/ST7123-TDDI-Interface-Protocol-V01.11.pdf.pdf) ## Impact - New optional Kconfig: `CONFIG_INPUT_ST7123` (default off); no effect unless selected - Boards must wire I2C + INT and call `st7123_register()` / `st7123_interrupt_callback();` polling is not supported - Apps read `struct touch_sample_s;` multi-touch needs a buffer sized with `SIZEOF_TOUCH_SAMPLE_S(n)` ## Testing Tested on `esp32p4-tab5`. Device is working as expected. Here's the output from `tc_main` (touchscreen example): ``` nsh> tc tc_main: nsamples: 0 tc_main: Opening /dev/input0 ` ``` Touching corner: ``` Sample : npoints : 1 Point 1 : id : 0 flags : 39 x : 66 y : 58 h : 0 w : 0 pressure : 46 gesture : ff timestamp : 5680000 ``` Touch middle: ``` Sample : npoints : 1 Point 1 : id : 0 flags : 1c x : 380 y : 597 h : 0 w : 0 pressure : 15 gesture : 00 timestamp : 88860000 ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
