xref: /openbmc/linux/drivers/platform/chrome/Kconfig (revision ebd09753)
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_CTL
53        tristate
54
55config CROS_EC_I2C
56	tristate "ChromeOS Embedded Controller (I2C)"
57	depends on MFD_CROS_EC && I2C
58
59	help
60	  If you say Y here, you get support for talking to the ChromeOS
61	  EC through an I2C bus. This uses a simple byte-level protocol with
62	  a checksum. Failing accesses will be retried three times to
63	  improve reliability.
64
65config CROS_EC_SPI
66	tristate "ChromeOS Embedded Controller (SPI)"
67	depends on MFD_CROS_EC && SPI
68
69	---help---
70	  If you say Y here, you get support for talking to the ChromeOS EC
71	  through a SPI bus, using a byte-level protocol. Since the EC's
72	  response time cannot be guaranteed, we support ignoring
73	  'pre-amble' bytes before the response actually starts.
74
75config CROS_EC_LPC
76        tristate "ChromeOS Embedded Controller (LPC)"
77        depends on MFD_CROS_EC && ACPI && (X86 || COMPILE_TEST)
78        help
79          If you say Y here, you get support for talking to the ChromeOS EC
80          over an LPC bus. This uses a simple byte-level protocol with a
81          checksum. This is used for userspace access only. The kernel
82          typically has its own communication methods.
83
84          To compile this driver as a module, choose M here: the
85          module will be called cros_ec_lpc.
86
87config CROS_EC_LPC_MEC
88	bool "ChromeOS Embedded Controller LPC Microchip EC (MEC) variant"
89	depends on CROS_EC_LPC
90	default n
91	help
92	  If you say Y here, a variant LPC protocol for the Microchip EC
93	  will be used. Note that this variant is not backward compatible
94	  with non-Microchip ECs.
95
96	  If you have a ChromeOS Embedded Controller Microchip EC variant
97	  choose Y here.
98
99config CROS_EC_PROTO
100        bool
101        help
102          ChromeOS EC communication protocol helpers.
103
104config CROS_KBD_LED_BACKLIGHT
105	tristate "Backlight LED support for Chrome OS keyboards"
106	depends on LEDS_CLASS && ACPI
107	help
108	  This option enables support for the keyboard backlight LEDs on
109	  select Chrome OS systems.
110
111	  To compile this driver as a module, choose M here: the
112	  module will be called cros_kbd_led_backlight.
113
114endif # CHROMEOS_PLATFORMS
115