Linux Audio

Check our new training course

Loading...
v4.6
 
 1#
 2# Platform support for Chrome OS hardware (Chromebooks and Chromeboxes)
 3#
 4
 
 
 
 
 
 
 
 
 
 
 5menuconfig CHROME_PLATFORMS
 6	bool "Platform support for Chrome hardware"
 7	depends on X86 || ARM || ARM64 || COMPILE_TEST
 8	---help---
 9	  Say Y here to get to see options for platform support for
10	  various Chromebooks and Chromeboxes. This option alone does
11	  not add any kernel code.
12
13	  If you say N, all options in this submenu will be skipped and disabled.
14
15if CHROME_PLATFORMS
16
17config CHROMEOS_LAPTOP
18	tristate "Chrome OS Laptop"
19	depends on I2C && DMI && X86
20	---help---
21	  This driver instantiates i2c and smbus devices such as
22	  light sensors and touchpads.
23
24	  If you have a supported Chromebook, choose Y or M here.
25	  The module will be called chromeos_laptop.
26
27config CHROMEOS_PSTORE
28	tristate "Chrome OS pstore support"
29	depends on X86
30	---help---
31	  This module instantiates the persistent storage on x86 ChromeOS
32	  devices. It can be used to store away console logs and crash
33	  information across reboots.
34
35	  The range of memory used is 0xf00000-0x1000000, traditionally
36	  the memory used to back VGA controller memory.
37
38	  If you have a supported Chromebook, choose Y or M here.
39	  The module will be called chromeos_pstore.
40
41config CROS_EC_CHARDEV
42        tristate "Chrome OS Embedded Controller userspace device interface"
43        depends on MFD_CROS_EC
44        ---help---
45          This driver adds support to talk with the ChromeOS EC from userspace.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
47          If you have a supported Chromebook, choose Y or M here.
48          The module will be called cros_ec_dev.
 
 
 
49
50config CROS_EC_LPC
51        tristate "ChromeOS Embedded Controller (LPC)"
52        depends on MFD_CROS_EC && (X86 || COMPILE_TEST)
53        help
54          If you say Y here, you get support for talking to the ChromeOS EC
55          over an LPC bus. This uses a simple byte-level protocol with a
56          checksum. This is used for userspace access only. The kernel
57          typically has its own communication methods.
 
58
59          To compile this driver as a module, choose M here: the
60          module will be called cros_ec_lpc.
61
62config CROS_EC_PROTO
63        bool
64        help
65          ChromeOS EC communication protocol helpers.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
67endif # CHROMEOS_PLATFORMS
v5.4
  1# SPDX-License-Identifier: GPL-2.0-only
  2#
  3# Platform support for Chrome OS hardware (Chromebooks and Chromeboxes)
  4#
  5
  6config MFD_CROS_EC
  7	tristate "Platform support for Chrome hardware (transitional)"
  8	select CHROME_PLATFORMS
  9	select CROS_EC
 10	select CONFIG_MFD_CROS_EC_DEV
 11	depends on X86 || ARM || ARM64 || COMPILE_TEST
 12	help
 13	  This is a transitional Kconfig option and will be removed after
 14	  everyone enables the parts individually.
 15
 16menuconfig CHROME_PLATFORMS
 17	bool "Platform support for Chrome hardware"
 18	depends on X86 || ARM || ARM64 || COMPILE_TEST
 19	---help---
 20	  Say Y here to get to see options for platform support for
 21	  various Chromebooks and Chromeboxes. This option alone does
 22	  not add any kernel code.
 23
 24	  If you say N, all options in this submenu will be skipped and disabled.
 25
 26if CHROME_PLATFORMS
 27
 28config CHROMEOS_LAPTOP
 29	tristate "Chrome OS Laptop"
 30	depends on I2C && DMI && X86
 31	---help---
 32	  This driver instantiates i2c and smbus devices such as
 33	  light sensors and touchpads.
 34
 35	  If you have a supported Chromebook, choose Y or M here.
 36	  The module will be called chromeos_laptop.
 37
 38config CHROMEOS_PSTORE
 39	tristate "Chrome OS pstore support"
 40	depends on X86
 41	---help---
 42	  This module instantiates the persistent storage on x86 ChromeOS
 43	  devices. It can be used to store away console logs and crash
 44	  information across reboots.
 45
 46	  The range of memory used is 0xf00000-0x1000000, traditionally
 47	  the memory used to back VGA controller memory.
 48
 49	  If you have a supported Chromebook, choose Y or M here.
 50	  The module will be called chromeos_pstore.
 51
 52config CHROMEOS_TBMC
 53	tristate "ChromeOS Tablet Switch Controller"
 54	depends on ACPI
 55	depends on INPUT
 56	help
 57	  This option adds a driver for the tablet switch on
 58	  select Chrome OS systems.
 59
 60	  To compile this driver as a module, choose M here: the
 61	  module will be called chromeos_tbmc.
 62
 63config CROS_EC
 64	tristate "ChromeOS Embedded Controller"
 65	select CROS_EC_PROTO
 66	depends on X86 || ARM || ARM64 || COMPILE_TEST
 67	help
 68	  If you say Y here you get support for the ChromeOS Embedded
 69	  Controller (EC) providing keyboard, battery and power services.
 70	  You also need to enable the driver for the bus you are using. The
 71	  protocol for talking to the EC is defined by the bus driver.
 72
 73	  To compile this driver as a module, choose M here: the
 74	  module will be called cros_ec.
 75
 76config CROS_EC_I2C
 77	tristate "ChromeOS Embedded Controller (I2C)"
 78	depends on CROS_EC && I2C
 79
 80	help
 81	  If you say Y here, you get support for talking to the ChromeOS
 82	  EC through an I2C bus. This uses a simple byte-level protocol with
 83	  a checksum. Failing accesses will be retried three times to
 84	  improve reliability.
 85
 86config CROS_EC_RPMSG
 87	tristate "ChromeOS Embedded Controller (rpmsg)"
 88	depends on CROS_EC && RPMSG && OF
 89	help
 90	  If you say Y here, you get support for talking to the ChromeOS EC
 91	  through rpmsg. This uses a simple byte-level protocol with a
 92	  checksum. Also since there's no addition EC-to-host interrupt, this
 93	  use a byte in message to distinguish host event from host command.
 94
 95	  To compile this driver as a module, choose M here: the
 96	  module will be called cros_ec_rpmsg.
 97
 98config CROS_EC_ISHTP
 99	tristate "ChromeOS Embedded Controller (ISHTP)"
100	depends on CROS_EC
101	depends on INTEL_ISH_HID
102	help
103	  If you say Y here, you get support for talking to the ChromeOS EC
104	  firmware running on Intel Integrated Sensor Hub (ISH), using the
105	  ISH Transport protocol (ISH-TP). This uses a simple byte-level
106	  protocol with a checksum.
107
108	  To compile this driver as a module, choose M here: the
109	  module will be called cros_ec_ishtp.
110
111config CROS_EC_SPI
112	tristate "ChromeOS Embedded Controller (SPI)"
113	depends on CROS_EC && SPI
114
115	---help---
116	  If you say Y here, you get support for talking to the ChromeOS EC
117	  through a SPI bus, using a byte-level protocol. Since the EC's
118	  response time cannot be guaranteed, we support ignoring
119	  'pre-amble' bytes before the response actually starts.
120
121config CROS_EC_LPC
122	tristate "ChromeOS Embedded Controller (LPC)"
123	depends on CROS_EC && ACPI && (X86 || COMPILE_TEST)
124	help
125	  If you say Y here, you get support for talking to the ChromeOS EC
126	  over an LPC bus, including the LPC Microchip EC (MEC) variant.
127	  This uses a simple byte-level protocol with a checksum. This is
128	  used for userspace access only. The kernel typically has its own
129	  communication methods.
130
131	  To compile this driver as a module, choose M here: the
132	  module will be called cros_ec_lpcs.
133
134config CROS_EC_PROTO
135        bool
136        help
137          ChromeOS EC communication protocol helpers.
138
139config CROS_KBD_LED_BACKLIGHT
140	tristate "Backlight LED support for Chrome OS keyboards"
141	depends on LEDS_CLASS && ACPI
142	help
143	  This option enables support for the keyboard backlight LEDs on
144	  select Chrome OS systems.
145
146	  To compile this driver as a module, choose M here: the
147	  module will be called cros_kbd_led_backlight.
148
149config CROS_EC_CHARDEV
150	tristate "ChromeOS EC miscdevice"
151	depends on MFD_CROS_EC_DEV
152	default MFD_CROS_EC_DEV
153	help
154	  This driver adds file operations support to talk with the
155	  ChromeOS EC from userspace via a character device.
156
157	  To compile this driver as a module, choose M here: the
158	  module will be called cros_ec_chardev.
159
160config CROS_EC_LIGHTBAR
161	tristate "Chromebook Pixel's lightbar support"
162	depends on MFD_CROS_EC_DEV
163	default MFD_CROS_EC_DEV
164	help
165	  This option exposes the Chromebook Pixel's lightbar to
166	  userspace.
167
168	  To compile this driver as a module, choose M here: the
169	  module will be called cros_ec_lightbar.
170
171config CROS_EC_VBC
172	tristate "ChromeOS EC vboot context support"
173	depends on MFD_CROS_EC_DEV && OF
174	default MFD_CROS_EC_DEV
175	help
176	  This option exposes the ChromeOS EC vboot context nvram to
177	  userspace.
178
179	  To compile this driver as a module, choose M here: the
180	  module will be called cros_ec_vbc.
181
182config CROS_EC_DEBUGFS
183	tristate "Export ChromeOS EC internals in DebugFS"
184	depends on MFD_CROS_EC_DEV && DEBUG_FS
185	default MFD_CROS_EC_DEV
186	help
187	  This option exposes the ChromeOS EC device internals to
188	  userspace.
189
190	  To compile this driver as a module, choose M here: the
191	  module will be called cros_ec_debugfs.
192
193config CROS_EC_SYSFS
194	tristate "ChromeOS EC control and information through sysfs"
195	depends on MFD_CROS_EC_DEV && SYSFS
196	default MFD_CROS_EC_DEV
197	help
198	  This option exposes some sysfs attributes to control and get
199	  information from ChromeOS EC.
200
201	  To compile this driver as a module, choose M here: the
202	  module will be called cros_ec_sysfs.
203
204config CROS_USBPD_LOGGER
205	tristate "Logging driver for USB PD charger"
206	depends on CHARGER_CROS_USBPD
207	default y
208	select RTC_LIB
209	help
210	  This option enables support for logging event data for the USB PD charger
211	  available in the Embedded Controller on ChromeOS systems.
212
213	  To compile this driver as a module, choose M here: the
214	  module will be called cros_usbpd_logger.
215
216source "drivers/platform/chrome/wilco_ec/Kconfig"
217
218endif # CHROMEOS_PLATFORMS