Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Platform support for Chrome OS hardware (Chromebooks and Chromeboxes)
4#
5
6menuconfig CHROME_PLATFORMS
7 bool "Platform support for Chrome hardware"
8 depends on X86 || ARM || ARM64 || COMPILE_TEST
9 ---help---
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.
13
14 If you say N, all options in this submenu will be skipped and disabled.
15
16if CHROME_PLATFORMS
17
18config CHROMEOS_LAPTOP
19 tristate "Chrome OS Laptop"
20 depends on I2C && DMI && X86
21 ---help---
22 This driver instantiates i2c and smbus devices such as
23 light sensors and touchpads.
24
25 If you have a supported Chromebook, choose Y or M here.
26 The module will be called chromeos_laptop.
27
28config CHROMEOS_PSTORE
29 tristate "Chrome OS pstore support"
30 depends on X86
31 ---help---
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.
35
36 The range of memory used is 0xf00000-0x1000000, traditionally
37 the memory used to back VGA controller memory.
38
39 If you have a supported Chromebook, choose Y or M here.
40 The module will be called chromeos_pstore.
41
42config CHROMEOS_TBMC
43 tristate "ChromeOS Tablet Switch Controller"
44 depends on ACPI
45 depends on INPUT
46 help
47 This option adds a driver for the tablet switch on
48 select Chrome OS systems.
49
50 To compile this driver as a module, choose M here: the
51 module will be called chromeos_tbmc.
52
53config CROS_EC_I2C
54 tristate "ChromeOS Embedded Controller (I2C)"
55 depends on MFD_CROS_EC && I2C
56
57 help
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
61 improve reliability.
62
63config CROS_EC_RPMSG
64 tristate "ChromeOS Embedded Controller (rpmsg)"
65 depends on MFD_CROS_EC && RPMSG && OF
66 help
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.
71
72 To compile this driver as a module, choose M here: the
73 module will be called cros_ec_rpmsg.
74
75config CROS_EC_ISHTP
76 tristate "ChromeOS Embedded Controller (ISHTP)"
77 depends on MFD_CROS_EC
78 depends on INTEL_ISH_HID
79 help
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.
84
85 To compile this driver as a module, choose M here: the
86 module will be called cros_ec_ishtp.
87
88config CROS_EC_SPI
89 tristate "ChromeOS Embedded Controller (SPI)"
90 depends on MFD_CROS_EC && SPI
91
92 ---help---
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.
97
98config CROS_EC_LPC
99 tristate "ChromeOS Embedded Controller (LPC)"
100 depends on MFD_CROS_EC && ACPI && (X86 || COMPILE_TEST)
101 help
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.
107
108 To compile this driver as a module, choose M here: the
109 module will be called cros_ec_lpcs.
110
111config CROS_EC_PROTO
112 bool
113 help
114 ChromeOS EC communication protocol helpers.
115
116config CROS_KBD_LED_BACKLIGHT
117 tristate "Backlight LED support for Chrome OS keyboards"
118 depends on LEDS_CLASS && ACPI
119 help
120 This option enables support for the keyboard backlight LEDs on
121 select Chrome OS systems.
122
123 To compile this driver as a module, choose M here: the
124 module will be called cros_kbd_led_backlight.
125
126config CROS_EC_LIGHTBAR
127 tristate "Chromebook Pixel's lightbar support"
128 depends on MFD_CROS_EC_CHARDEV
129 default MFD_CROS_EC_CHARDEV
130 help
131 This option exposes the Chromebook Pixel's lightbar to
132 userspace.
133
134 To compile this driver as a module, choose M here: the
135 module will be called cros_ec_lightbar.
136
137config CROS_EC_VBC
138 tristate "ChromeOS EC vboot context support"
139 depends on MFD_CROS_EC_CHARDEV && OF
140 default MFD_CROS_EC_CHARDEV
141 help
142 This option exposes the ChromeOS EC vboot context nvram to
143 userspace.
144
145 To compile this driver as a module, choose M here: the
146 module will be called cros_ec_vbc.
147
148config 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
152 help
153 This option exposes the ChromeOS EC device internals to
154 userspace.
155
156 To compile this driver as a module, choose M here: the
157 module will be called cros_ec_debugfs.
158
159config CROS_EC_SYSFS
160 tristate "ChromeOS EC control and information through sysfs"
161 depends on MFD_CROS_EC_CHARDEV && SYSFS
162 default MFD_CROS_EC_CHARDEV
163 help
164 This option exposes some sysfs attributes to control and get
165 information from ChromeOS EC.
166
167 To compile this driver as a module, choose M here: the
168 module will be called cros_ec_sysfs.
169
170config CROS_USBPD_LOGGER
171 tristate "Logging driver for USB PD charger"
172 depends on CHARGER_CROS_USBPD
173 default y
174 select RTC_LIB
175 help
176 This option enables support for logging event data for the USB PD charger
177 available in the Embedded Controller on ChromeOS systems.
178
179 To compile this driver as a module, choose M here: the
180 module will be called cros_usbpd_logger.
181
182source "drivers/platform/chrome/wilco_ec/Kconfig"
183
184endif # CHROMEOS_PLATFORMS