18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci# 38c2ecf20Sopenharmony_ci# Platform support for Chrome OS hardware (Chromebooks and Chromeboxes) 48c2ecf20Sopenharmony_ci# 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_cimenuconfig CHROME_PLATFORMS 78c2ecf20Sopenharmony_ci bool "Platform support for Chrome hardware" 88c2ecf20Sopenharmony_ci depends on X86 || ARM || ARM64 || COMPILE_TEST 98c2ecf20Sopenharmony_ci help 108c2ecf20Sopenharmony_ci Say Y here to get to see options for platform support for 118c2ecf20Sopenharmony_ci various Chromebooks and Chromeboxes. This option alone does 128c2ecf20Sopenharmony_ci not add any kernel code. 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci If you say N, all options in this submenu will be skipped and disabled. 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ciif CHROME_PLATFORMS 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ciconfig CHROMEOS_LAPTOP 198c2ecf20Sopenharmony_ci tristate "Chrome OS Laptop" 208c2ecf20Sopenharmony_ci depends on I2C && DMI && X86 218c2ecf20Sopenharmony_ci help 228c2ecf20Sopenharmony_ci This driver instantiates i2c and smbus devices such as 238c2ecf20Sopenharmony_ci light sensors and touchpads. 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci If you have a supported Chromebook, choose Y or M here. 268c2ecf20Sopenharmony_ci The module will be called chromeos_laptop. 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ciconfig CHROMEOS_PSTORE 298c2ecf20Sopenharmony_ci tristate "Chrome OS pstore support" 308c2ecf20Sopenharmony_ci depends on X86 318c2ecf20Sopenharmony_ci help 328c2ecf20Sopenharmony_ci This module instantiates the persistent storage on x86 ChromeOS 338c2ecf20Sopenharmony_ci devices. It can be used to store away console logs and crash 348c2ecf20Sopenharmony_ci information across reboots. 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci The range of memory used is 0xf00000-0x1000000, traditionally 378c2ecf20Sopenharmony_ci the memory used to back VGA controller memory. 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci If you have a supported Chromebook, choose Y or M here. 408c2ecf20Sopenharmony_ci The module will be called chromeos_pstore. 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ciconfig CHROMEOS_TBMC 438c2ecf20Sopenharmony_ci tristate "ChromeOS Tablet Switch Controller" 448c2ecf20Sopenharmony_ci depends on ACPI 458c2ecf20Sopenharmony_ci depends on INPUT 468c2ecf20Sopenharmony_ci help 478c2ecf20Sopenharmony_ci This option adds a driver for the tablet switch on 488c2ecf20Sopenharmony_ci select Chrome OS systems. 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the 518c2ecf20Sopenharmony_ci module will be called chromeos_tbmc. 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ciconfig CROS_EC 548c2ecf20Sopenharmony_ci tristate "ChromeOS Embedded Controller" 558c2ecf20Sopenharmony_ci select CROS_EC_PROTO 568c2ecf20Sopenharmony_ci depends on X86 || ARM || ARM64 || COMPILE_TEST 578c2ecf20Sopenharmony_ci help 588c2ecf20Sopenharmony_ci If you say Y here you get support for the ChromeOS Embedded 598c2ecf20Sopenharmony_ci Controller (EC) providing keyboard, battery and power services. 608c2ecf20Sopenharmony_ci You also need to enable the driver for the bus you are using. The 618c2ecf20Sopenharmony_ci protocol for talking to the EC is defined by the bus driver. 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the 648c2ecf20Sopenharmony_ci module will be called cros_ec. 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ciconfig CROS_EC_I2C 678c2ecf20Sopenharmony_ci tristate "ChromeOS Embedded Controller (I2C)" 688c2ecf20Sopenharmony_ci depends on CROS_EC && I2C 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci help 718c2ecf20Sopenharmony_ci If you say Y here, you get support for talking to the ChromeOS 728c2ecf20Sopenharmony_ci EC through an I2C bus. This uses a simple byte-level protocol with 738c2ecf20Sopenharmony_ci a checksum. Failing accesses will be retried three times to 748c2ecf20Sopenharmony_ci improve reliability. 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ciconfig CROS_EC_RPMSG 778c2ecf20Sopenharmony_ci tristate "ChromeOS Embedded Controller (rpmsg)" 788c2ecf20Sopenharmony_ci depends on CROS_EC && RPMSG && OF 798c2ecf20Sopenharmony_ci help 808c2ecf20Sopenharmony_ci If you say Y here, you get support for talking to the ChromeOS EC 818c2ecf20Sopenharmony_ci through rpmsg. This uses a simple byte-level protocol with a 828c2ecf20Sopenharmony_ci checksum. Also since there's no addition EC-to-host interrupt, this 838c2ecf20Sopenharmony_ci use a byte in message to distinguish host event from host command. 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the 868c2ecf20Sopenharmony_ci module will be called cros_ec_rpmsg. 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ciconfig CROS_EC_ISHTP 898c2ecf20Sopenharmony_ci tristate "ChromeOS Embedded Controller (ISHTP)" 908c2ecf20Sopenharmony_ci depends on CROS_EC 918c2ecf20Sopenharmony_ci depends on INTEL_ISH_HID 928c2ecf20Sopenharmony_ci help 938c2ecf20Sopenharmony_ci If you say Y here, you get support for talking to the ChromeOS EC 948c2ecf20Sopenharmony_ci firmware running on Intel Integrated Sensor Hub (ISH), using the 958c2ecf20Sopenharmony_ci ISH Transport protocol (ISH-TP). This uses a simple byte-level 968c2ecf20Sopenharmony_ci protocol with a checksum. 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the 998c2ecf20Sopenharmony_ci module will be called cros_ec_ishtp. 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ciconfig CROS_EC_SPI 1028c2ecf20Sopenharmony_ci tristate "ChromeOS Embedded Controller (SPI)" 1038c2ecf20Sopenharmony_ci depends on CROS_EC && SPI 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ci help 1068c2ecf20Sopenharmony_ci If you say Y here, you get support for talking to the ChromeOS EC 1078c2ecf20Sopenharmony_ci through a SPI bus, using a byte-level protocol. Since the EC's 1088c2ecf20Sopenharmony_ci response time cannot be guaranteed, we support ignoring 1098c2ecf20Sopenharmony_ci 'pre-amble' bytes before the response actually starts. 1108c2ecf20Sopenharmony_ci 1118c2ecf20Sopenharmony_ciconfig CROS_EC_LPC 1128c2ecf20Sopenharmony_ci tristate "ChromeOS Embedded Controller (LPC)" 1138c2ecf20Sopenharmony_ci depends on CROS_EC && ACPI && (X86 || COMPILE_TEST) 1148c2ecf20Sopenharmony_ci help 1158c2ecf20Sopenharmony_ci If you say Y here, you get support for talking to the ChromeOS EC 1168c2ecf20Sopenharmony_ci over an LPC bus, including the LPC Microchip EC (MEC) variant. 1178c2ecf20Sopenharmony_ci This uses a simple byte-level protocol with a checksum. This is 1188c2ecf20Sopenharmony_ci used for userspace access only. The kernel typically has its own 1198c2ecf20Sopenharmony_ci communication methods. 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the 1228c2ecf20Sopenharmony_ci module will be called cros_ec_lpcs. 1238c2ecf20Sopenharmony_ci 1248c2ecf20Sopenharmony_ciconfig CROS_EC_PROTO 1258c2ecf20Sopenharmony_ci bool 1268c2ecf20Sopenharmony_ci help 1278c2ecf20Sopenharmony_ci ChromeOS EC communication protocol helpers. 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ciconfig CROS_KBD_LED_BACKLIGHT 1308c2ecf20Sopenharmony_ci tristate "Backlight LED support for Chrome OS keyboards" 1318c2ecf20Sopenharmony_ci depends on LEDS_CLASS && ACPI 1328c2ecf20Sopenharmony_ci help 1338c2ecf20Sopenharmony_ci This option enables support for the keyboard backlight LEDs on 1348c2ecf20Sopenharmony_ci select Chrome OS systems. 1358c2ecf20Sopenharmony_ci 1368c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the 1378c2ecf20Sopenharmony_ci module will be called cros_kbd_led_backlight. 1388c2ecf20Sopenharmony_ci 1398c2ecf20Sopenharmony_ciconfig CROS_EC_CHARDEV 1408c2ecf20Sopenharmony_ci tristate "ChromeOS EC miscdevice" 1418c2ecf20Sopenharmony_ci depends on MFD_CROS_EC_DEV 1428c2ecf20Sopenharmony_ci default MFD_CROS_EC_DEV 1438c2ecf20Sopenharmony_ci help 1448c2ecf20Sopenharmony_ci This driver adds file operations support to talk with the 1458c2ecf20Sopenharmony_ci ChromeOS EC from userspace via a character device. 1468c2ecf20Sopenharmony_ci 1478c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the 1488c2ecf20Sopenharmony_ci module will be called cros_ec_chardev. 1498c2ecf20Sopenharmony_ci 1508c2ecf20Sopenharmony_ciconfig CROS_EC_LIGHTBAR 1518c2ecf20Sopenharmony_ci tristate "Chromebook Pixel's lightbar support" 1528c2ecf20Sopenharmony_ci depends on MFD_CROS_EC_DEV 1538c2ecf20Sopenharmony_ci default MFD_CROS_EC_DEV 1548c2ecf20Sopenharmony_ci help 1558c2ecf20Sopenharmony_ci This option exposes the Chromebook Pixel's lightbar to 1568c2ecf20Sopenharmony_ci userspace. 1578c2ecf20Sopenharmony_ci 1588c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the 1598c2ecf20Sopenharmony_ci module will be called cros_ec_lightbar. 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ciconfig CROS_EC_VBC 1628c2ecf20Sopenharmony_ci tristate "ChromeOS EC vboot context support" 1638c2ecf20Sopenharmony_ci depends on MFD_CROS_EC_DEV && OF 1648c2ecf20Sopenharmony_ci default MFD_CROS_EC_DEV 1658c2ecf20Sopenharmony_ci help 1668c2ecf20Sopenharmony_ci This option exposes the ChromeOS EC vboot context nvram to 1678c2ecf20Sopenharmony_ci userspace. 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the 1708c2ecf20Sopenharmony_ci module will be called cros_ec_vbc. 1718c2ecf20Sopenharmony_ci 1728c2ecf20Sopenharmony_ciconfig CROS_EC_DEBUGFS 1738c2ecf20Sopenharmony_ci tristate "Export ChromeOS EC internals in DebugFS" 1748c2ecf20Sopenharmony_ci depends on MFD_CROS_EC_DEV && DEBUG_FS 1758c2ecf20Sopenharmony_ci default MFD_CROS_EC_DEV 1768c2ecf20Sopenharmony_ci help 1778c2ecf20Sopenharmony_ci This option exposes the ChromeOS EC device internals to 1788c2ecf20Sopenharmony_ci userspace. 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the 1818c2ecf20Sopenharmony_ci module will be called cros_ec_debugfs. 1828c2ecf20Sopenharmony_ci 1838c2ecf20Sopenharmony_ciconfig CROS_EC_SENSORHUB 1848c2ecf20Sopenharmony_ci tristate "ChromeOS EC MEMS Sensor Hub" 1858c2ecf20Sopenharmony_ci depends on MFD_CROS_EC_DEV 1868c2ecf20Sopenharmony_ci default MFD_CROS_EC_DEV 1878c2ecf20Sopenharmony_ci help 1888c2ecf20Sopenharmony_ci Allow loading IIO sensors. This driver is loaded by MFD and will in 1898c2ecf20Sopenharmony_ci turn query the EC and register the sensors. 1908c2ecf20Sopenharmony_ci It also spreads the sensor data coming from the EC to the IIO sensor 1918c2ecf20Sopenharmony_ci object. 1928c2ecf20Sopenharmony_ci 1938c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the 1948c2ecf20Sopenharmony_ci module will be called cros_ec_sensorhub. 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ciconfig CROS_EC_SYSFS 1978c2ecf20Sopenharmony_ci tristate "ChromeOS EC control and information through sysfs" 1988c2ecf20Sopenharmony_ci depends on MFD_CROS_EC_DEV && SYSFS 1998c2ecf20Sopenharmony_ci default MFD_CROS_EC_DEV 2008c2ecf20Sopenharmony_ci help 2018c2ecf20Sopenharmony_ci This option exposes some sysfs attributes to control and get 2028c2ecf20Sopenharmony_ci information from ChromeOS EC. 2038c2ecf20Sopenharmony_ci 2048c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the 2058c2ecf20Sopenharmony_ci module will be called cros_ec_sysfs. 2068c2ecf20Sopenharmony_ci 2078c2ecf20Sopenharmony_ciconfig CROS_EC_TYPEC 2088c2ecf20Sopenharmony_ci tristate "ChromeOS EC Type-C Connector Control" 2098c2ecf20Sopenharmony_ci depends on MFD_CROS_EC_DEV && TYPEC 2108c2ecf20Sopenharmony_ci depends on CROS_USBPD_NOTIFY 2118c2ecf20Sopenharmony_ci depends on USB_ROLE_SWITCH 2128c2ecf20Sopenharmony_ci default MFD_CROS_EC_DEV 2138c2ecf20Sopenharmony_ci help 2148c2ecf20Sopenharmony_ci If you say Y here, you get support for accessing Type C connector 2158c2ecf20Sopenharmony_ci information from the Chrome OS EC. 2168c2ecf20Sopenharmony_ci 2178c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the module will be 2188c2ecf20Sopenharmony_ci called cros_ec_typec. 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ciconfig CROS_USBPD_LOGGER 2218c2ecf20Sopenharmony_ci tristate "Logging driver for USB PD charger" 2228c2ecf20Sopenharmony_ci depends on CHARGER_CROS_USBPD 2238c2ecf20Sopenharmony_ci default y 2248c2ecf20Sopenharmony_ci select RTC_LIB 2258c2ecf20Sopenharmony_ci help 2268c2ecf20Sopenharmony_ci This option enables support for logging event data for the USB PD charger 2278c2ecf20Sopenharmony_ci available in the Embedded Controller on ChromeOS systems. 2288c2ecf20Sopenharmony_ci 2298c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the 2308c2ecf20Sopenharmony_ci module will be called cros_usbpd_logger. 2318c2ecf20Sopenharmony_ci 2328c2ecf20Sopenharmony_ciconfig CROS_USBPD_NOTIFY 2338c2ecf20Sopenharmony_ci tristate "ChromeOS Type-C power delivery event notifier" 2348c2ecf20Sopenharmony_ci depends on MFD_CROS_EC_DEV 2358c2ecf20Sopenharmony_ci default MFD_CROS_EC_DEV 2368c2ecf20Sopenharmony_ci help 2378c2ecf20Sopenharmony_ci If you say Y here, you get support for Type-C PD event notifications 2388c2ecf20Sopenharmony_ci from the ChromeOS EC. On ACPI platorms this driver will bind to the 2398c2ecf20Sopenharmony_ci GOOG0003 ACPI device, and on platforms which don't have this device it 2408c2ecf20Sopenharmony_ci will get initialized on ECs which support the feature 2418c2ecf20Sopenharmony_ci EC_FEATURE_USB_PD. 2428c2ecf20Sopenharmony_ci 2438c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the 2448c2ecf20Sopenharmony_ci module will be called cros_usbpd_notify. 2458c2ecf20Sopenharmony_ci 2468c2ecf20Sopenharmony_cisource "drivers/platform/chrome/wilco_ec/Kconfig" 2478c2ecf20Sopenharmony_ci 2488c2ecf20Sopenharmony_ciendif # CHROMEOS_PLATFORMS 249