xref: /linux/drivers/platform/chrome/Kconfig (revision 3fb57847f6ec30e9aa27af7b37aed7a7419d50aa)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2ab043105SOlof Johansson#
3ab043105SOlof Johansson# Platform support for Chrome OS hardware (Chromebooks and Chromeboxes)
4ab043105SOlof Johansson#
5ab043105SOlof Johansson
6ab043105SOlof Johanssonmenuconfig CHROME_PLATFORMS
7ab043105SOlof Johansson	bool "Platform support for Chrome hardware"
823ecee32SThierry Reding	depends on X86 || ARM || ARM64 || COMPILE_TEST
9a7f7f624SMasahiro Yamada	help
10ab043105SOlof Johansson	  Say Y here to get to see options for platform support for
11ab043105SOlof Johansson	  various Chromebooks and Chromeboxes. This option alone does
12ab043105SOlof Johansson	  not add any kernel code.
13ab043105SOlof Johansson
14ab043105SOlof Johansson	  If you say N, all options in this submenu will be skipped and disabled.
15ab043105SOlof Johansson
16ab043105SOlof Johanssonif CHROME_PLATFORMS
17ab043105SOlof Johansson
18ab043105SOlof Johanssonconfig CHROMEOS_LAPTOP
19ab043105SOlof Johansson	tristate "Chrome OS Laptop"
20e7c256fbSBill Richardson	depends on I2C && DMI && X86
21a7f7f624SMasahiro Yamada	help
22ab043105SOlof Johansson	  This driver instantiates i2c and smbus devices such as
23ab043105SOlof Johansson	  light sensors and touchpads.
24ab043105SOlof Johansson
25ab043105SOlof Johansson	  If you have a supported Chromebook, choose Y or M here.
26ab043105SOlof Johansson	  The module will be called chromeos_laptop.
27ab043105SOlof Johansson
289742e127SOlof Johanssonconfig CHROMEOS_PSTORE
299742e127SOlof Johansson	tristate "Chrome OS pstore support"
30e7c256fbSBill Richardson	depends on X86
31a7f7f624SMasahiro Yamada	help
329742e127SOlof Johansson	  This module instantiates the persistent storage on x86 ChromeOS
339742e127SOlof Johansson	  devices. It can be used to store away console logs and crash
349742e127SOlof Johansson	  information across reboots.
359742e127SOlof Johansson
369742e127SOlof Johansson	  The range of memory used is 0xf00000-0x1000000, traditionally
379742e127SOlof Johansson	  the memory used to back VGA controller memory.
389742e127SOlof Johansson
399742e127SOlof Johansson	  If you have a supported Chromebook, choose Y or M here.
409742e127SOlof Johansson	  The module will be called chromeos_pstore.
419742e127SOlof Johansson
42b418f741SGwendal Grignouconfig CHROMEOS_TBMC
43b418f741SGwendal Grignou	tristate "ChromeOS Tablet Switch Controller"
44b418f741SGwendal Grignou	depends on ACPI
45485aa74aSArnd Bergmann	depends on INPUT
46b418f741SGwendal Grignou	help
47b418f741SGwendal Grignou	  This option adds a driver for the tablet switch on
48b418f741SGwendal Grignou	  select Chrome OS systems.
49b418f741SGwendal Grignou
50b418f741SGwendal Grignou	  To compile this driver as a module, choose M here: the
51b418f741SGwendal Grignou	  module will be called chromeos_tbmc.
52b418f741SGwendal Grignou
5347f11e0bSEnric Balletbo i Serraconfig CROS_EC
5447f11e0bSEnric Balletbo i Serra	tristate "ChromeOS Embedded Controller"
5547f11e0bSEnric Balletbo i Serra	select CROS_EC_PROTO
5647f11e0bSEnric Balletbo i Serra	depends on X86 || ARM || ARM64 || COMPILE_TEST
5747f11e0bSEnric Balletbo i Serra	help
5847f11e0bSEnric Balletbo i Serra	  If you say Y here you get support for the ChromeOS Embedded
5947f11e0bSEnric Balletbo i Serra	  Controller (EC) providing keyboard, battery and power services.
6047f11e0bSEnric Balletbo i Serra	  You also need to enable the driver for the bus you are using. The
6147f11e0bSEnric Balletbo i Serra	  protocol for talking to the EC is defined by the bus driver.
6247f11e0bSEnric Balletbo i Serra
6347f11e0bSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
6447f11e0bSEnric Balletbo i Serra	  module will be called cros_ec.
6547f11e0bSEnric Balletbo i Serra
66d00a8741SEnric Balletbo i Serraconfig CROS_EC_I2C
67d00a8741SEnric Balletbo i Serra	tristate "ChromeOS Embedded Controller (I2C)"
6847f11e0bSEnric Balletbo i Serra	depends on CROS_EC && I2C
69d00a8741SEnric Balletbo i Serra
70d00a8741SEnric Balletbo i Serra	help
71d00a8741SEnric Balletbo i Serra	  If you say Y here, you get support for talking to the ChromeOS
72d00a8741SEnric Balletbo i Serra	  EC through an I2C bus. This uses a simple byte-level protocol with
73d00a8741SEnric Balletbo i Serra	  a checksum. Failing accesses will be retried three times to
74d00a8741SEnric Balletbo i Serra	  improve reliability.
75d00a8741SEnric Balletbo i Serra
762de89fd9SPi-Hsun Shihconfig CROS_EC_RPMSG
772de89fd9SPi-Hsun Shih	tristate "ChromeOS Embedded Controller (rpmsg)"
7847f11e0bSEnric Balletbo i Serra	depends on CROS_EC && RPMSG && OF
792de89fd9SPi-Hsun Shih	help
802de89fd9SPi-Hsun Shih	  If you say Y here, you get support for talking to the ChromeOS EC
812de89fd9SPi-Hsun Shih	  through rpmsg. This uses a simple byte-level protocol with a
822de89fd9SPi-Hsun Shih	  checksum. Also since there's no addition EC-to-host interrupt, this
832de89fd9SPi-Hsun Shih	  use a byte in message to distinguish host event from host command.
842de89fd9SPi-Hsun Shih
852de89fd9SPi-Hsun Shih	  To compile this driver as a module, choose M here: the
862de89fd9SPi-Hsun Shih	  module will be called cros_ec_rpmsg.
872de89fd9SPi-Hsun Shih
8826a14267SRushikesh S Kadamconfig CROS_EC_ISHTP
8926a14267SRushikesh S Kadam	tristate "ChromeOS Embedded Controller (ISHTP)"
902fa2b980SEnric Balletbo i Serra	depends on CROS_EC
9126a14267SRushikesh S Kadam	depends on INTEL_ISH_HID
9226a14267SRushikesh S Kadam	help
9326a14267SRushikesh S Kadam	  If you say Y here, you get support for talking to the ChromeOS EC
9426a14267SRushikesh S Kadam	  firmware running on Intel Integrated Sensor Hub (ISH), using the
9526a14267SRushikesh S Kadam	  ISH Transport protocol (ISH-TP). This uses a simple byte-level
9626a14267SRushikesh S Kadam	  protocol with a checksum.
9726a14267SRushikesh S Kadam
9826a14267SRushikesh S Kadam	  To compile this driver as a module, choose M here: the
9926a14267SRushikesh S Kadam	  module will be called cros_ec_ishtp.
10026a14267SRushikesh S Kadam
101d00a8741SEnric Balletbo i Serraconfig CROS_EC_SPI
102d00a8741SEnric Balletbo i Serra	tristate "ChromeOS Embedded Controller (SPI)"
10347f11e0bSEnric Balletbo i Serra	depends on CROS_EC && SPI
104d00a8741SEnric Balletbo i Serra
105a7f7f624SMasahiro Yamada	help
106d00a8741SEnric Balletbo i Serra	  If you say Y here, you get support for talking to the ChromeOS EC
107d00a8741SEnric Balletbo i Serra	  through a SPI bus, using a byte-level protocol. Since the EC's
108d00a8741SEnric Balletbo i Serra	  response time cannot be guaranteed, we support ignoring
109d00a8741SEnric Balletbo i Serra	  'pre-amble' bytes before the response actually starts.
110d00a8741SEnric Balletbo i Serra
111ec2f33abSBill Richardsonconfig CROS_EC_LPC
112ec2f33abSBill Richardson	tristate "ChromeOS Embedded Controller (LPC)"
11347f11e0bSEnric Balletbo i Serra	depends on CROS_EC && ACPI && (X86 || COMPILE_TEST)
114ec2f33abSBill Richardson	help
115ec2f33abSBill Richardson	  If you say Y here, you get support for talking to the ChromeOS EC
11622c040faSEnric Balletbo i Serra	  over an LPC bus, including the LPC Microchip EC (MEC) variant.
11722c040faSEnric Balletbo i Serra	  This uses a simple byte-level protocol with a checksum. This is
11822c040faSEnric Balletbo i Serra	  used for userspace access only. The kernel typically has its own
11922c040faSEnric Balletbo i Serra	  communication methods.
120ec2f33abSBill Richardson
121ec2f33abSBill Richardson	  To compile this driver as a module, choose M here: the
12222c040faSEnric Balletbo i Serra	  module will be called cros_ec_lpcs.
1238d4a3dc4SShawn Nematbakhsh
124062476f2SJavier Martinez Canillasconfig CROS_EC_PROTO
125062476f2SJavier Martinez Canillas	bool
126062476f2SJavier Martinez Canillas	help
127062476f2SJavier Martinez Canillas	  ChromeOS EC communication protocol helpers.
128062476f2SJavier Martinez Canillas
129492ef782SSimon Queconfig CROS_KBD_LED_BACKLIGHT
130492ef782SSimon Que	tristate "Backlight LED support for Chrome OS keyboards"
131492ef782SSimon Que	depends on LEDS_CLASS && ACPI
132492ef782SSimon Que	help
133492ef782SSimon Que	  This option enables support for the keyboard backlight LEDs on
134492ef782SSimon Que	  select Chrome OS systems.
135492ef782SSimon Que
136492ef782SSimon Que	  To compile this driver as a module, choose M here: the
137492ef782SSimon Que	  module will be called cros_kbd_led_backlight.
138492ef782SSimon Que
139eda2e30cSEnric Balletbo i Serraconfig CROS_EC_CHARDEV
140eda2e30cSEnric Balletbo i Serra	tristate "ChromeOS EC miscdevice"
1412fa2b980SEnric Balletbo i Serra	depends on MFD_CROS_EC_DEV
1422fa2b980SEnric Balletbo i Serra	default MFD_CROS_EC_DEV
143eda2e30cSEnric Balletbo i Serra	help
144eda2e30cSEnric Balletbo i Serra	  This driver adds file operations support to talk with the
145eda2e30cSEnric Balletbo i Serra	  ChromeOS EC from userspace via a character device.
146eda2e30cSEnric Balletbo i Serra
147eda2e30cSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
148eda2e30cSEnric Balletbo i Serra	  module will be called cros_ec_chardev.
149eda2e30cSEnric Balletbo i Serra
150ecf8a6cdSEnric Balletbo i Serraconfig CROS_EC_LIGHTBAR
151ecf8a6cdSEnric Balletbo i Serra	tristate "Chromebook Pixel's lightbar support"
1522fa2b980SEnric Balletbo i Serra	depends on MFD_CROS_EC_DEV
1532fa2b980SEnric Balletbo i Serra	default MFD_CROS_EC_DEV
154ecf8a6cdSEnric Balletbo i Serra	help
155ecf8a6cdSEnric Balletbo i Serra	  This option exposes the Chromebook Pixel's lightbar to
156ecf8a6cdSEnric Balletbo i Serra	  userspace.
157ecf8a6cdSEnric Balletbo i Serra
158ecf8a6cdSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
159ecf8a6cdSEnric Balletbo i Serra	  module will be called cros_ec_lightbar.
160ecf8a6cdSEnric Balletbo i Serra
161acb9900fSEnric Balletbo i Serraconfig CROS_EC_VBC
162acb9900fSEnric Balletbo i Serra	tristate "ChromeOS EC vboot context support"
1632fa2b980SEnric Balletbo i Serra	depends on MFD_CROS_EC_DEV && OF
1642fa2b980SEnric Balletbo i Serra	default MFD_CROS_EC_DEV
165acb9900fSEnric Balletbo i Serra	help
166acb9900fSEnric Balletbo i Serra	  This option exposes the ChromeOS EC vboot context nvram to
167acb9900fSEnric Balletbo i Serra	  userspace.
168acb9900fSEnric Balletbo i Serra
169acb9900fSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
170acb9900fSEnric Balletbo i Serra	  module will be called cros_ec_vbc.
171acb9900fSEnric Balletbo i Serra
1726fce0a2cSEnric Balletbo i Serraconfig CROS_EC_DEBUGFS
1736fce0a2cSEnric Balletbo i Serra	tristate "Export ChromeOS EC internals in DebugFS"
1742fa2b980SEnric Balletbo i Serra	depends on MFD_CROS_EC_DEV && DEBUG_FS
1752fa2b980SEnric Balletbo i Serra	default MFD_CROS_EC_DEV
1766fce0a2cSEnric Balletbo i Serra	help
1776fce0a2cSEnric Balletbo i Serra	  This option exposes the ChromeOS EC device internals to
1786fce0a2cSEnric Balletbo i Serra	  userspace.
1796fce0a2cSEnric Balletbo i Serra
1806fce0a2cSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
1816fce0a2cSEnric Balletbo i Serra	  module will be called cros_ec_debugfs.
1826fce0a2cSEnric Balletbo i Serra
18353067471SGwendal Grignouconfig CROS_EC_SENSORHUB
18453067471SGwendal Grignou	tristate "ChromeOS EC MEMS Sensor Hub"
18574c166b5SEnric Balletbo i Serra	depends on MFD_CROS_EC_DEV
18674c166b5SEnric Balletbo i Serra	default MFD_CROS_EC_DEV
18753067471SGwendal Grignou	help
18853067471SGwendal Grignou	  Allow loading IIO sensors. This driver is loaded by MFD and will in
18953067471SGwendal Grignou	  turn query the EC and register the sensors.
19053067471SGwendal Grignou	  It also spreads the sensor data coming from the EC to the IIO sensor
19153067471SGwendal Grignou	  object.
19253067471SGwendal Grignou
19353067471SGwendal Grignou	  To compile this driver as a module, choose M here: the
19453067471SGwendal Grignou	  module will be called cros_ec_sensorhub.
19553067471SGwendal Grignou
1966fd7f2bbSEnric Balletbo i Serraconfig CROS_EC_SYSFS
1976fd7f2bbSEnric Balletbo i Serra	tristate "ChromeOS EC control and information through sysfs"
1982fa2b980SEnric Balletbo i Serra	depends on MFD_CROS_EC_DEV && SYSFS
1992fa2b980SEnric Balletbo i Serra	default MFD_CROS_EC_DEV
2006fd7f2bbSEnric Balletbo i Serra	help
2016fd7f2bbSEnric Balletbo i Serra	  This option exposes some sysfs attributes to control and get
2026fd7f2bbSEnric Balletbo i Serra	  information from ChromeOS EC.
2036fd7f2bbSEnric Balletbo i Serra
2046fd7f2bbSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
2056fd7f2bbSEnric Balletbo i Serra	  module will be called cros_ec_sysfs.
2066fd7f2bbSEnric Balletbo i Serra
207fdc6b21eSPrashant Malaniconfig CROS_EC_TYPEC
208fdc6b21eSPrashant Malani	tristate "ChromeOS EC Type-C Connector Control"
209fdc6b21eSPrashant Malani	depends on MFD_CROS_EC_DEV && TYPEC
2107110f5f0SPrashant Malani	depends on CROS_USBPD_NOTIFY
211bdc40945SEnric Balletbo i Serra	depends on USB_ROLE_SWITCH
212fdc6b21eSPrashant Malani	default MFD_CROS_EC_DEV
213fdc6b21eSPrashant Malani	help
214fdc6b21eSPrashant Malani	  If you say Y here, you get support for accessing Type C connector
215fdc6b21eSPrashant Malani	  information from the Chrome OS EC.
216fdc6b21eSPrashant Malani
217fdc6b21eSPrashant Malani	  To compile this driver as a module, choose M here: the module will be
218fdc6b21eSPrashant Malani	  called cros_ec_typec.
219fdc6b21eSPrashant Malani
220a2679b64SGuenter Roeckconfig CROS_USBPD_LOGGER
221a2679b64SGuenter Roeck	tristate "Logging driver for USB PD charger"
222a2679b64SGuenter Roeck	depends on CHARGER_CROS_USBPD
223a2679b64SGuenter Roeck	default y
224a2679b64SGuenter Roeck	select RTC_LIB
225a2679b64SGuenter Roeck	help
226a2679b64SGuenter Roeck	  This option enables support for logging event data for the USB PD charger
227a2679b64SGuenter Roeck	  available in the Embedded Controller on ChromeOS systems.
228a2679b64SGuenter Roeck
229a2679b64SGuenter Roeck	  To compile this driver as a module, choose M here: the
230a2679b64SGuenter Roeck	  module will be called cros_usbpd_logger.
231a2679b64SGuenter Roeck
232ec2daf6eSJon Flatleyconfig CROS_USBPD_NOTIFY
233ec2daf6eSJon Flatley	tristate "ChromeOS Type-C power delivery event notifier"
234ec2daf6eSJon Flatley	depends on MFD_CROS_EC_DEV
235ec2daf6eSJon Flatley	default MFD_CROS_EC_DEV
236ec2daf6eSJon Flatley	help
237ec2daf6eSJon Flatley	  If you say Y here, you get support for Type-C PD event notifications
238ec2daf6eSJon Flatley	  from the ChromeOS EC. On ACPI platorms this driver will bind to the
239ec2daf6eSJon Flatley	  GOOG0003 ACPI device, and on platforms which don't have this device it
240ec2daf6eSJon Flatley	  will get initialized on ECs which support the feature
241ec2daf6eSJon Flatley	  EC_FEATURE_USB_PD.
242ec2daf6eSJon Flatley
243ec2daf6eSJon Flatley	  To compile this driver as a module, choose M here: the
244ec2daf6eSJon Flatley	  module will be called cros_usbpd_notify.
245ec2daf6eSJon Flatley
246*3fb57847SRajat Jainconfig CHROMEOS_PRIVACY_SCREEN
247*3fb57847SRajat Jain	tristate "ChromeOS Privacy Screen support"
248*3fb57847SRajat Jain	depends on ACPI
249*3fb57847SRajat Jain	depends on DRM
250*3fb57847SRajat Jain	select DRM_PRIVACY_SCREEN
251*3fb57847SRajat Jain	help
252*3fb57847SRajat Jain	  This driver provides the support needed for the in-built electronic
253*3fb57847SRajat Jain	  privacy screen that is present on some ChromeOS devices. When enabled,
254*3fb57847SRajat Jain	  this should probably always be built into the kernel to avoid or
255*3fb57847SRajat Jain	  minimize drm probe deferral.
256*3fb57847SRajat Jain
2577b3d4f44SNick Crewssource "drivers/platform/chrome/wilco_ec/Kconfig"
2587b3d4f44SNick Crews
259ab043105SOlof Johanssonendif # CHROMEOS_PLATFORMS
260