summaryrefslogtreecommitdiff
path: root/zephyr/Kconfig.keyboard
blob: 11ff1d14bacec16248c83064aef3b14f1caf3fd0 (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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# 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.

menuconfig PLATFORM_EC_KEYBOARD
	bool "Keyboard support"
	select HAS_TASK_KEYSCAN
	default n if ARCH_POSIX
	default y
	help
	  Enable compilation of support for scanning a keyboard and providing
	  the resulting input to the AP over the host interface. This consists
	  of a keyboard-scanning task which provides key scans via it calling
	  keyboard_state_changed() (for i8042) or its client calling
	  keyboard_scan_get_state() (for MKBP).

	  Enabling this automatically enables HAS_TASK_KEYSCAN since keyboard
	  scanning must run in its own task.

if PLATFORM_EC_KEYBOARD

choice "Protocol select"
	prompt "Select the keyboard protocol to use"
	help
	  Select the keyboard protocol used to communicate key presses to the
	  AP. PLATFORM_EC_KEYBOARD_PROTOCOL_8042 is supported by x86-compatible
	  application processors, and PLATFORM_EC_KEYBOARD_PROTOCOL_MKBP is
	  used for ARM application processors.

config PLATFORM_EC_KEYBOARD_PROTOCOL_8042
	bool "i8042"
	select HAS_TASK_KEYPROTO
	help
	  Use the i8042 protocol to communicate with the AP. This dates from the
	  Intel 8042 keyboard controller chip released in 1976. It uses two-way
	  communication via a few 8-bit registers, allowing key codes to be
	  sent to the AP when keys are pressed and released.

	  See here for docs: https://wiki.osdev.org/%228042%22_PS/2_Controller

endchoice # PLATFORM_EC_KEYBOARD

config PLATFORM_EC_KEYBOARD_BOARD_CONFIG
	bool "Use custom keyboard config"
	help
	  Enable support for custom keyboard config. in which case
	  keyscan_config must be defined by the board, using
	  struct keyboard_scan_config.

	  If this is not enabled, default values in common/keyboard_scan.c are
	  used.

config PLATFORM_EC_KEYBOARD_KEYPAD
	bool "Support a numeric keypad"
	help
	  Enable support for a keypad, a palm-sized keyboard section usually
	  placed on the far right. This contains nuumber keys and also some
	  commonly used symbols, to help speed up numeric data entry.

config PLATFORM_EC_KEYBOARD_COL2_INVERTED
	bool "A mechanism for passing KSO2 to H1 which inverts the signal"
	help
	  This option enables a mechanism for passing the column 2
	  to H1 which inverts the signal. The signal passing through H1
	  adds more delay. Need a larger delay value. Otherwise, pressing
	  Refresh key will also trigger T key, which is in the next scanning
	  column line. See http://b/156007029.

config PLATFORM_EC_CONSOLE_CMD_KEYBOARD_8042
	bool "Console command: i8042"
	default y if PLATFORM_EC_KEYBOARD_PROTOCOL_8042
	help
	  This command prints the state of the i8042 keyboard protocol and
	  includes the following subcommands:

	    codeset	- Get/set keyboard codeset
	    ctrlram	- Get/set keyboard controller RAM
	    internal    - Show internal information
	    kbd		- Print or toggle keyboard info
	    kblog	- Print or toggle keyboard event log (current disabled)
	    typematic	- Get/set typematic delays

choice
	prompt "Keyboard backlight"
	optional
	help
	  Enable support for EC control of a keyboard backlight. This enables
	  the "kblight" console command for manual control of the keyboard
	  backlight. This also enables the EC_CMD_PWM_SET_KEYBOARD_BACKLIGHT and
	  EC_CMD_PWM_GET_KEYBOARD_BACKLIGHT host commands for automatic control
	  by the AP.

	  TODO: support CONFIG_IO_EXPANDER_IT8801 driver which provides
	  PWM keyboard support.

config PLATFORM_EC_PWM_KBLIGHT
	bool "PWM keyboard backlight"
	depends on PLATFORM_EC_PWM
	help
	  Enables a PWM-controlled keyboard backlight controlled by a PWM signal
	  connected directly to the EC chipset. The board files must define
	  the C reference PWM_CH_KBLIGHT to the PWM channel used for the
	  keyboard backlight control.

endchoice  # Keyboard backlight

endif # PLATFORM_EC_KEYBOARD