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@xxxxxxxxxxxx> --- Changes in v6: - remove $ref and add `function-row-physmap` to the example Changes in v5: - add minItems and maxItems for `function-row-physmap` Changes in v2: - add `function-row-physmap` instead of `google,custom-keyb-top-row` .../bindings/input/google,cros-ec-keyb.yaml | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Documentation/devicetree/bindings/input/google,cros-ec-keyb.yaml b/Documentation/devicetree/bindings/input/google,cros-ec-keyb.yaml index 8e50c14a9d778..a742b0777ee6d 100644 --- a/Documentation/devicetree/bindings/input/google,cros-ec-keyb.yaml +++ b/Documentation/devicetree/bindings/input/google,cros-ec-keyb.yaml @@ -31,6 +31,17 @@ properties: if the EC does not have its own logic or hardware for this. type: boolean + function-row-physmap: + minItems: 1 + maxItems: 15 + description: | + An ordered u32 array describing the rows/columns (in the scan matrix) + of top row keys from physical left (KEY_F1) to right. Each entry + encodes the row/column as: + (((row) & 0xFF) << 24) | (((column) & 0xFF) << 16) + where the lower 16 bits are reserved. This property is specified only + when the keyboard has a custom design for the top row keys. + required: - compatible @@ -43,6 +54,18 @@ examples: keypad,num-rows = <8>; keypad,num-columns = <13>; google,needs-ghost-filter; + function-row-physmap = < + 0x00020000 /* T1 */ + 0x03020000 /* T2 */ + 0x02020000 /* T3 */ + 0x01020000 /* T4 */ + 0x03040000 /* T5 */ + 0x02040000 /* T6 */ + 0x01040000 /* T7 */ + 0x02090000 /* T8 */ + 0x01090000 /* T9 */ + 0x00040000 /* T10 */ + >; /* * Keymap entries take the form of 0xRRCCKKKK where * RR=Row CC=Column KKKK=Key Code -- 2.26.2