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 <[email protected]>
---
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
Quoting Philip Chen (2021-01-14 18:30:30)
> 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 <[email protected]>
Reviewed-by: Stephen Boyd <[email protected]>
One nit below.
> 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
> @@ -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 */
Can we include the header file for MATRIX_KEY so we can use the macro
here?
On Thu, Jan 14, 2021 at 6:38 PM Stephen Boyd <[email protected]> wrote:
>
> Quoting Philip Chen (2021-01-14 18:30:30)
> > 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 <[email protected]>
>
> Reviewed-by: Stephen Boyd <[email protected]>
>
> One nit below.
>
> > 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
> > @@ -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 */
>
> Can we include the header file for MATRIX_KEY so we can use the macro
> here?
Sure.