Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: input: cros-ec-keyb: Add a new property describing top row

Add a new property `function-row-physmap` to the
device tree for the custom keyboard top row design.

The property describes the rows/columns of the top row keys
from left to right.

Signed-off-by: Philip Chen <philipchen@chromium.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20210115122412.v7.1.I025fb861cd5fa0ef5286b7dce514728e9df7ae74@changeid
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

authored by

Philip Chen and committed by
Dmitry Torokhov
311a27da 415e915f

+24
+24
Documentation/devicetree/bindings/input/google,cros-ec-keyb.yaml
··· 31 31 if the EC does not have its own logic or hardware for this. 32 32 type: boolean 33 33 34 + function-row-physmap: 35 + minItems: 1 36 + maxItems: 15 37 + description: | 38 + An ordered u32 array describing the rows/columns (in the scan matrix) 39 + of top row keys from physical left (KEY_F1) to right. Each entry 40 + encodes the row/column as: 41 + (((row) & 0xFF) << 24) | (((column) & 0xFF) << 16) 42 + where the lower 16 bits are reserved. This property is specified only 43 + when the keyboard has a custom design for the top row keys. 44 + 34 45 required: 35 46 - compatible 36 47 ··· 49 38 50 39 examples: 51 40 - | 41 + #include <dt-bindings/input/input.h> 52 42 cros-ec-keyb { 53 43 compatible = "google,cros-ec-keyb"; 54 44 keypad,num-rows = <8>; 55 45 keypad,num-columns = <13>; 56 46 google,needs-ghost-filter; 47 + function-row-physmap = < 48 + MATRIX_KEY(0x00, 0x02, 0) /* T1 */ 49 + MATRIX_KEY(0x03, 0x02, 0) /* T2 */ 50 + MATRIX_KEY(0x02, 0x02, 0) /* T3 */ 51 + MATRIX_KEY(0x01, 0x02, 0) /* T4 */ 52 + MATRIX_KEY(0x03, 0x04, 0) /* T5 */ 53 + MATRIX_KEY(0x02, 0x04, 0) /* T6 */ 54 + MATRIX_KEY(0x01, 0x04, 0) /* T7 */ 55 + MATRIX_KEY(0x02, 0x09, 0) /* T8 */ 56 + MATRIX_KEY(0x01, 0x09, 0) /* T9 */ 57 + MATRIX_KEY(0x00, 0x04, 0) /* T10 */ 58 + >; 57 59 /* 58 60 * Keymap entries take the form of 0xRRCCKKKK where 59 61 * RR=Row CC=Column KKKK=Key Code