1 # SPDX-License-Identifier: GPL-2.0-only
3 # Platform support for Chrome OS hardware (Chromebooks and Chromeboxes)
6 menuconfig CHROME_PLATFORMS
7 bool "Platform support for Chrome hardware"
8 depends on X86 || ARM || ARM64 || COMPILE_TEST
10 Say Y here to get to see options for platform support for
11 various Chromebooks and Chromeboxes. This option alone does
12 not add any kernel code.
14 If you say N, all options in this submenu will be skipped and disabled.
18 config CHROMEOS_LAPTOP
19 tristate "Chrome OS Laptop"
20 depends on I2C && DMI && X86
22 This driver instantiates i2c and smbus devices such as
23 light sensors and touchpads.
25 If you have a supported Chromebook, choose Y or M here.
26 The module will be called chromeos_laptop.
28 config CHROMEOS_PSTORE
29 tristate "Chrome OS pstore support"
32 This module instantiates the persistent storage on x86 ChromeOS
33 devices. It can be used to store away console logs and crash
34 information across reboots.
36 The range of memory used is 0xf00000-0x1000000, traditionally
37 the memory used to back VGA controller memory.
39 If you have a supported Chromebook, choose Y or M here.
40 The module will be called chromeos_pstore.
43 tristate "ChromeOS Tablet Switch Controller"
47 This option adds a driver for the tablet switch on
48 select Chrome OS systems.
50 To compile this driver as a module, choose M here: the
51 module will be called chromeos_tbmc.
54 tristate "ChromeOS Embedded Controller (I2C)"
55 depends on MFD_CROS_EC && I2C
58 If you say Y here, you get support for talking to the ChromeOS
59 EC through an I2C bus. This uses a simple byte-level protocol with
60 a checksum. Failing accesses will be retried three times to
64 tristate "ChromeOS Embedded Controller (rpmsg)"
65 depends on MFD_CROS_EC && RPMSG && OF
67 If you say Y here, you get support for talking to the ChromeOS EC
68 through rpmsg. This uses a simple byte-level protocol with a
69 checksum. Also since there's no addition EC-to-host interrupt, this
70 use a byte in message to distinguish host event from host command.
72 To compile this driver as a module, choose M here: the
73 module will be called cros_ec_rpmsg.
76 tristate "ChromeOS Embedded Controller (ISHTP)"
77 depends on MFD_CROS_EC
78 depends on INTEL_ISH_HID
80 If you say Y here, you get support for talking to the ChromeOS EC
81 firmware running on Intel Integrated Sensor Hub (ISH), using the
82 ISH Transport protocol (ISH-TP). This uses a simple byte-level
83 protocol with a checksum.
85 To compile this driver as a module, choose M here: the
86 module will be called cros_ec_ishtp.
89 tristate "ChromeOS Embedded Controller (SPI)"
90 depends on MFD_CROS_EC && SPI
93 If you say Y here, you get support for talking to the ChromeOS EC
94 through a SPI bus, using a byte-level protocol. Since the EC's
95 response time cannot be guaranteed, we support ignoring
96 'pre-amble' bytes before the response actually starts.
99 tristate "ChromeOS Embedded Controller (LPC)"
100 depends on MFD_CROS_EC && ACPI && (X86 || COMPILE_TEST)
102 If you say Y here, you get support for talking to the ChromeOS EC
103 over an LPC bus, including the LPC Microchip EC (MEC) variant.
104 This uses a simple byte-level protocol with a checksum. This is
105 used for userspace access only. The kernel typically has its own
106 communication methods.
108 To compile this driver as a module, choose M here: the
109 module will be called cros_ec_lpcs.
114 ChromeOS EC communication protocol helpers.
116 config CROS_KBD_LED_BACKLIGHT
117 tristate "Backlight LED support for Chrome OS keyboards"
118 depends on LEDS_CLASS && ACPI
120 This option enables support for the keyboard backlight LEDs on
121 select Chrome OS systems.
123 To compile this driver as a module, choose M here: the
124 module will be called cros_kbd_led_backlight.
126 config CROS_EC_LIGHTBAR
127 tristate "Chromebook Pixel's lightbar support"
128 depends on MFD_CROS_EC_CHARDEV
129 default MFD_CROS_EC_CHARDEV
131 This option exposes the Chromebook Pixel's lightbar to
134 To compile this driver as a module, choose M here: the
135 module will be called cros_ec_lightbar.
138 tristate "ChromeOS EC vboot context support"
139 depends on MFD_CROS_EC_CHARDEV && OF
140 default MFD_CROS_EC_CHARDEV
142 This option exposes the ChromeOS EC vboot context nvram to
145 To compile this driver as a module, choose M here: the
146 module will be called cros_ec_vbc.
148 config CROS_EC_DEBUGFS
149 tristate "Export ChromeOS EC internals in DebugFS"
150 depends on MFD_CROS_EC_CHARDEV && DEBUG_FS
151 default MFD_CROS_EC_CHARDEV
153 This option exposes the ChromeOS EC device internals to
156 To compile this driver as a module, choose M here: the
157 module will be called cros_ec_debugfs.
160 tristate "ChromeOS EC control and information through sysfs"
161 depends on MFD_CROS_EC_CHARDEV && SYSFS
162 default MFD_CROS_EC_CHARDEV
164 This option exposes some sysfs attributes to control and get
165 information from ChromeOS EC.
167 To compile this driver as a module, choose M here: the
168 module will be called cros_ec_sysfs.
170 config CROS_USBPD_LOGGER
171 tristate "Logging driver for USB PD charger"
172 depends on CHARGER_CROS_USBPD
176 This option enables support for logging event data for the USB PD charger
177 available in the Embedded Controller on ChromeOS systems.
179 To compile this driver as a module, choose M here: the
180 module will be called cros_usbpd_logger.
182 source "drivers/platform/chrome/wilco_ec/Kconfig"
184 endif # CHROMEOS_PLATFORMS