xref: /linux/drivers/platform/chrome/Kconfig (revision 74c166b58895a7b536d6434235b23b51e64adf68)
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
62fa2b980SEnric Balletbo i Serraconfig MFD_CROS_EC
72fa2b980SEnric Balletbo i Serra	tristate "Platform support for Chrome hardware (transitional)"
82fa2b980SEnric Balletbo i Serra	select CHROME_PLATFORMS
92fa2b980SEnric Balletbo i Serra	select CROS_EC
102fa2b980SEnric Balletbo i Serra	select CONFIG_MFD_CROS_EC_DEV
112fa2b980SEnric Balletbo i Serra	depends on X86 || ARM || ARM64 || COMPILE_TEST
122fa2b980SEnric Balletbo i Serra	help
132fa2b980SEnric Balletbo i Serra	  This is a transitional Kconfig option and will be removed after
142fa2b980SEnric Balletbo i Serra	  everyone enables the parts individually.
152fa2b980SEnric Balletbo i Serra
16ab043105SOlof Johanssonmenuconfig CHROME_PLATFORMS
17ab043105SOlof Johansson	bool "Platform support for Chrome hardware"
1823ecee32SThierry Reding	depends on X86 || ARM || ARM64 || COMPILE_TEST
19ab043105SOlof Johansson	---help---
20ab043105SOlof Johansson	  Say Y here to get to see options for platform support for
21ab043105SOlof Johansson	  various Chromebooks and Chromeboxes. This option alone does
22ab043105SOlof Johansson	  not add any kernel code.
23ab043105SOlof Johansson
24ab043105SOlof Johansson	  If you say N, all options in this submenu will be skipped and disabled.
25ab043105SOlof Johansson
26ab043105SOlof Johanssonif CHROME_PLATFORMS
27ab043105SOlof Johansson
28ab043105SOlof Johanssonconfig CHROMEOS_LAPTOP
29ab043105SOlof Johansson	tristate "Chrome OS Laptop"
30e7c256fbSBill Richardson	depends on I2C && DMI && X86
31ab043105SOlof Johansson	---help---
32ab043105SOlof Johansson	  This driver instantiates i2c and smbus devices such as
33ab043105SOlof Johansson	  light sensors and touchpads.
34ab043105SOlof Johansson
35ab043105SOlof Johansson	  If you have a supported Chromebook, choose Y or M here.
36ab043105SOlof Johansson	  The module will be called chromeos_laptop.
37ab043105SOlof Johansson
389742e127SOlof Johanssonconfig CHROMEOS_PSTORE
399742e127SOlof Johansson	tristate "Chrome OS pstore support"
40e7c256fbSBill Richardson	depends on X86
419742e127SOlof Johansson	---help---
429742e127SOlof Johansson	  This module instantiates the persistent storage on x86 ChromeOS
439742e127SOlof Johansson	  devices. It can be used to store away console logs and crash
449742e127SOlof Johansson	  information across reboots.
459742e127SOlof Johansson
469742e127SOlof Johansson	  The range of memory used is 0xf00000-0x1000000, traditionally
479742e127SOlof Johansson	  the memory used to back VGA controller memory.
489742e127SOlof Johansson
499742e127SOlof Johansson	  If you have a supported Chromebook, choose Y or M here.
509742e127SOlof Johansson	  The module will be called chromeos_pstore.
519742e127SOlof Johansson
52b418f741SGwendal Grignouconfig CHROMEOS_TBMC
53b418f741SGwendal Grignou	tristate "ChromeOS Tablet Switch Controller"
54b418f741SGwendal Grignou	depends on ACPI
55485aa74aSArnd Bergmann	depends on INPUT
56b418f741SGwendal Grignou	help
57b418f741SGwendal Grignou	  This option adds a driver for the tablet switch on
58b418f741SGwendal Grignou	  select Chrome OS systems.
59b418f741SGwendal Grignou
60b418f741SGwendal Grignou	  To compile this driver as a module, choose M here: the
61b418f741SGwendal Grignou	  module will be called chromeos_tbmc.
62b418f741SGwendal Grignou
6347f11e0bSEnric Balletbo i Serraconfig CROS_EC
6447f11e0bSEnric Balletbo i Serra	tristate "ChromeOS Embedded Controller"
6547f11e0bSEnric Balletbo i Serra	select CROS_EC_PROTO
6647f11e0bSEnric Balletbo i Serra	depends on X86 || ARM || ARM64 || COMPILE_TEST
6747f11e0bSEnric Balletbo i Serra	help
6847f11e0bSEnric Balletbo i Serra	  If you say Y here you get support for the ChromeOS Embedded
6947f11e0bSEnric Balletbo i Serra	  Controller (EC) providing keyboard, battery and power services.
7047f11e0bSEnric Balletbo i Serra	  You also need to enable the driver for the bus you are using. The
7147f11e0bSEnric Balletbo i Serra	  protocol for talking to the EC is defined by the bus driver.
7247f11e0bSEnric Balletbo i Serra
7347f11e0bSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
7447f11e0bSEnric Balletbo i Serra	  module will be called cros_ec.
7547f11e0bSEnric Balletbo i Serra
76d00a8741SEnric Balletbo i Serraconfig CROS_EC_I2C
77d00a8741SEnric Balletbo i Serra	tristate "ChromeOS Embedded Controller (I2C)"
7847f11e0bSEnric Balletbo i Serra	depends on CROS_EC && I2C
79d00a8741SEnric Balletbo i Serra
80d00a8741SEnric Balletbo i Serra	help
81d00a8741SEnric Balletbo i Serra	  If you say Y here, you get support for talking to the ChromeOS
82d00a8741SEnric Balletbo i Serra	  EC through an I2C bus. This uses a simple byte-level protocol with
83d00a8741SEnric Balletbo i Serra	  a checksum. Failing accesses will be retried three times to
84d00a8741SEnric Balletbo i Serra	  improve reliability.
85d00a8741SEnric Balletbo i Serra
862de89fd9SPi-Hsun Shihconfig CROS_EC_RPMSG
872de89fd9SPi-Hsun Shih	tristate "ChromeOS Embedded Controller (rpmsg)"
8847f11e0bSEnric Balletbo i Serra	depends on CROS_EC && RPMSG && OF
892de89fd9SPi-Hsun Shih	help
902de89fd9SPi-Hsun Shih	  If you say Y here, you get support for talking to the ChromeOS EC
912de89fd9SPi-Hsun Shih	  through rpmsg. This uses a simple byte-level protocol with a
922de89fd9SPi-Hsun Shih	  checksum. Also since there's no addition EC-to-host interrupt, this
932de89fd9SPi-Hsun Shih	  use a byte in message to distinguish host event from host command.
942de89fd9SPi-Hsun Shih
952de89fd9SPi-Hsun Shih	  To compile this driver as a module, choose M here: the
962de89fd9SPi-Hsun Shih	  module will be called cros_ec_rpmsg.
972de89fd9SPi-Hsun Shih
9826a14267SRushikesh S Kadamconfig CROS_EC_ISHTP
9926a14267SRushikesh S Kadam	tristate "ChromeOS Embedded Controller (ISHTP)"
1002fa2b980SEnric Balletbo i Serra	depends on CROS_EC
10126a14267SRushikesh S Kadam	depends on INTEL_ISH_HID
10226a14267SRushikesh S Kadam	help
10326a14267SRushikesh S Kadam	  If you say Y here, you get support for talking to the ChromeOS EC
10426a14267SRushikesh S Kadam	  firmware running on Intel Integrated Sensor Hub (ISH), using the
10526a14267SRushikesh S Kadam	  ISH Transport protocol (ISH-TP). This uses a simple byte-level
10626a14267SRushikesh S Kadam	  protocol with a checksum.
10726a14267SRushikesh S Kadam
10826a14267SRushikesh S Kadam	  To compile this driver as a module, choose M here: the
10926a14267SRushikesh S Kadam	  module will be called cros_ec_ishtp.
11026a14267SRushikesh S Kadam
111d00a8741SEnric Balletbo i Serraconfig CROS_EC_SPI
112d00a8741SEnric Balletbo i Serra	tristate "ChromeOS Embedded Controller (SPI)"
11347f11e0bSEnric Balletbo i Serra	depends on CROS_EC && SPI
114d00a8741SEnric Balletbo i Serra
115d00a8741SEnric Balletbo i Serra	---help---
116d00a8741SEnric Balletbo i Serra	  If you say Y here, you get support for talking to the ChromeOS EC
117d00a8741SEnric Balletbo i Serra	  through a SPI bus, using a byte-level protocol. Since the EC's
118d00a8741SEnric Balletbo i Serra	  response time cannot be guaranteed, we support ignoring
119d00a8741SEnric Balletbo i Serra	  'pre-amble' bytes before the response actually starts.
120d00a8741SEnric Balletbo i Serra
121ec2f33abSBill Richardsonconfig CROS_EC_LPC
122ec2f33abSBill Richardson	tristate "ChromeOS Embedded Controller (LPC)"
12347f11e0bSEnric Balletbo i Serra	depends on CROS_EC && ACPI && (X86 || COMPILE_TEST)
124ec2f33abSBill Richardson	help
125ec2f33abSBill Richardson	  If you say Y here, you get support for talking to the ChromeOS EC
12622c040faSEnric Balletbo i Serra	  over an LPC bus, including the LPC Microchip EC (MEC) variant.
12722c040faSEnric Balletbo i Serra	  This uses a simple byte-level protocol with a checksum. This is
12822c040faSEnric Balletbo i Serra	  used for userspace access only. The kernel typically has its own
12922c040faSEnric Balletbo i Serra	  communication methods.
130ec2f33abSBill Richardson
131ec2f33abSBill Richardson	  To compile this driver as a module, choose M here: the
13222c040faSEnric Balletbo i Serra	  module will be called cros_ec_lpcs.
1338d4a3dc4SShawn Nematbakhsh
134062476f2SJavier Martinez Canillasconfig CROS_EC_PROTO
135062476f2SJavier Martinez Canillas	bool
136062476f2SJavier Martinez Canillas	help
137062476f2SJavier Martinez Canillas	  ChromeOS EC communication protocol helpers.
138062476f2SJavier Martinez Canillas
139492ef782SSimon Queconfig CROS_KBD_LED_BACKLIGHT
140492ef782SSimon Que	tristate "Backlight LED support for Chrome OS keyboards"
141492ef782SSimon Que	depends on LEDS_CLASS && ACPI
142492ef782SSimon Que	help
143492ef782SSimon Que	  This option enables support for the keyboard backlight LEDs on
144492ef782SSimon Que	  select Chrome OS systems.
145492ef782SSimon Que
146492ef782SSimon Que	  To compile this driver as a module, choose M here: the
147492ef782SSimon Que	  module will be called cros_kbd_led_backlight.
148492ef782SSimon Que
149eda2e30cSEnric Balletbo i Serraconfig CROS_EC_CHARDEV
150eda2e30cSEnric Balletbo i Serra	tristate "ChromeOS EC miscdevice"
1512fa2b980SEnric Balletbo i Serra	depends on MFD_CROS_EC_DEV
1522fa2b980SEnric Balletbo i Serra	default MFD_CROS_EC_DEV
153eda2e30cSEnric Balletbo i Serra	help
154eda2e30cSEnric Balletbo i Serra	  This driver adds file operations support to talk with the
155eda2e30cSEnric Balletbo i Serra	  ChromeOS EC from userspace via a character device.
156eda2e30cSEnric Balletbo i Serra
157eda2e30cSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
158eda2e30cSEnric Balletbo i Serra	  module will be called cros_ec_chardev.
159eda2e30cSEnric Balletbo i Serra
160ecf8a6cdSEnric Balletbo i Serraconfig CROS_EC_LIGHTBAR
161ecf8a6cdSEnric Balletbo i Serra	tristate "Chromebook Pixel's lightbar support"
1622fa2b980SEnric Balletbo i Serra	depends on MFD_CROS_EC_DEV
1632fa2b980SEnric Balletbo i Serra	default MFD_CROS_EC_DEV
164ecf8a6cdSEnric Balletbo i Serra	help
165ecf8a6cdSEnric Balletbo i Serra	  This option exposes the Chromebook Pixel's lightbar to
166ecf8a6cdSEnric Balletbo i Serra	  userspace.
167ecf8a6cdSEnric Balletbo i Serra
168ecf8a6cdSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
169ecf8a6cdSEnric Balletbo i Serra	  module will be called cros_ec_lightbar.
170ecf8a6cdSEnric Balletbo i Serra
171acb9900fSEnric Balletbo i Serraconfig CROS_EC_VBC
172acb9900fSEnric Balletbo i Serra	tristate "ChromeOS EC vboot context support"
1732fa2b980SEnric Balletbo i Serra	depends on MFD_CROS_EC_DEV && OF
1742fa2b980SEnric Balletbo i Serra	default MFD_CROS_EC_DEV
175acb9900fSEnric Balletbo i Serra	help
176acb9900fSEnric Balletbo i Serra	  This option exposes the ChromeOS EC vboot context nvram to
177acb9900fSEnric Balletbo i Serra	  userspace.
178acb9900fSEnric Balletbo i Serra
179acb9900fSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
180acb9900fSEnric Balletbo i Serra	  module will be called cros_ec_vbc.
181acb9900fSEnric Balletbo i Serra
1826fce0a2cSEnric Balletbo i Serraconfig CROS_EC_DEBUGFS
1836fce0a2cSEnric Balletbo i Serra	tristate "Export ChromeOS EC internals in DebugFS"
1842fa2b980SEnric Balletbo i Serra	depends on MFD_CROS_EC_DEV && DEBUG_FS
1852fa2b980SEnric Balletbo i Serra	default MFD_CROS_EC_DEV
1866fce0a2cSEnric Balletbo i Serra	help
1876fce0a2cSEnric Balletbo i Serra	  This option exposes the ChromeOS EC device internals to
1886fce0a2cSEnric Balletbo i Serra	  userspace.
1896fce0a2cSEnric Balletbo i Serra
1906fce0a2cSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
1916fce0a2cSEnric Balletbo i Serra	  module will be called cros_ec_debugfs.
1926fce0a2cSEnric Balletbo i Serra
19353067471SGwendal Grignouconfig CROS_EC_SENSORHUB
19453067471SGwendal Grignou	tristate "ChromeOS EC MEMS Sensor Hub"
195*74c166b5SEnric Balletbo i Serra	depends on MFD_CROS_EC_DEV
196*74c166b5SEnric Balletbo i Serra	default MFD_CROS_EC_DEV
19753067471SGwendal Grignou	help
19853067471SGwendal Grignou	  Allow loading IIO sensors. This driver is loaded by MFD and will in
19953067471SGwendal Grignou	  turn query the EC and register the sensors.
20053067471SGwendal Grignou	  It also spreads the sensor data coming from the EC to the IIO sensor
20153067471SGwendal Grignou	  object.
20253067471SGwendal Grignou
20353067471SGwendal Grignou	  To compile this driver as a module, choose M here: the
20453067471SGwendal Grignou	  module will be called cros_ec_sensorhub.
20553067471SGwendal Grignou
2066fd7f2bbSEnric Balletbo i Serraconfig CROS_EC_SYSFS
2076fd7f2bbSEnric Balletbo i Serra	tristate "ChromeOS EC control and information through sysfs"
2082fa2b980SEnric Balletbo i Serra	depends on MFD_CROS_EC_DEV && SYSFS
2092fa2b980SEnric Balletbo i Serra	default MFD_CROS_EC_DEV
2106fd7f2bbSEnric Balletbo i Serra	help
2116fd7f2bbSEnric Balletbo i Serra	  This option exposes some sysfs attributes to control and get
2126fd7f2bbSEnric Balletbo i Serra	  information from ChromeOS EC.
2136fd7f2bbSEnric Balletbo i Serra
2146fd7f2bbSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
2156fd7f2bbSEnric Balletbo i Serra	  module will be called cros_ec_sysfs.
2166fd7f2bbSEnric Balletbo i Serra
217a2679b64SGuenter Roeckconfig CROS_USBPD_LOGGER
218a2679b64SGuenter Roeck	tristate "Logging driver for USB PD charger"
219a2679b64SGuenter Roeck	depends on CHARGER_CROS_USBPD
220a2679b64SGuenter Roeck	default y
221a2679b64SGuenter Roeck	select RTC_LIB
222a2679b64SGuenter Roeck	help
223a2679b64SGuenter Roeck	  This option enables support for logging event data for the USB PD charger
224a2679b64SGuenter Roeck	  available in the Embedded Controller on ChromeOS systems.
225a2679b64SGuenter Roeck
226a2679b64SGuenter Roeck	  To compile this driver as a module, choose M here: the
227a2679b64SGuenter Roeck	  module will be called cros_usbpd_logger.
228a2679b64SGuenter Roeck
2297b3d4f44SNick Crewssource "drivers/platform/chrome/wilco_ec/Kconfig"
2307b3d4f44SNick Crews
231ab043105SOlof Johanssonendif # CHROMEOS_PLATFORMS
232