diff options
Diffstat (limited to 'docs/configuration/keyboard.md')
-rw-r--r-- | docs/configuration/keyboard.md | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/docs/configuration/keyboard.md b/docs/configuration/keyboard.md deleted file mode 100644 index 8398fefbde..0000000000 --- a/docs/configuration/keyboard.md +++ /dev/null @@ -1,87 +0,0 @@ -## Configure Keyboard - -## Config options - -Keyboard options start with `CONFIG_KEYBOARD*`. Evaluate whether each option is -appropriate to add to `baseboard.h` or `board.h`. - -Your board should select only one of these options to configure the protocol -used to send keyboard events to the AP. - -- `CONFIG_KEYBOARD_PROTOCOL_8042` - Systems with an x86 AP use the 8042 - protocol. -- `CONFIG_KEYBOARD_PROTOCOL_MKBP` - Systems without an x86 AP (e.g. ARM) - typically use the MKBP protocol. - -## Feature Parameters - -- `CONFIG_KEYBOARD_KSO_BASE <pin>` - Evaluate whether this parameter is - required by your board. - -## GPIOs and Alternate Pins - -Define `ALTERNATE()` pin entries for all keyboard matrix signals, to connect the -signals to the keyboard controller of the EC chipset. - -Note that KSO_02 is purposely not configured for for alternate mode. See the -[H1 Special Requirements](#H1-Special-Requirements) below for details. - -```c -/* Example Keyboard pin setup */ -#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP) -ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */ -ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */ -ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */ -ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */ -ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */ -ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */ -``` - -See the [GPIO](./gpio.md) documentation for additional details on the GPIO -macros. - -## Data structures - -- `struct keyboard_scan_config keyscan_config` - This can be used to customize - the keyboard scanner (e.g. scan frequency, debounce duration, etc.). - -## Tasks - -The `KEYSCAN` task monitors the keyboard matrix for new key presses and is -required by this feature. The priority is set as one of the highest priority -tasks in the system, typically only below the `PD_Cn` and `PD_INT_Cn` tasks. - -```c - TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \ -``` - -The `KEYPROTO` task handles sending and receiving 8042 protocol messages from -the AP and is required when `CONFIG_KEYBOARD_PROTOCOL_8042` is used. The typical -priority is lower than the `HOSTCMD` task. - -```c - TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \ -``` - -## Additional Notes - -- If you're including keyboard support, you should also define - `CONFIG_CMD_KEYBOARD` to enable keyboard debug commands from the EC console. -- `CONFIG_KEYBOARD_PROTOCOL_MKBP` automatically enables `CONFIG_MKBP_EVENT`. -- Boards that enable `CONFIG_KEYBOARD_PROTOCOL_8042` will often also define - `CONFIG_MKBP_EVENT` for sensor events. In this case only motion sensor data - is reported using the MKBP protocol, keyboard events are provided using the - 8042 protocol. Refer to [Configuring Sensors](./motion_sensors.md) for more - information. - -### H1 Special Requirements - -On Boards that use the H1 secure microcontroller, one KSI (keyboard scan input) -signal and one KSO (keyboard scan output) signal are routed through the H1 -microcontroller. There are additional GPIO and configuration options that must -be enabled in this case. - The KSO_02/COL2 signal is always inverted. Explicitly -configure the GPIO to default low. `c GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* -KSO_02 inverted */` - Add the define `CONFIG_KEYBOARD_COL2_INVERTED` to -`baseboard.h` or `board.h`. - If required by the board, define one of the -following options to configure the KSI pin routed to the H1 microcontroller. - -`CONFIG_KEYBOARD_PWRBTN_ASSERTS_KSI2` - `CONFIG_KEYBOARD_PWRBTN_ASSERTS_KSI3` |