d896657bf9
Device migrations: - cyd-4848S040c - guition-jc1060p470ciwy - guition-jc2432w328c - guition-jc3248w535c (known issue with display and touch, Shadowtrance will look into it) - guition-jc8048w550c - heltec-wifi-lora-32-v3 - lilygo-tdeck-max (excluding graphics) - lilygo-tdisplay - lilygo-tdisplay-s3 - lilygo-tdongle-s3 - lilygo-tlora-pager Driver migrations: - Implemented haptic driver interface in kernel - AXS15231b - BQ25896 - BQ27220 - CST328 - CST6xx - DRV2605 - JD9165 - Custom LilyGO driver for T-Lora Pager - SSD1306 - ST7701 - ST7735 - SY6970 - TCA8418 Fixes/improvements: - Boot app: support for multiple power devices, improved UI - lvgl_devices and related code: fixes for mapping - Support for arrays in dts parser
75 lines
2.7 KiB
YAML
75 lines
2.7 KiB
YAML
description: >
|
|
Texas Instruments TCA8418 I2C keypad matrix scanner. Exposed as a generic KEYBOARD_TYPE
|
|
device: the driver only scans the matrix and reports raw key events, while the character
|
|
layout comes entirely from the keymap-lc/keymap-uc/keymap-sy devicetree properties, so the
|
|
same driver works for any board's physical key layout.
|
|
|
|
include: ["i2c-device.yaml"]
|
|
|
|
compatible: "ti,tca8418"
|
|
|
|
bus: i2c
|
|
|
|
properties:
|
|
rows:
|
|
type: int
|
|
required: true
|
|
description: Number of keypad matrix rows wired (max 8)
|
|
columns:
|
|
type: int
|
|
required: true
|
|
description: Number of keypad matrix columns wired (max 10)
|
|
reverse-columns:
|
|
type: boolean
|
|
default: false
|
|
description: >
|
|
Some boards wire columns in reverse of their silkscreen/keymap order; when true, the raw
|
|
hardware column is mirrored (columns-1-col) before indexing into the keymap arrays and
|
|
before comparing against shift-row/shift-col/sym-row/sym-col.
|
|
keymap-lc:
|
|
type: array
|
|
element-type: uint8_t
|
|
required: true
|
|
description: >
|
|
Base (lowercase) layer keymap, rows*columns bytes in row-major order (already in
|
|
silkscreen/keymap column order - see reverse-columns). 0 = no key at this position (e.g.
|
|
a blank matrix position, or a position handled as a modifier via shift-row/shift-col/
|
|
sym-row/sym-col instead). Non-zero bytes are sent as-is via KeyboardKeyData::key (ASCII
|
|
or an LVGL LV_KEY_* code).
|
|
keymap-uc:
|
|
type: array
|
|
element-type: uint8_t
|
|
description: >
|
|
Uppercase/shift layer keymap, same shape as keymap-lc. Omit if this keyboard has no
|
|
separate uppercase layer (shift-row/shift-col should then also be left unset).
|
|
keymap-sy:
|
|
type: array
|
|
element-type: uint8_t
|
|
description: >
|
|
Symbol layer keymap, same shape as keymap-lc. Omit if this keyboard has no symbol layer
|
|
(sym-row/sym-col should then also be left unset).
|
|
shift-row:
|
|
type: int
|
|
default: 255
|
|
description: Matrix row (keymap column order) of the shift/uppercase modifier key, 255 if none
|
|
shift-col:
|
|
type: int
|
|
default: 255
|
|
description: Matrix column (keymap column order) of the shift/uppercase modifier key, 255 if none
|
|
sym-row:
|
|
type: int
|
|
default: 255
|
|
description: Matrix row (keymap column order) of the symbol-layer modifier key, 255 if none
|
|
sym-col:
|
|
type: int
|
|
default: 255
|
|
description: Matrix column (keymap column order) of the symbol-layer modifier key, 255 if none
|
|
pin-reset:
|
|
type: phandles
|
|
default: GPIO_PIN_SPEC_NONE
|
|
description: Optional reset GPIO pin, pulsed once at start (20 ms assert, 60 ms settle)
|
|
reset-active-high:
|
|
type: boolean
|
|
default: false
|
|
description: Whether the reset pin is active high
|