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