nuttx/Documentation/components
Jorge Guzman b5382c5fb3 Documentation: describe the contract for writing a keyboard driver
The keyboard driver documentation described the byte stream codec and
nothing else.  It never mentioned keyboard_register(), keyboard_event()
or the event types, so somebody writing a driver had no way to find the
interface that every keyboard in the tree actually uses.

That omission has a cost that can be counted:  six of the nine drivers
that register a keyboard report only the press and release types and
never the special ones, which means their arrow keys are silently
dropped by any application that follows the contract.  The header they
would read to find out declares two of the four types.

Document the contract, why the event type is what tells an arrow key
from the character that shares its value, what to name the device, how
to get a matrix keyboard working without writing a driver at all, and
how to test the result with or without the hardware.

Signed-off-by: Jorge Guzman <jorge.gzm@gmail.com>
2026-07-31 11:02:20 -03:00
..
arch Documentation: update organization.rst 2023-10-30 20:29:54 +08:00
audio docs/audio_tone: Add documentation about the audio tone driver 2026-07-13 09:42:26 +08:00
concurrency Documentation: Add documentation for seqcount. 2025-12-22 10:22:06 -03:00
drivers Documentation: describe the contract for writing a keyboard driver 2026-07-31 11:02:20 -03:00
filesystem Documentation/xipfs: Document the execute-in-place file system. 2026-07-29 07:49:03 -03:00
libs include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
mm mm/iob: add iob_init method to support external buffer init as iob structure 2025-12-25 10:08:49 +08:00
net Documentation/net: document lower-half driver performance tuning 2026-07-13 11:53:26 +02:00
nxgraphics !boards/boardctl: Remove BOARDIOC_INIT 2026-05-26 09:57:29 +08:00
tools tools/nxstyle: add a script to check a whole tree at once 2026-07-28 02:43:24 +08:00
binfmt.rst style: fix typos 2025-04-30 13:45:46 +08:00
boards.rst Documentation/components/boards.rst: fix typo 2026-06-04 09:58:42 +08:00
cmake.rst Documentation: initialize cmake doc 2023-10-27 13:21:40 -03:00
crypto.rst crypto: Support SHA2_224_HMAC 2026-07-04 14:15:17 +08:00
index.rst Documentation: Add documentation for seqcount. 2025-12-22 10:22:06 -03:00
nxflat.rst Documentation/xipfs: Document the execute-in-place file system. 2026-07-29 07:49:03 -03:00
openamp.rst Documentation: add dummy pages for missing top directories 2023-10-27 13:21:40 -03:00
paging.rst style: fix typos 2025-04-30 13:45:46 +08:00
syscall.rst Documentation: fix spelling 2025-05-15 11:33:41 +08:00
video.rst Documentation: add dummy pages for missing top directories 2023-10-27 13:21:40 -03:00
wireless.rst Documentation: add dummy pages for missing top directories 2023-10-27 13:21:40 -03:00