1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2ab043105SOlof Johansson# 3ab043105SOlof Johansson# Platform support for Chrome OS hardware (Chromebooks and Chromeboxes) 4ab043105SOlof Johansson# 5ab043105SOlof Johansson 6ab043105SOlof Johanssonmenuconfig CHROME_PLATFORMS 7ab043105SOlof Johansson bool "Platform support for Chrome hardware" 823ecee32SThierry Reding depends on X86 || ARM || ARM64 || COMPILE_TEST 9a7f7f624SMasahiro Yamada help 10ab043105SOlof Johansson Say Y here to get to see options for platform support for 11ab043105SOlof Johansson various Chromebooks and Chromeboxes. This option alone does 12ab043105SOlof Johansson not add any kernel code. 13ab043105SOlof Johansson 14ab043105SOlof Johansson If you say N, all options in this submenu will be skipped and disabled. 15ab043105SOlof Johansson 16ab043105SOlof Johanssonif CHROME_PLATFORMS 17ab043105SOlof Johansson 18ab043105SOlof Johanssonconfig CHROMEOS_LAPTOP 19ab043105SOlof Johansson tristate "Chrome OS Laptop" 20e7c256fbSBill Richardson depends on I2C && DMI && X86 21a7f7f624SMasahiro Yamada help 22ab043105SOlof Johansson This driver instantiates i2c and smbus devices such as 23ab043105SOlof Johansson light sensors and touchpads. 24ab043105SOlof Johansson 25ab043105SOlof Johansson If you have a supported Chromebook, choose Y or M here. 26ab043105SOlof Johansson The module will be called chromeos_laptop. 27ab043105SOlof Johansson 289742e127SOlof Johanssonconfig CHROMEOS_PSTORE 299742e127SOlof Johansson tristate "Chrome OS pstore support" 30e7c256fbSBill Richardson depends on X86 31a7f7f624SMasahiro Yamada help 329742e127SOlof Johansson This module instantiates the persistent storage on x86 ChromeOS 339742e127SOlof Johansson devices. It can be used to store away console logs and crash 349742e127SOlof Johansson information across reboots. 359742e127SOlof Johansson 369742e127SOlof Johansson The range of memory used is 0xf00000-0x1000000, traditionally 379742e127SOlof Johansson the memory used to back VGA controller memory. 389742e127SOlof Johansson 399742e127SOlof Johansson If you have a supported Chromebook, choose Y or M here. 409742e127SOlof Johansson The module will be called chromeos_pstore. 419742e127SOlof Johansson 42b418f741SGwendal Grignouconfig CHROMEOS_TBMC 43b418f741SGwendal Grignou tristate "ChromeOS Tablet Switch Controller" 44b418f741SGwendal Grignou depends on ACPI 45485aa74aSArnd Bergmann depends on INPUT 46b418f741SGwendal Grignou help 47b418f741SGwendal Grignou This option adds a driver for the tablet switch on 48b418f741SGwendal Grignou select Chrome OS systems. 49b418f741SGwendal Grignou 50b418f741SGwendal Grignou To compile this driver as a module, choose M here: the 51b418f741SGwendal Grignou module will be called chromeos_tbmc. 52b418f741SGwendal Grignou 5347f11e0bSEnric Balletbo i Serraconfig CROS_EC 5447f11e0bSEnric Balletbo i Serra tristate "ChromeOS Embedded Controller" 5547f11e0bSEnric Balletbo i Serra select CROS_EC_PROTO 5647f11e0bSEnric Balletbo i Serra depends on X86 || ARM || ARM64 || COMPILE_TEST 5747f11e0bSEnric Balletbo i Serra help 5847f11e0bSEnric Balletbo i Serra If you say Y here you get support for the ChromeOS Embedded 5947f11e0bSEnric Balletbo i Serra Controller (EC) providing keyboard, battery and power services. 6047f11e0bSEnric Balletbo i Serra You also need to enable the driver for the bus you are using. The 6147f11e0bSEnric Balletbo i Serra protocol for talking to the EC is defined by the bus driver. 6247f11e0bSEnric Balletbo i Serra 6347f11e0bSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 6447f11e0bSEnric Balletbo i Serra module will be called cros_ec. 6547f11e0bSEnric Balletbo i Serra 66d00a8741SEnric Balletbo i Serraconfig CROS_EC_I2C 67d00a8741SEnric Balletbo i Serra tristate "ChromeOS Embedded Controller (I2C)" 6847f11e0bSEnric Balletbo i Serra depends on CROS_EC && I2C 69d00a8741SEnric Balletbo i Serra 70d00a8741SEnric Balletbo i Serra help 71d00a8741SEnric Balletbo i Serra If you say Y here, you get support for talking to the ChromeOS 72d00a8741SEnric Balletbo i Serra EC through an I2C bus. This uses a simple byte-level protocol with 73d00a8741SEnric Balletbo i Serra a checksum. Failing accesses will be retried three times to 74d00a8741SEnric Balletbo i Serra improve reliability. 75d00a8741SEnric Balletbo i Serra 762de89fd9SPi-Hsun Shihconfig CROS_EC_RPMSG 772de89fd9SPi-Hsun Shih tristate "ChromeOS Embedded Controller (rpmsg)" 7847f11e0bSEnric Balletbo i Serra depends on CROS_EC && RPMSG && OF 792de89fd9SPi-Hsun Shih help 802de89fd9SPi-Hsun Shih If you say Y here, you get support for talking to the ChromeOS EC 812de89fd9SPi-Hsun Shih through rpmsg. This uses a simple byte-level protocol with a 822de89fd9SPi-Hsun Shih checksum. Also since there's no addition EC-to-host interrupt, this 832de89fd9SPi-Hsun Shih use a byte in message to distinguish host event from host command. 842de89fd9SPi-Hsun Shih 852de89fd9SPi-Hsun Shih To compile this driver as a module, choose M here: the 862de89fd9SPi-Hsun Shih module will be called cros_ec_rpmsg. 872de89fd9SPi-Hsun Shih 8826a14267SRushikesh S Kadamconfig CROS_EC_ISHTP 8926a14267SRushikesh S Kadam tristate "ChromeOS Embedded Controller (ISHTP)" 902fa2b980SEnric Balletbo i Serra depends on CROS_EC 9126a14267SRushikesh S Kadam depends on INTEL_ISH_HID 9226a14267SRushikesh S Kadam help 9326a14267SRushikesh S Kadam If you say Y here, you get support for talking to the ChromeOS EC 9426a14267SRushikesh S Kadam firmware running on Intel Integrated Sensor Hub (ISH), using the 9526a14267SRushikesh S Kadam ISH Transport protocol (ISH-TP). This uses a simple byte-level 9626a14267SRushikesh S Kadam protocol with a checksum. 9726a14267SRushikesh S Kadam 9826a14267SRushikesh S Kadam To compile this driver as a module, choose M here: the 9926a14267SRushikesh S Kadam module will be called cros_ec_ishtp. 10026a14267SRushikesh S Kadam 101d00a8741SEnric Balletbo i Serraconfig CROS_EC_SPI 102d00a8741SEnric Balletbo i Serra tristate "ChromeOS Embedded Controller (SPI)" 10347f11e0bSEnric Balletbo i Serra depends on CROS_EC && SPI 104d00a8741SEnric Balletbo i Serra 105a7f7f624SMasahiro Yamada help 106d00a8741SEnric Balletbo i Serra If you say Y here, you get support for talking to the ChromeOS EC 107d00a8741SEnric Balletbo i Serra through a SPI bus, using a byte-level protocol. Since the EC's 108d00a8741SEnric Balletbo i Serra response time cannot be guaranteed, we support ignoring 109d00a8741SEnric Balletbo i Serra 'pre-amble' bytes before the response actually starts. 110d00a8741SEnric Balletbo i Serra 111ec2f33abSBill Richardsonconfig CROS_EC_LPC 112ec2f33abSBill Richardson tristate "ChromeOS Embedded Controller (LPC)" 11347f11e0bSEnric Balletbo i Serra depends on CROS_EC && ACPI && (X86 || COMPILE_TEST) 114ec2f33abSBill Richardson help 115ec2f33abSBill Richardson If you say Y here, you get support for talking to the ChromeOS EC 11622c040faSEnric Balletbo i Serra over an LPC bus, including the LPC Microchip EC (MEC) variant. 11722c040faSEnric Balletbo i Serra This uses a simple byte-level protocol with a checksum. This is 11822c040faSEnric Balletbo i Serra used for userspace access only. The kernel typically has its own 11922c040faSEnric Balletbo i Serra communication methods. 120ec2f33abSBill Richardson 121ec2f33abSBill Richardson To compile this driver as a module, choose M here: the 12222c040faSEnric Balletbo i Serra module will be called cros_ec_lpcs. 1238d4a3dc4SShawn Nematbakhsh 124062476f2SJavier Martinez Canillasconfig CROS_EC_PROTO 125062476f2SJavier Martinez Canillas bool 126062476f2SJavier Martinez Canillas help 127062476f2SJavier Martinez Canillas ChromeOS EC communication protocol helpers. 128062476f2SJavier Martinez Canillas 129492ef782SSimon Queconfig CROS_KBD_LED_BACKLIGHT 130492ef782SSimon Que tristate "Backlight LED support for Chrome OS keyboards" 131492ef782SSimon Que depends on LEDS_CLASS && ACPI 132492ef782SSimon Que help 133492ef782SSimon Que This option enables support for the keyboard backlight LEDs on 134492ef782SSimon Que select Chrome OS systems. 135492ef782SSimon Que 136492ef782SSimon Que To compile this driver as a module, choose M here: the 137492ef782SSimon Que module will be called cros_kbd_led_backlight. 138492ef782SSimon Que 139eda2e30cSEnric Balletbo i Serraconfig CROS_EC_CHARDEV 140eda2e30cSEnric Balletbo i Serra tristate "ChromeOS EC miscdevice" 1412fa2b980SEnric Balletbo i Serra depends on MFD_CROS_EC_DEV 1422fa2b980SEnric Balletbo i Serra default MFD_CROS_EC_DEV 143eda2e30cSEnric Balletbo i Serra help 144eda2e30cSEnric Balletbo i Serra This driver adds file operations support to talk with the 145eda2e30cSEnric Balletbo i Serra ChromeOS EC from userspace via a character device. 146eda2e30cSEnric Balletbo i Serra 147eda2e30cSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 148eda2e30cSEnric Balletbo i Serra module will be called cros_ec_chardev. 149eda2e30cSEnric Balletbo i Serra 150ecf8a6cdSEnric Balletbo i Serraconfig CROS_EC_LIGHTBAR 151ecf8a6cdSEnric Balletbo i Serra tristate "Chromebook Pixel's lightbar support" 1522fa2b980SEnric Balletbo i Serra depends on MFD_CROS_EC_DEV 1532fa2b980SEnric Balletbo i Serra default MFD_CROS_EC_DEV 154ecf8a6cdSEnric Balletbo i Serra help 155ecf8a6cdSEnric Balletbo i Serra This option exposes the Chromebook Pixel's lightbar to 156ecf8a6cdSEnric Balletbo i Serra userspace. 157ecf8a6cdSEnric Balletbo i Serra 158ecf8a6cdSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 159ecf8a6cdSEnric Balletbo i Serra module will be called cros_ec_lightbar. 160ecf8a6cdSEnric Balletbo i Serra 161acb9900fSEnric Balletbo i Serraconfig CROS_EC_VBC 162acb9900fSEnric Balletbo i Serra tristate "ChromeOS EC vboot context support" 1632fa2b980SEnric Balletbo i Serra depends on MFD_CROS_EC_DEV && OF 1642fa2b980SEnric Balletbo i Serra default MFD_CROS_EC_DEV 165acb9900fSEnric Balletbo i Serra help 166acb9900fSEnric Balletbo i Serra This option exposes the ChromeOS EC vboot context nvram to 167acb9900fSEnric Balletbo i Serra userspace. 168acb9900fSEnric Balletbo i Serra 169acb9900fSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 170acb9900fSEnric Balletbo i Serra module will be called cros_ec_vbc. 171acb9900fSEnric Balletbo i Serra 1726fce0a2cSEnric Balletbo i Serraconfig CROS_EC_DEBUGFS 1736fce0a2cSEnric Balletbo i Serra tristate "Export ChromeOS EC internals in DebugFS" 1742fa2b980SEnric Balletbo i Serra depends on MFD_CROS_EC_DEV && DEBUG_FS 1752fa2b980SEnric Balletbo i Serra default MFD_CROS_EC_DEV 1766fce0a2cSEnric Balletbo i Serra help 1776fce0a2cSEnric Balletbo i Serra This option exposes the ChromeOS EC device internals to 1786fce0a2cSEnric Balletbo i Serra userspace. 1796fce0a2cSEnric Balletbo i Serra 1806fce0a2cSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 1816fce0a2cSEnric Balletbo i Serra module will be called cros_ec_debugfs. 1826fce0a2cSEnric Balletbo i Serra 18353067471SGwendal Grignouconfig CROS_EC_SENSORHUB 18453067471SGwendal Grignou tristate "ChromeOS EC MEMS Sensor Hub" 18574c166b5SEnric Balletbo i Serra depends on MFD_CROS_EC_DEV 18674c166b5SEnric Balletbo i Serra default MFD_CROS_EC_DEV 18753067471SGwendal Grignou help 18853067471SGwendal Grignou Allow loading IIO sensors. This driver is loaded by MFD and will in 18953067471SGwendal Grignou turn query the EC and register the sensors. 19053067471SGwendal Grignou It also spreads the sensor data coming from the EC to the IIO sensor 19153067471SGwendal Grignou object. 19253067471SGwendal Grignou 19353067471SGwendal Grignou To compile this driver as a module, choose M here: the 19453067471SGwendal Grignou module will be called cros_ec_sensorhub. 19553067471SGwendal Grignou 1966fd7f2bbSEnric Balletbo i Serraconfig CROS_EC_SYSFS 1976fd7f2bbSEnric Balletbo i Serra tristate "ChromeOS EC control and information through sysfs" 1982fa2b980SEnric Balletbo i Serra depends on MFD_CROS_EC_DEV && SYSFS 1992fa2b980SEnric Balletbo i Serra default MFD_CROS_EC_DEV 2006fd7f2bbSEnric Balletbo i Serra help 2016fd7f2bbSEnric Balletbo i Serra This option exposes some sysfs attributes to control and get 2026fd7f2bbSEnric Balletbo i Serra information from ChromeOS EC. 2036fd7f2bbSEnric Balletbo i Serra 2046fd7f2bbSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 2056fd7f2bbSEnric Balletbo i Serra module will be called cros_ec_sysfs. 2066fd7f2bbSEnric Balletbo i Serra 207fdc6b21eSPrashant Malaniconfig CROS_EC_TYPEC 208fdc6b21eSPrashant Malani tristate "ChromeOS EC Type-C Connector Control" 209fdc6b21eSPrashant Malani depends on MFD_CROS_EC_DEV && TYPEC 2107110f5f0SPrashant Malani depends on CROS_USBPD_NOTIFY 211bdc40945SEnric Balletbo i Serra depends on USB_ROLE_SWITCH 212fdc6b21eSPrashant Malani default MFD_CROS_EC_DEV 213fdc6b21eSPrashant Malani help 214fdc6b21eSPrashant Malani If you say Y here, you get support for accessing Type C connector 215fdc6b21eSPrashant Malani information from the Chrome OS EC. 216fdc6b21eSPrashant Malani 217fdc6b21eSPrashant Malani To compile this driver as a module, choose M here: the module will be 218fdc6b21eSPrashant Malani called cros_ec_typec. 219fdc6b21eSPrashant Malani 220a2679b64SGuenter Roeckconfig CROS_USBPD_LOGGER 221a2679b64SGuenter Roeck tristate "Logging driver for USB PD charger" 222a2679b64SGuenter Roeck depends on CHARGER_CROS_USBPD 223a2679b64SGuenter Roeck default y 224a2679b64SGuenter Roeck select RTC_LIB 225a2679b64SGuenter Roeck help 226a2679b64SGuenter Roeck This option enables support for logging event data for the USB PD charger 227a2679b64SGuenter Roeck available in the Embedded Controller on ChromeOS systems. 228a2679b64SGuenter Roeck 229a2679b64SGuenter Roeck To compile this driver as a module, choose M here: the 230a2679b64SGuenter Roeck module will be called cros_usbpd_logger. 231a2679b64SGuenter Roeck 232ec2daf6eSJon Flatleyconfig CROS_USBPD_NOTIFY 233ec2daf6eSJon Flatley tristate "ChromeOS Type-C power delivery event notifier" 234ec2daf6eSJon Flatley depends on MFD_CROS_EC_DEV 235ec2daf6eSJon Flatley default MFD_CROS_EC_DEV 236ec2daf6eSJon Flatley help 237ec2daf6eSJon Flatley If you say Y here, you get support for Type-C PD event notifications 238ec2daf6eSJon Flatley from the ChromeOS EC. On ACPI platorms this driver will bind to the 239ec2daf6eSJon Flatley GOOG0003 ACPI device, and on platforms which don't have this device it 240ec2daf6eSJon Flatley will get initialized on ECs which support the feature 241ec2daf6eSJon Flatley EC_FEATURE_USB_PD. 242ec2daf6eSJon Flatley 243ec2daf6eSJon Flatley To compile this driver as a module, choose M here: the 244ec2daf6eSJon Flatley module will be called cros_usbpd_notify. 245ec2daf6eSJon Flatley 246*3fb57847SRajat Jainconfig CHROMEOS_PRIVACY_SCREEN 247*3fb57847SRajat Jain tristate "ChromeOS Privacy Screen support" 248*3fb57847SRajat Jain depends on ACPI 249*3fb57847SRajat Jain depends on DRM 250*3fb57847SRajat Jain select DRM_PRIVACY_SCREEN 251*3fb57847SRajat Jain help 252*3fb57847SRajat Jain This driver provides the support needed for the in-built electronic 253*3fb57847SRajat Jain privacy screen that is present on some ChromeOS devices. When enabled, 254*3fb57847SRajat Jain this should probably always be built into the kernel to avoid or 255*3fb57847SRajat Jain minimize drm probe deferral. 256*3fb57847SRajat Jain 2577b3d4f44SNick Crewssource "drivers/platform/chrome/wilco_ec/Kconfig" 2587b3d4f44SNick Crews 259ab043105SOlof Johanssonendif # CHROMEOS_PLATFORMS 260