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 9ab043105SOlof Johansson ---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 21ab043105SOlof Johansson ---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 319742e127SOlof Johansson ---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 53*47f11e0bSEnric Balletbo i Serraconfig CROS_EC 54*47f11e0bSEnric Balletbo i Serra tristate "ChromeOS Embedded Controller" 55*47f11e0bSEnric Balletbo i Serra select CROS_EC_PROTO 56*47f11e0bSEnric Balletbo i Serra depends on X86 || ARM || ARM64 || COMPILE_TEST 57*47f11e0bSEnric Balletbo i Serra help 58*47f11e0bSEnric Balletbo i Serra If you say Y here you get support for the ChromeOS Embedded 59*47f11e0bSEnric Balletbo i Serra Controller (EC) providing keyboard, battery and power services. 60*47f11e0bSEnric Balletbo i Serra You also need to enable the driver for the bus you are using. The 61*47f11e0bSEnric Balletbo i Serra protocol for talking to the EC is defined by the bus driver. 62*47f11e0bSEnric Balletbo i Serra 63*47f11e0bSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 64*47f11e0bSEnric Balletbo i Serra module will be called cros_ec. 65*47f11e0bSEnric Balletbo i Serra 66d00a8741SEnric Balletbo i Serraconfig CROS_EC_I2C 67d00a8741SEnric Balletbo i Serra tristate "ChromeOS Embedded Controller (I2C)" 68*47f11e0bSEnric 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)" 78*47f11e0bSEnric 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)" 9026a14267SRushikesh S Kadam depends on MFD_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)" 103*47f11e0bSEnric Balletbo i Serra depends on CROS_EC && SPI 104d00a8741SEnric Balletbo i Serra 105d00a8741SEnric Balletbo i Serra ---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)" 113*47f11e0bSEnric 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 139ecf8a6cdSEnric Balletbo i Serraconfig CROS_EC_LIGHTBAR 140ecf8a6cdSEnric Balletbo i Serra tristate "Chromebook Pixel's lightbar support" 141ecf8a6cdSEnric Balletbo i Serra depends on MFD_CROS_EC_CHARDEV 142ecf8a6cdSEnric Balletbo i Serra default MFD_CROS_EC_CHARDEV 143ecf8a6cdSEnric Balletbo i Serra help 144ecf8a6cdSEnric Balletbo i Serra This option exposes the Chromebook Pixel's lightbar to 145ecf8a6cdSEnric Balletbo i Serra userspace. 146ecf8a6cdSEnric Balletbo i Serra 147ecf8a6cdSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 148ecf8a6cdSEnric Balletbo i Serra module will be called cros_ec_lightbar. 149ecf8a6cdSEnric Balletbo i Serra 150acb9900fSEnric Balletbo i Serraconfig CROS_EC_VBC 151acb9900fSEnric Balletbo i Serra tristate "ChromeOS EC vboot context support" 152acb9900fSEnric Balletbo i Serra depends on MFD_CROS_EC_CHARDEV && OF 153acb9900fSEnric Balletbo i Serra default MFD_CROS_EC_CHARDEV 154acb9900fSEnric Balletbo i Serra help 155acb9900fSEnric Balletbo i Serra This option exposes the ChromeOS EC vboot context nvram to 156acb9900fSEnric Balletbo i Serra userspace. 157acb9900fSEnric Balletbo i Serra 158acb9900fSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 159acb9900fSEnric Balletbo i Serra module will be called cros_ec_vbc. 160acb9900fSEnric Balletbo i Serra 1616fce0a2cSEnric Balletbo i Serraconfig CROS_EC_DEBUGFS 1626fce0a2cSEnric Balletbo i Serra tristate "Export ChromeOS EC internals in DebugFS" 1636fce0a2cSEnric Balletbo i Serra depends on MFD_CROS_EC_CHARDEV && DEBUG_FS 1646fce0a2cSEnric Balletbo i Serra default MFD_CROS_EC_CHARDEV 1656fce0a2cSEnric Balletbo i Serra help 1666fce0a2cSEnric Balletbo i Serra This option exposes the ChromeOS EC device internals to 1676fce0a2cSEnric Balletbo i Serra userspace. 1686fce0a2cSEnric Balletbo i Serra 1696fce0a2cSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 1706fce0a2cSEnric Balletbo i Serra module will be called cros_ec_debugfs. 1716fce0a2cSEnric Balletbo i Serra 1726fd7f2bbSEnric Balletbo i Serraconfig CROS_EC_SYSFS 1736fd7f2bbSEnric Balletbo i Serra tristate "ChromeOS EC control and information through sysfs" 1746fd7f2bbSEnric Balletbo i Serra depends on MFD_CROS_EC_CHARDEV && SYSFS 1756fd7f2bbSEnric Balletbo i Serra default MFD_CROS_EC_CHARDEV 1766fd7f2bbSEnric Balletbo i Serra help 1776fd7f2bbSEnric Balletbo i Serra This option exposes some sysfs attributes to control and get 1786fd7f2bbSEnric Balletbo i Serra information from ChromeOS EC. 1796fd7f2bbSEnric Balletbo i Serra 1806fd7f2bbSEnric Balletbo i Serra To compile this driver as a module, choose M here: the 1816fd7f2bbSEnric Balletbo i Serra module will be called cros_ec_sysfs. 1826fd7f2bbSEnric Balletbo i Serra 183a2679b64SGuenter Roeckconfig CROS_USBPD_LOGGER 184a2679b64SGuenter Roeck tristate "Logging driver for USB PD charger" 185a2679b64SGuenter Roeck depends on CHARGER_CROS_USBPD 186a2679b64SGuenter Roeck default y 187a2679b64SGuenter Roeck select RTC_LIB 188a2679b64SGuenter Roeck help 189a2679b64SGuenter Roeck This option enables support for logging event data for the USB PD charger 190a2679b64SGuenter Roeck available in the Embedded Controller on ChromeOS systems. 191a2679b64SGuenter Roeck 192a2679b64SGuenter Roeck To compile this driver as a module, choose M here: the 193a2679b64SGuenter Roeck module will be called cros_usbpd_logger. 194a2679b64SGuenter Roeck 1957b3d4f44SNick Crewssource "drivers/platform/chrome/wilco_ec/Kconfig" 1967b3d4f44SNick Crews 197ab043105SOlof Johanssonendif # CHROMEOS_PLATFORMS 198