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