xref: /openbmc/linux/drivers/platform/chrome/Kconfig (revision ae40e94f)
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_SPI
63	tristate "ChromeOS Embedded Controller (SPI)"
64	depends on MFD_CROS_EC && SPI
65
66	---help---
67	  If you say Y here, you get support for talking to the ChromeOS EC
68	  through a SPI bus, using a byte-level protocol. Since the EC's
69	  response time cannot be guaranteed, we support ignoring
70	  'pre-amble' bytes before the response actually starts.
71
72config CROS_EC_LPC
73        tristate "ChromeOS Embedded Controller (LPC)"
74        depends on MFD_CROS_EC && ACPI && (X86 || COMPILE_TEST)
75        help
76          If you say Y here, you get support for talking to the ChromeOS EC
77          over an LPC bus. This uses a simple byte-level protocol with a
78          checksum. This is used for userspace access only. The kernel
79          typically has its own communication methods.
80
81          To compile this driver as a module, choose M here: the
82          module will be called cros_ec_lpc.
83
84config CROS_EC_LPC_MEC
85	bool "ChromeOS Embedded Controller LPC Microchip EC (MEC) variant"
86	depends on CROS_EC_LPC
87	default n
88	help
89	  If you say Y here, a variant LPC protocol for the Microchip EC
90	  will be used. Note that this variant is not backward compatible
91	  with non-Microchip ECs.
92
93	  If you have a ChromeOS Embedded Controller Microchip EC variant
94	  choose Y here.
95
96config CROS_EC_PROTO
97        bool
98        help
99          ChromeOS EC communication protocol helpers.
100
101config CROS_KBD_LED_BACKLIGHT
102	tristate "Backlight LED support for Chrome OS keyboards"
103	depends on LEDS_CLASS && ACPI
104	help
105	  This option enables support for the keyboard backlight LEDs on
106	  select Chrome OS systems.
107
108	  To compile this driver as a module, choose M here: the
109	  module will be called cros_kbd_led_backlight.
110
111config CROS_EC_LIGHTBAR
112	tristate "Chromebook Pixel's lightbar support"
113	depends on MFD_CROS_EC_CHARDEV
114	default MFD_CROS_EC_CHARDEV
115	help
116	  This option exposes the Chromebook Pixel's lightbar to
117	  userspace.
118
119	  To compile this driver as a module, choose M here: the
120	  module will be called cros_ec_lightbar.
121
122config CROS_EC_VBC
123	tristate "ChromeOS EC vboot context support"
124	depends on MFD_CROS_EC_CHARDEV && OF
125	default MFD_CROS_EC_CHARDEV
126	help
127	  This option exposes the ChromeOS EC vboot context nvram to
128	  userspace.
129
130	  To compile this driver as a module, choose M here: the
131	  module will be called cros_ec_vbc.
132
133config CROS_EC_DEBUGFS
134	tristate "Export ChromeOS EC internals in DebugFS"
135	depends on MFD_CROS_EC_CHARDEV && DEBUG_FS
136	default MFD_CROS_EC_CHARDEV
137	help
138	  This option exposes the ChromeOS EC device internals to
139	  userspace.
140
141	  To compile this driver as a module, choose M here: the
142	  module will be called cros_ec_debugfs.
143
144config CROS_EC_SYSFS
145	tristate "ChromeOS EC control and information through sysfs"
146	depends on MFD_CROS_EC_CHARDEV && SYSFS
147	default MFD_CROS_EC_CHARDEV
148	help
149	  This option exposes some sysfs attributes to control and get
150	  information from ChromeOS EC.
151
152	  To compile this driver as a module, choose M here: the
153	  module will be called cros_ec_sysfs.
154
155source "drivers/platform/chrome/wilco_ec/Kconfig"
156
157endif # CHROMEOS_PLATFORMS
158