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 62fa2b980SEnric Balletbo i Serraconfig MFD_CROS_EC 72fa2b980SEnric Balletbo i Serra tristate "Platform support for Chrome hardware (transitional)" 82fa2b980SEnric Balletbo i Serra select CHROME_PLATFORMS 92fa2b980SEnric Balletbo i Serra select CROS_EC 102fa2b980SEnric Balletbo i Serra select CONFIG_MFD_CROS_EC_DEV 112fa2b980SEnric Balletbo i Serra depends on X86 || ARM || ARM64 || COMPILE_TEST 122fa2b980SEnric Balletbo i Serra help 132fa2b980SEnric Balletbo i Serra This is a transitional Kconfig option and will be removed after 142fa2b980SEnric Balletbo i Serra everyone enables the parts individually. 152fa2b980SEnric Balletbo i Serra 16ab043105SOlof Johanssonmenuconfig CHROME_PLATFORMS 17ab043105SOlof Johansson bool "Platform support for Chrome hardware" 1823ecee32SThierry Reding depends on X86 || ARM || ARM64 || COMPILE_TEST 19ab043105SOlof Johansson ---help--- 20ab043105SOlof Johansson Say Y here to get to see options for platform support for 21ab043105SOlof Johansson various Chromebooks and Chromeboxes. This option alone does 22ab043105SOlof Johansson not add any kernel code. 23ab043105SOlof Johansson 24ab043105SOlof Johansson If you say N, all options in this submenu will be skipped and disabled. 25ab043105SOlof Johansson 26ab043105SOlof Johanssonif CHROME_PLATFORMS 27ab043105SOlof Johansson 28ab043105SOlof Johanssonconfig CHROMEOS_LAPTOP 29ab043105SOlof Johansson tristate "Chrome OS Laptop" 30e7c256fbSBill Richardson depends on I2C && DMI && X86 31ab043105SOlof Johansson ---help--- 32ab043105SOlof Johansson This driver instantiates i2c and smbus devices such as 33ab043105SOlof Johansson light sensors and touchpads. 34ab043105SOlof Johansson 35ab043105SOlof Johansson If you have a supported Chromebook, choose Y or M here. 36ab043105SOlof Johansson The module will be called chromeos_laptop. 37ab043105SOlof Johansson 389742e127SOlof Johanssonconfig CHROMEOS_PSTORE 399742e127SOlof Johansson tristate "Chrome OS pstore support" 40e7c256fbSBill Richardson depends on X86 419742e127SOlof Johansson ---help--- 429742e127SOlof Johansson This module instantiates the persistent storage on x86 ChromeOS 439742e127SOlof Johansson devices. It can be used to store away console logs and crash 449742e127SOlof Johansson information across reboots. 459742e127SOlof Johansson 469742e127SOlof Johansson The range of memory used is 0xf00000-0x1000000, traditionally 479742e127SOlof Johansson the memory used to back VGA controller memory. 489742e127SOlof Johansson 499742e127SOlof Johansson If you have a supported Chromebook, choose Y or M here. 509742e127SOlof Johansson The module will be called chromeos_pstore. 519742e127SOlof Johansson 52b418f741SGwendal Grignouconfig CHROMEOS_TBMC 53b418f741SGwendal Grignou tristate "ChromeOS Tablet Switch Controller" 54b418f741SGwendal Grignou depends on ACPI 55485aa74aSArnd Bergmann depends on INPUT 56b418f741SGwendal Grignou help 57b418f741SGwendal Grignou This option adds a driver for the tablet switch on 58b418f741SGwendal Grignou select Chrome OS systems. 59b418f741SGwendal Grignou 60b418f741SGwendal Grignou To compile this driver as a module, choose M here: the 61b418f741SGwendal Grignou module will be called chromeos_tbmc. 62b418f741SGwendal Grignou 6347f11e0bSEnric Balletbo i Serraconfig CROS_EC 6447f11e0bSEnric Balletbo i Serra tristate "ChromeOS Embedded Controller" 6547f11e0bSEnric Balletbo i Serra select CROS_EC_PROTO 6647f11e0bSEnric Balletbo i Serra depends on X86 || ARM || ARM64 || COMPILE_TEST 6747f11e0bSEnric Balletbo i Serra help 6847f11e0bSEnric Balletbo i Serra If you say Y here you get support for the ChromeOS Embedded 6947f11e0bSEnric Balletbo i Serra Controller (EC) providing keyboard, battery and power services. 7047f11e0bSEnric Balletbo i Serra You also need to enable the driver for the bus you are using. The 7147f11e0bSEnric Balletbo i Serra protocol for talking to the EC is defined by the bus driver. 7247f11e0bSEnric Balletbo i Serra 7347f11e0bSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 7447f11e0bSEnric Balletbo i Serra module will be called cros_ec. 7547f11e0bSEnric Balletbo i Serra 76d00a8741SEnric Balletbo i Serraconfig CROS_EC_I2C 77d00a8741SEnric Balletbo i Serra tristate "ChromeOS Embedded Controller (I2C)" 7847f11e0bSEnric Balletbo i Serra depends on CROS_EC && I2C 79d00a8741SEnric Balletbo i Serra 80d00a8741SEnric Balletbo i Serra help 81d00a8741SEnric Balletbo i Serra If you say Y here, you get support for talking to the ChromeOS 82d00a8741SEnric Balletbo i Serra EC through an I2C bus. This uses a simple byte-level protocol with 83d00a8741SEnric Balletbo i Serra a checksum. Failing accesses will be retried three times to 84d00a8741SEnric Balletbo i Serra improve reliability. 85d00a8741SEnric Balletbo i Serra 862de89fd9SPi-Hsun Shihconfig CROS_EC_RPMSG 872de89fd9SPi-Hsun Shih tristate "ChromeOS Embedded Controller (rpmsg)" 8847f11e0bSEnric Balletbo i Serra depends on CROS_EC && RPMSG && OF 892de89fd9SPi-Hsun Shih help 902de89fd9SPi-Hsun Shih If you say Y here, you get support for talking to the ChromeOS EC 912de89fd9SPi-Hsun Shih through rpmsg. This uses a simple byte-level protocol with a 922de89fd9SPi-Hsun Shih checksum. Also since there's no addition EC-to-host interrupt, this 932de89fd9SPi-Hsun Shih use a byte in message to distinguish host event from host command. 942de89fd9SPi-Hsun Shih 952de89fd9SPi-Hsun Shih To compile this driver as a module, choose M here: the 962de89fd9SPi-Hsun Shih module will be called cros_ec_rpmsg. 972de89fd9SPi-Hsun Shih 9826a14267SRushikesh S Kadamconfig CROS_EC_ISHTP 9926a14267SRushikesh S Kadam tristate "ChromeOS Embedded Controller (ISHTP)" 1002fa2b980SEnric Balletbo i Serra depends on CROS_EC 10126a14267SRushikesh S Kadam depends on INTEL_ISH_HID 10226a14267SRushikesh S Kadam help 10326a14267SRushikesh S Kadam If you say Y here, you get support for talking to the ChromeOS EC 10426a14267SRushikesh S Kadam firmware running on Intel Integrated Sensor Hub (ISH), using the 10526a14267SRushikesh S Kadam ISH Transport protocol (ISH-TP). This uses a simple byte-level 10626a14267SRushikesh S Kadam protocol with a checksum. 10726a14267SRushikesh S Kadam 10826a14267SRushikesh S Kadam To compile this driver as a module, choose M here: the 10926a14267SRushikesh S Kadam module will be called cros_ec_ishtp. 11026a14267SRushikesh S Kadam 111d00a8741SEnric Balletbo i Serraconfig CROS_EC_SPI 112d00a8741SEnric Balletbo i Serra tristate "ChromeOS Embedded Controller (SPI)" 11347f11e0bSEnric Balletbo i Serra depends on CROS_EC && SPI 114d00a8741SEnric Balletbo i Serra 115d00a8741SEnric Balletbo i Serra ---help--- 116d00a8741SEnric Balletbo i Serra If you say Y here, you get support for talking to the ChromeOS EC 117d00a8741SEnric Balletbo i Serra through a SPI bus, using a byte-level protocol. Since the EC's 118d00a8741SEnric Balletbo i Serra response time cannot be guaranteed, we support ignoring 119d00a8741SEnric Balletbo i Serra 'pre-amble' bytes before the response actually starts. 120d00a8741SEnric Balletbo i Serra 121ec2f33abSBill Richardsonconfig CROS_EC_LPC 122ec2f33abSBill Richardson tristate "ChromeOS Embedded Controller (LPC)" 12347f11e0bSEnric Balletbo i Serra depends on CROS_EC && ACPI && (X86 || COMPILE_TEST) 124ec2f33abSBill Richardson help 125ec2f33abSBill Richardson If you say Y here, you get support for talking to the ChromeOS EC 12622c040faSEnric Balletbo i Serra over an LPC bus, including the LPC Microchip EC (MEC) variant. 12722c040faSEnric Balletbo i Serra This uses a simple byte-level protocol with a checksum. This is 12822c040faSEnric Balletbo i Serra used for userspace access only. The kernel typically has its own 12922c040faSEnric Balletbo i Serra communication methods. 130ec2f33abSBill Richardson 131ec2f33abSBill Richardson To compile this driver as a module, choose M here: the 13222c040faSEnric Balletbo i Serra module will be called cros_ec_lpcs. 1338d4a3dc4SShawn Nematbakhsh 134062476f2SJavier Martinez Canillasconfig CROS_EC_PROTO 135062476f2SJavier Martinez Canillas bool 136062476f2SJavier Martinez Canillas help 137062476f2SJavier Martinez Canillas ChromeOS EC communication protocol helpers. 138062476f2SJavier Martinez Canillas 139492ef782SSimon Queconfig CROS_KBD_LED_BACKLIGHT 140492ef782SSimon Que tristate "Backlight LED support for Chrome OS keyboards" 141492ef782SSimon Que depends on LEDS_CLASS && ACPI 142492ef782SSimon Que help 143492ef782SSimon Que This option enables support for the keyboard backlight LEDs on 144492ef782SSimon Que select Chrome OS systems. 145492ef782SSimon Que 146492ef782SSimon Que To compile this driver as a module, choose M here: the 147492ef782SSimon Que module will be called cros_kbd_led_backlight. 148492ef782SSimon Que 149eda2e30cSEnric Balletbo i Serraconfig CROS_EC_CHARDEV 150eda2e30cSEnric Balletbo i Serra tristate "ChromeOS EC miscdevice" 1512fa2b980SEnric Balletbo i Serra depends on MFD_CROS_EC_DEV 1522fa2b980SEnric Balletbo i Serra default MFD_CROS_EC_DEV 153eda2e30cSEnric Balletbo i Serra help 154eda2e30cSEnric Balletbo i Serra This driver adds file operations support to talk with the 155eda2e30cSEnric Balletbo i Serra ChromeOS EC from userspace via a character device. 156eda2e30cSEnric Balletbo i Serra 157eda2e30cSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 158eda2e30cSEnric Balletbo i Serra module will be called cros_ec_chardev. 159eda2e30cSEnric Balletbo i Serra 160ecf8a6cdSEnric Balletbo i Serraconfig CROS_EC_LIGHTBAR 161ecf8a6cdSEnric Balletbo i Serra tristate "Chromebook Pixel's lightbar support" 1622fa2b980SEnric Balletbo i Serra depends on MFD_CROS_EC_DEV 1632fa2b980SEnric Balletbo i Serra default MFD_CROS_EC_DEV 164ecf8a6cdSEnric Balletbo i Serra help 165ecf8a6cdSEnric Balletbo i Serra This option exposes the Chromebook Pixel's lightbar to 166ecf8a6cdSEnric Balletbo i Serra userspace. 167ecf8a6cdSEnric Balletbo i Serra 168ecf8a6cdSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 169ecf8a6cdSEnric Balletbo i Serra module will be called cros_ec_lightbar. 170ecf8a6cdSEnric Balletbo i Serra 171acb9900fSEnric Balletbo i Serraconfig CROS_EC_VBC 172acb9900fSEnric Balletbo i Serra tristate "ChromeOS EC vboot context support" 1732fa2b980SEnric Balletbo i Serra depends on MFD_CROS_EC_DEV && OF 1742fa2b980SEnric Balletbo i Serra default MFD_CROS_EC_DEV 175acb9900fSEnric Balletbo i Serra help 176acb9900fSEnric Balletbo i Serra This option exposes the ChromeOS EC vboot context nvram to 177acb9900fSEnric Balletbo i Serra userspace. 178acb9900fSEnric Balletbo i Serra 179acb9900fSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 180acb9900fSEnric Balletbo i Serra module will be called cros_ec_vbc. 181acb9900fSEnric Balletbo i Serra 1826fce0a2cSEnric Balletbo i Serraconfig CROS_EC_DEBUGFS 1836fce0a2cSEnric Balletbo i Serra tristate "Export ChromeOS EC internals in DebugFS" 1842fa2b980SEnric Balletbo i Serra depends on MFD_CROS_EC_DEV && DEBUG_FS 1852fa2b980SEnric Balletbo i Serra default MFD_CROS_EC_DEV 1866fce0a2cSEnric Balletbo i Serra help 1876fce0a2cSEnric Balletbo i Serra This option exposes the ChromeOS EC device internals to 1886fce0a2cSEnric Balletbo i Serra userspace. 1896fce0a2cSEnric Balletbo i Serra 1906fce0a2cSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 1916fce0a2cSEnric Balletbo i Serra module will be called cros_ec_debugfs. 1926fce0a2cSEnric Balletbo i Serra 19353067471SGwendal Grignouconfig CROS_EC_SENSORHUB 19453067471SGwendal Grignou tristate "ChromeOS EC MEMS Sensor Hub" 195*74c166b5SEnric Balletbo i Serra depends on MFD_CROS_EC_DEV 196*74c166b5SEnric Balletbo i Serra default MFD_CROS_EC_DEV 19753067471SGwendal Grignou help 19853067471SGwendal Grignou Allow loading IIO sensors. This driver is loaded by MFD and will in 19953067471SGwendal Grignou turn query the EC and register the sensors. 20053067471SGwendal Grignou It also spreads the sensor data coming from the EC to the IIO sensor 20153067471SGwendal Grignou object. 20253067471SGwendal Grignou 20353067471SGwendal Grignou To compile this driver as a module, choose M here: the 20453067471SGwendal Grignou module will be called cros_ec_sensorhub. 20553067471SGwendal Grignou 2066fd7f2bbSEnric Balletbo i Serraconfig CROS_EC_SYSFS 2076fd7f2bbSEnric Balletbo i Serra tristate "ChromeOS EC control and information through sysfs" 2082fa2b980SEnric Balletbo i Serra depends on MFD_CROS_EC_DEV && SYSFS 2092fa2b980SEnric Balletbo i Serra default MFD_CROS_EC_DEV 2106fd7f2bbSEnric Balletbo i Serra help 2116fd7f2bbSEnric Balletbo i Serra This option exposes some sysfs attributes to control and get 2126fd7f2bbSEnric Balletbo i Serra information from ChromeOS EC. 2136fd7f2bbSEnric Balletbo i Serra 2146fd7f2bbSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 2156fd7f2bbSEnric Balletbo i Serra module will be called cros_ec_sysfs. 2166fd7f2bbSEnric Balletbo i Serra 217a2679b64SGuenter Roeckconfig CROS_USBPD_LOGGER 218a2679b64SGuenter Roeck tristate "Logging driver for USB PD charger" 219a2679b64SGuenter Roeck depends on CHARGER_CROS_USBPD 220a2679b64SGuenter Roeck default y 221a2679b64SGuenter Roeck select RTC_LIB 222a2679b64SGuenter Roeck help 223a2679b64SGuenter Roeck This option enables support for logging event data for the USB PD charger 224a2679b64SGuenter Roeck available in the Embedded Controller on ChromeOS systems. 225a2679b64SGuenter Roeck 226a2679b64SGuenter Roeck To compile this driver as a module, choose M here: the 227a2679b64SGuenter Roeck module will be called cros_usbpd_logger. 228a2679b64SGuenter Roeck 2297b3d4f44SNick Crewssource "drivers/platform/chrome/wilco_ec/Kconfig" 2307b3d4f44SNick Crews 231ab043105SOlof Johanssonendif # CHROMEOS_PLATFORMS 232