summaryrefslogtreecommitdiff
path: root/zephyr/dts/bindings/keyboard/cros-keyscan.yaml
blob: 11caf7fd11cd430936f30d9e4487ee7f96f4497a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
 # Copyright 2021 The Chromium OS Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.

description: Keyboard scanning properties

compatible: "cros-keyscan"

properties:
    output-settle:
      type: int
      required: false
      default: 80
      description: |
          Delay time, in microseconds, between setting up output and waiting for
          it to settle. 80 microseconds is the recommended value when column 2
          of the keyboard passes through the Google Security Chip. Otherwise 50
          microseconds is the recommended value.

    debounce-down:
      type: int
      required: false
      default: 9000
      description: |
          Time, in microseconds, to debounce key-down.

    debounce-up:
      type: int
      required: false
      default: 30000
      description: |
          Time, in microseconds, to debounce key-up.

    scan-period:
      type: int
      required: false
      default: 3000
      description: |
          Time between scans when keyboard scan task runs in polling mode.

    min-post-scan-delay:
      type: int
      required: false
      default: 1000
      description: |
          Minimum time between end of one scan and start of the next one.
          This ensures keyboard scanning doesn't starve the rest of the system
          if the scan period is set too short, or if other higher-priority
          system activity is starving the keyboard scan task too.

    poll-timeout:
      type: int
      required: false
      default: 100000
      description: |
          Revert to interrupt mode after no keyboard activity for this period.
          Specified in microseconds.

    actual-key-mask:
      type: array
      required: false
      default: [
        0x1c, # C0
        0xff, # C1
        0xff, # C2
        0xff, # C3
        0xff, # C4
        0xf5, # C5
        0xff, # C6
        0xa4, # C7
        0xfe, # C8
        0x55, # C9
        0xfa, # C10
        0xff, # C11
        0xca, # C12
        0x00, # C13 for keypad
        0x00, # C14 for keypad
      ]
      description: |
          Keyboard scanning mask. For each keyboard column, specify which
          keyboard rows actually exist. Default key mask includes scanning for
          full Chromebook keyboard, excluding the keypad.