treewide: replace '---help---' in Kconfig files with 'help'
[linux-block.git] / drivers / platform / chrome / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Platform support for Chrome OS hardware (Chromebooks and Chromeboxes)
4 #
5
6 config MFD_CROS_EC
7         tristate "Platform support for Chrome hardware (transitional)"
8         select CHROME_PLATFORMS
9         select CROS_EC
10         select MFD_CROS_EC_DEV
11         depends on X86 || ARM || ARM64 || COMPILE_TEST
12         help
13           This is a transitional Kconfig option and will be removed after
14           everyone enables the parts individually.
15
16 menuconfig CHROME_PLATFORMS
17         bool "Platform support for Chrome hardware"
18         depends on X86 || ARM || ARM64 || COMPILE_TEST
19         help
20           Say Y here to get to see options for platform support for
21           various Chromebooks and Chromeboxes. This option alone does
22           not add any kernel code.
23
24           If you say N, all options in this submenu will be skipped and disabled.
25
26 if CHROME_PLATFORMS
27
28 config CHROMEOS_LAPTOP
29         tristate "Chrome OS Laptop"
30         depends on I2C && DMI && X86
31         help
32           This driver instantiates i2c and smbus devices such as
33           light sensors and touchpads.
34
35           If you have a supported Chromebook, choose Y or M here.
36           The module will be called chromeos_laptop.
37
38 config CHROMEOS_PSTORE
39         tristate "Chrome OS pstore support"
40         depends on X86
41         help
42           This module instantiates the persistent storage on x86 ChromeOS
43           devices. It can be used to store away console logs and crash
44           information across reboots.
45
46           The range of memory used is 0xf00000-0x1000000, traditionally
47           the memory used to back VGA controller memory.
48
49           If you have a supported Chromebook, choose Y or M here.
50           The module will be called chromeos_pstore.
51
52 config CHROMEOS_TBMC
53         tristate "ChromeOS Tablet Switch Controller"
54         depends on ACPI
55         depends on INPUT
56         help
57           This option adds a driver for the tablet switch on
58           select Chrome OS systems.
59
60           To compile this driver as a module, choose M here: the
61           module will be called chromeos_tbmc.
62
63 config CROS_EC
64         tristate "ChromeOS Embedded Controller"
65         select CROS_EC_PROTO
66         depends on X86 || ARM || ARM64 || COMPILE_TEST
67         help
68           If you say Y here you get support for the ChromeOS Embedded
69           Controller (EC) providing keyboard, battery and power services.
70           You also need to enable the driver for the bus you are using. The
71           protocol for talking to the EC is defined by the bus driver.
72
73           To compile this driver as a module, choose M here: the
74           module will be called cros_ec.
75
76 config CROS_EC_I2C
77         tristate "ChromeOS Embedded Controller (I2C)"
78         depends on CROS_EC && I2C
79
80         help
81           If you say Y here, you get support for talking to the ChromeOS
82           EC through an I2C bus. This uses a simple byte-level protocol with
83           a checksum. Failing accesses will be retried three times to
84           improve reliability.
85
86 config CROS_EC_RPMSG
87         tristate "ChromeOS Embedded Controller (rpmsg)"
88         depends on CROS_EC && RPMSG && OF
89         help
90           If you say Y here, you get support for talking to the ChromeOS EC
91           through rpmsg. This uses a simple byte-level protocol with a
92           checksum. Also since there's no addition EC-to-host interrupt, this
93           use a byte in message to distinguish host event from host command.
94
95           To compile this driver as a module, choose M here: the
96           module will be called cros_ec_rpmsg.
97
98 config CROS_EC_ISHTP
99         tristate "ChromeOS Embedded Controller (ISHTP)"
100         depends on CROS_EC
101         depends on INTEL_ISH_HID
102         help
103           If you say Y here, you get support for talking to the ChromeOS EC
104           firmware running on Intel Integrated Sensor Hub (ISH), using the
105           ISH Transport protocol (ISH-TP). This uses a simple byte-level
106           protocol with a checksum.
107
108           To compile this driver as a module, choose M here: the
109           module will be called cros_ec_ishtp.
110
111 config CROS_EC_SPI
112         tristate "ChromeOS Embedded Controller (SPI)"
113         depends on CROS_EC && SPI
114
115         help
116           If you say Y here, you get support for talking to the ChromeOS EC
117           through a SPI bus, using a byte-level protocol. Since the EC's
118           response time cannot be guaranteed, we support ignoring
119           'pre-amble' bytes before the response actually starts.
120
121 config CROS_EC_LPC
122         tristate "ChromeOS Embedded Controller (LPC)"
123         depends on CROS_EC && ACPI && (X86 || COMPILE_TEST)
124         help
125           If you say Y here, you get support for talking to the ChromeOS EC
126           over an LPC bus, including the LPC Microchip EC (MEC) variant.
127           This uses a simple byte-level protocol with a checksum. This is
128           used for userspace access only. The kernel typically has its own
129           communication methods.
130
131           To compile this driver as a module, choose M here: the
132           module will be called cros_ec_lpcs.
133
134 config CROS_EC_PROTO
135         bool
136         help
137           ChromeOS EC communication protocol helpers.
138
139 config CROS_KBD_LED_BACKLIGHT
140         tristate "Backlight LED support for Chrome OS keyboards"
141         depends on LEDS_CLASS && ACPI
142         help
143           This option enables support for the keyboard backlight LEDs on
144           select Chrome OS systems.
145
146           To compile this driver as a module, choose M here: the
147           module will be called cros_kbd_led_backlight.
148
149 config CROS_EC_CHARDEV
150         tristate "ChromeOS EC miscdevice"
151         depends on MFD_CROS_EC_DEV
152         default MFD_CROS_EC_DEV
153         help
154           This driver adds file operations support to talk with the
155           ChromeOS EC from userspace via a character device.
156
157           To compile this driver as a module, choose M here: the
158           module will be called cros_ec_chardev.
159
160 config CROS_EC_LIGHTBAR
161         tristate "Chromebook Pixel's lightbar support"
162         depends on MFD_CROS_EC_DEV
163         default MFD_CROS_EC_DEV
164         help
165           This option exposes the Chromebook Pixel's lightbar to
166           userspace.
167
168           To compile this driver as a module, choose M here: the
169           module will be called cros_ec_lightbar.
170
171 config CROS_EC_VBC
172         tristate "ChromeOS EC vboot context support"
173         depends on MFD_CROS_EC_DEV && OF
174         default MFD_CROS_EC_DEV
175         help
176           This option exposes the ChromeOS EC vboot context nvram to
177           userspace.
178
179           To compile this driver as a module, choose M here: the
180           module will be called cros_ec_vbc.
181
182 config CROS_EC_DEBUGFS
183         tristate "Export ChromeOS EC internals in DebugFS"
184         depends on MFD_CROS_EC_DEV && DEBUG_FS
185         default MFD_CROS_EC_DEV
186         help
187           This option exposes the ChromeOS EC device internals to
188           userspace.
189
190           To compile this driver as a module, choose M here: the
191           module will be called cros_ec_debugfs.
192
193 config CROS_EC_SENSORHUB
194         tristate "ChromeOS EC MEMS Sensor Hub"
195         depends on MFD_CROS_EC_DEV
196         default MFD_CROS_EC_DEV
197         help
198           Allow loading IIO sensors. This driver is loaded by MFD and will in
199           turn query the EC and register the sensors.
200           It also spreads the sensor data coming from the EC to the IIO sensor
201           object.
202
203           To compile this driver as a module, choose M here: the
204           module will be called cros_ec_sensorhub.
205
206 config CROS_EC_SYSFS
207         tristate "ChromeOS EC control and information through sysfs"
208         depends on MFD_CROS_EC_DEV && SYSFS
209         default MFD_CROS_EC_DEV
210         help
211           This option exposes some sysfs attributes to control and get
212           information from ChromeOS EC.
213
214           To compile this driver as a module, choose M here: the
215           module will be called cros_ec_sysfs.
216
217 config CROS_EC_TYPEC
218         tristate "ChromeOS EC Type-C Connector Control"
219         depends on MFD_CROS_EC_DEV && TYPEC
220         depends on CROS_USBPD_NOTIFY
221         default MFD_CROS_EC_DEV
222         help
223           If you say Y here, you get support for accessing Type C connector
224           information from the Chrome OS EC.
225
226           To compile this driver as a module, choose M here: the module will be
227           called cros_ec_typec.
228
229 config CROS_USBPD_LOGGER
230         tristate "Logging driver for USB PD charger"
231         depends on CHARGER_CROS_USBPD
232         default y
233         select RTC_LIB
234         help
235           This option enables support for logging event data for the USB PD charger
236           available in the Embedded Controller on ChromeOS systems.
237
238           To compile this driver as a module, choose M here: the
239           module will be called cros_usbpd_logger.
240
241 config CROS_USBPD_NOTIFY
242         tristate "ChromeOS Type-C power delivery event notifier"
243         depends on MFD_CROS_EC_DEV
244         default MFD_CROS_EC_DEV
245         help
246           If you say Y here, you get support for Type-C PD event notifications
247           from the ChromeOS EC. On ACPI platorms this driver will bind to the
248           GOOG0003 ACPI device, and on platforms which don't have this device it
249           will get initialized on ECs which support the feature
250           EC_FEATURE_USB_PD.
251
252           To compile this driver as a module, choose M here: the
253           module will be called cros_usbpd_notify.
254
255 source "drivers/platform/chrome/wilco_ec/Kconfig"
256
257 endif # CHROMEOS_PLATFORMS