xref: /linux/drivers/platform/chrome/Kconfig (revision 73ee89436047dc58005bed7d1ded679c35292164)
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 CHROMEOS_TBMC
42	tristate "ChromeOS Tablet Switch Controller"
43	depends on ACPI
44	depends on INPUT
45	help
46	  This option adds a driver for the tablet switch on
47	  select Chrome OS systems.
48
49	  To compile this driver as a module, choose M here: the
50	  module will be called chromeos_tbmc.
51
52config CROS_EC_I2C
53	tristate "ChromeOS Embedded Controller (I2C)"
54	depends on MFD_CROS_EC && I2C
55
56	help
57	  If you say Y here, you get support for talking to the ChromeOS
58	  EC through an I2C bus. This uses a simple byte-level protocol with
59	  a checksum. Failing accesses will be retried three times to
60	  improve reliability.
61
62config CROS_EC_RPMSG
63	tristate "ChromeOS Embedded Controller (rpmsg)"
64	depends on MFD_CROS_EC && RPMSG && OF
65	help
66	  If you say Y here, you get support for talking to the ChromeOS EC
67	  through rpmsg. This uses a simple byte-level protocol with a
68	  checksum. Also since there's no addition EC-to-host interrupt, this
69	  use a byte in message to distinguish host event from host command.
70
71	  To compile this driver as a module, choose M here: the
72	  module will be called cros_ec_rpmsg.
73
74config CROS_EC_SPI
75	tristate "ChromeOS Embedded Controller (SPI)"
76	depends on MFD_CROS_EC && SPI
77
78	---help---
79	  If you say Y here, you get support for talking to the ChromeOS EC
80	  through a SPI bus, using a byte-level protocol. Since the EC's
81	  response time cannot be guaranteed, we support ignoring
82	  'pre-amble' bytes before the response actually starts.
83
84config CROS_EC_LPC
85        tristate "ChromeOS Embedded Controller (LPC)"
86        depends on MFD_CROS_EC && ACPI && (X86 || COMPILE_TEST)
87        help
88          If you say Y here, you get support for talking to the ChromeOS EC
89          over an LPC bus. This uses a simple byte-level protocol with a
90          checksum. This is used for userspace access only. The kernel
91          typically has its own communication methods.
92
93          To compile this driver as a module, choose M here: the
94          module will be called cros_ec_lpc.
95
96config CROS_EC_LPC_MEC
97	bool "ChromeOS Embedded Controller LPC Microchip EC (MEC) variant"
98	depends on CROS_EC_LPC
99	default n
100	help
101	  If you say Y here, a variant LPC protocol for the Microchip EC
102	  will be used. Note that this variant is not backward compatible
103	  with non-Microchip ECs.
104
105	  If you have a ChromeOS Embedded Controller Microchip EC variant
106	  choose Y here.
107
108config CROS_EC_PROTO
109        bool
110        help
111          ChromeOS EC communication protocol helpers.
112
113config CROS_KBD_LED_BACKLIGHT
114	tristate "Backlight LED support for Chrome OS keyboards"
115	depends on LEDS_CLASS && ACPI
116	help
117	  This option enables support for the keyboard backlight LEDs on
118	  select Chrome OS systems.
119
120	  To compile this driver as a module, choose M here: the
121	  module will be called cros_kbd_led_backlight.
122
123config CROS_EC_LIGHTBAR
124	tristate "Chromebook Pixel's lightbar support"
125	depends on MFD_CROS_EC_CHARDEV
126	default MFD_CROS_EC_CHARDEV
127	help
128	  This option exposes the Chromebook Pixel's lightbar to
129	  userspace.
130
131	  To compile this driver as a module, choose M here: the
132	  module will be called cros_ec_lightbar.
133
134config CROS_EC_VBC
135	tristate "ChromeOS EC vboot context support"
136	depends on MFD_CROS_EC_CHARDEV && OF
137	default MFD_CROS_EC_CHARDEV
138	help
139	  This option exposes the ChromeOS EC vboot context nvram to
140	  userspace.
141
142	  To compile this driver as a module, choose M here: the
143	  module will be called cros_ec_vbc.
144
145config CROS_EC_DEBUGFS
146	tristate "Export ChromeOS EC internals in DebugFS"
147	depends on MFD_CROS_EC_CHARDEV && DEBUG_FS
148	default MFD_CROS_EC_CHARDEV
149	help
150	  This option exposes the ChromeOS EC device internals to
151	  userspace.
152
153	  To compile this driver as a module, choose M here: the
154	  module will be called cros_ec_debugfs.
155
156config CROS_EC_SYSFS
157	tristate "ChromeOS EC control and information through sysfs"
158	depends on MFD_CROS_EC_CHARDEV && SYSFS
159	default MFD_CROS_EC_CHARDEV
160	help
161	  This option exposes some sysfs attributes to control and get
162	  information from ChromeOS EC.
163
164	  To compile this driver as a module, choose M here: the
165	  module will be called cros_ec_sysfs.
166
167config CROS_USBPD_LOGGER
168	tristate "Logging driver for USB PD charger"
169	depends on CHARGER_CROS_USBPD
170	default y
171	select RTC_LIB
172	help
173	  This option enables support for logging event data for the USB PD charger
174	  available in the Embedded Controller on ChromeOS systems.
175
176	  To compile this driver as a module, choose M here: the
177	  module will be called cros_usbpd_logger.
178
179source "drivers/platform/chrome/wilco_ec/Kconfig"
180
181endif # CHROMEOS_PLATFORMS
182