]> asedeno.scripts.mit.edu Git - linux.git/blob - drivers/platform/chrome/Kconfig
Linux 5.6-rc7
[linux.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 CONFIG_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_USBPD_LOGGER
218         tristate "Logging driver for USB PD charger"
219         depends on CHARGER_CROS_USBPD
220         default y
221         select RTC_LIB
222         help
223           This option enables support for logging event data for the USB PD charger
224           available in the Embedded Controller on ChromeOS systems.
225
226           To compile this driver as a module, choose M here: the
227           module will be called cros_usbpd_logger.
228
229 source "drivers/platform/chrome/wilco_ec/Kconfig"
230
231 endif # CHROMEOS_PLATFORMS