xref: /linux/drivers/platform/chrome/Kconfig (revision 47f11e0b40e97f373da4efbacee0a9526c816ed5)
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
9ab043105SOlof Johansson	---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
21ab043105SOlof Johansson	---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
319742e127SOlof Johansson	---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
53*47f11e0bSEnric Balletbo i Serraconfig CROS_EC
54*47f11e0bSEnric Balletbo i Serra	tristate "ChromeOS Embedded Controller"
55*47f11e0bSEnric Balletbo i Serra	select CROS_EC_PROTO
56*47f11e0bSEnric Balletbo i Serra	depends on X86 || ARM || ARM64 || COMPILE_TEST
57*47f11e0bSEnric Balletbo i Serra	help
58*47f11e0bSEnric Balletbo i Serra	  If you say Y here you get support for the ChromeOS Embedded
59*47f11e0bSEnric Balletbo i Serra	  Controller (EC) providing keyboard, battery and power services.
60*47f11e0bSEnric Balletbo i Serra	  You also need to enable the driver for the bus you are using. The
61*47f11e0bSEnric Balletbo i Serra	  protocol for talking to the EC is defined by the bus driver.
62*47f11e0bSEnric Balletbo i Serra
63*47f11e0bSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
64*47f11e0bSEnric Balletbo i Serra	  module will be called cros_ec.
65*47f11e0bSEnric Balletbo i Serra
66d00a8741SEnric Balletbo i Serraconfig CROS_EC_I2C
67d00a8741SEnric Balletbo i Serra	tristate "ChromeOS Embedded Controller (I2C)"
68*47f11e0bSEnric 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)"
78*47f11e0bSEnric 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)"
9026a14267SRushikesh S Kadam	depends on MFD_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)"
103*47f11e0bSEnric Balletbo i Serra	depends on CROS_EC && SPI
104d00a8741SEnric Balletbo i Serra
105d00a8741SEnric Balletbo i Serra	---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)"
113*47f11e0bSEnric 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
139ecf8a6cdSEnric Balletbo i Serraconfig CROS_EC_LIGHTBAR
140ecf8a6cdSEnric Balletbo i Serra	tristate "Chromebook Pixel's lightbar support"
141ecf8a6cdSEnric Balletbo i Serra	depends on MFD_CROS_EC_CHARDEV
142ecf8a6cdSEnric Balletbo i Serra	default MFD_CROS_EC_CHARDEV
143ecf8a6cdSEnric Balletbo i Serra	help
144ecf8a6cdSEnric Balletbo i Serra	  This option exposes the Chromebook Pixel's lightbar to
145ecf8a6cdSEnric Balletbo i Serra	  userspace.
146ecf8a6cdSEnric Balletbo i Serra
147ecf8a6cdSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
148ecf8a6cdSEnric Balletbo i Serra	  module will be called cros_ec_lightbar.
149ecf8a6cdSEnric Balletbo i Serra
150acb9900fSEnric Balletbo i Serraconfig CROS_EC_VBC
151acb9900fSEnric Balletbo i Serra	tristate "ChromeOS EC vboot context support"
152acb9900fSEnric Balletbo i Serra	depends on MFD_CROS_EC_CHARDEV && OF
153acb9900fSEnric Balletbo i Serra	default MFD_CROS_EC_CHARDEV
154acb9900fSEnric Balletbo i Serra	help
155acb9900fSEnric Balletbo i Serra	  This option exposes the ChromeOS EC vboot context nvram to
156acb9900fSEnric Balletbo i Serra	  userspace.
157acb9900fSEnric Balletbo i Serra
158acb9900fSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
159acb9900fSEnric Balletbo i Serra	  module will be called cros_ec_vbc.
160acb9900fSEnric Balletbo i Serra
1616fce0a2cSEnric Balletbo i Serraconfig CROS_EC_DEBUGFS
1626fce0a2cSEnric Balletbo i Serra	tristate "Export ChromeOS EC internals in DebugFS"
1636fce0a2cSEnric Balletbo i Serra	depends on MFD_CROS_EC_CHARDEV && DEBUG_FS
1646fce0a2cSEnric Balletbo i Serra	default MFD_CROS_EC_CHARDEV
1656fce0a2cSEnric Balletbo i Serra	help
1666fce0a2cSEnric Balletbo i Serra	  This option exposes the ChromeOS EC device internals to
1676fce0a2cSEnric Balletbo i Serra	  userspace.
1686fce0a2cSEnric Balletbo i Serra
1696fce0a2cSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
1706fce0a2cSEnric Balletbo i Serra	  module will be called cros_ec_debugfs.
1716fce0a2cSEnric Balletbo i Serra
1726fd7f2bbSEnric Balletbo i Serraconfig CROS_EC_SYSFS
1736fd7f2bbSEnric Balletbo i Serra	tristate "ChromeOS EC control and information through sysfs"
1746fd7f2bbSEnric Balletbo i Serra	depends on MFD_CROS_EC_CHARDEV && SYSFS
1756fd7f2bbSEnric Balletbo i Serra	default MFD_CROS_EC_CHARDEV
1766fd7f2bbSEnric Balletbo i Serra	help
1776fd7f2bbSEnric Balletbo i Serra	  This option exposes some sysfs attributes to control and get
1786fd7f2bbSEnric Balletbo i Serra	  information from ChromeOS EC.
1796fd7f2bbSEnric Balletbo i Serra
1806fd7f2bbSEnric Balletbo i Serra	  To compile this driver as a module, choose M here: the
1816fd7f2bbSEnric Balletbo i Serra	  module will be called cros_ec_sysfs.
1826fd7f2bbSEnric Balletbo i Serra
183a2679b64SGuenter Roeckconfig CROS_USBPD_LOGGER
184a2679b64SGuenter Roeck	tristate "Logging driver for USB PD charger"
185a2679b64SGuenter Roeck	depends on CHARGER_CROS_USBPD
186a2679b64SGuenter Roeck	default y
187a2679b64SGuenter Roeck	select RTC_LIB
188a2679b64SGuenter Roeck	help
189a2679b64SGuenter Roeck	  This option enables support for logging event data for the USB PD charger
190a2679b64SGuenter Roeck	  available in the Embedded Controller on ChromeOS systems.
191a2679b64SGuenter Roeck
192a2679b64SGuenter Roeck	  To compile this driver as a module, choose M here: the
193a2679b64SGuenter Roeck	  module will be called cros_usbpd_logger.
194a2679b64SGuenter Roeck
1957b3d4f44SNick Crewssource "drivers/platform/chrome/wilco_ec/Kconfig"
1967b3d4f44SNick Crews
197ab043105SOlof Johanssonendif # CHROMEOS_PLATFORMS
198