forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
248 lines
7.8 KiB
248 lines
7.8 KiB
# SPDX-License-Identifier: GPL-2.0-only |
|
# |
|
# Platform support for Chrome OS hardware (Chromebooks and Chromeboxes) |
|
# |
|
|
|
menuconfig CHROME_PLATFORMS |
|
bool "Platform support for Chrome hardware" |
|
depends on X86 || ARM || ARM64 || COMPILE_TEST |
|
help |
|
Say Y here to get to see options for platform support for |
|
various Chromebooks and Chromeboxes. This option alone does |
|
not add any kernel code. |
|
|
|
If you say N, all options in this submenu will be skipped and disabled. |
|
|
|
if CHROME_PLATFORMS |
|
|
|
config CHROMEOS_LAPTOP |
|
tristate "Chrome OS Laptop" |
|
depends on I2C && DMI && X86 |
|
help |
|
This driver instantiates i2c and smbus devices such as |
|
light sensors and touchpads. |
|
|
|
If you have a supported Chromebook, choose Y or M here. |
|
The module will be called chromeos_laptop. |
|
|
|
config CHROMEOS_PSTORE |
|
tristate "Chrome OS pstore support" |
|
depends on X86 |
|
help |
|
This module instantiates the persistent storage on x86 ChromeOS |
|
devices. It can be used to store away console logs and crash |
|
information across reboots. |
|
|
|
The range of memory used is 0xf00000-0x1000000, traditionally |
|
the memory used to back VGA controller memory. |
|
|
|
If you have a supported Chromebook, choose Y or M here. |
|
The module will be called chromeos_pstore. |
|
|
|
config CHROMEOS_TBMC |
|
tristate "ChromeOS Tablet Switch Controller" |
|
depends on ACPI |
|
depends on INPUT |
|
help |
|
This option adds a driver for the tablet switch on |
|
select Chrome OS systems. |
|
|
|
To compile this driver as a module, choose M here: the |
|
module will be called chromeos_tbmc. |
|
|
|
config CROS_EC |
|
tristate "ChromeOS Embedded Controller" |
|
select CROS_EC_PROTO |
|
depends on X86 || ARM || ARM64 || COMPILE_TEST |
|
help |
|
If you say Y here you get support for the ChromeOS Embedded |
|
Controller (EC) providing keyboard, battery and power services. |
|
You also need to enable the driver for the bus you are using. The |
|
protocol for talking to the EC is defined by the bus driver. |
|
|
|
To compile this driver as a module, choose M here: the |
|
module will be called cros_ec. |
|
|
|
config CROS_EC_I2C |
|
tristate "ChromeOS Embedded Controller (I2C)" |
|
depends on CROS_EC && I2C |
|
|
|
help |
|
If you say Y here, you get support for talking to the ChromeOS |
|
EC through an I2C bus. This uses a simple byte-level protocol with |
|
a checksum. Failing accesses will be retried three times to |
|
improve reliability. |
|
|
|
config CROS_EC_RPMSG |
|
tristate "ChromeOS Embedded Controller (rpmsg)" |
|
depends on CROS_EC && RPMSG && OF |
|
help |
|
If you say Y here, you get support for talking to the ChromeOS EC |
|
through rpmsg. This uses a simple byte-level protocol with a |
|
checksum. Also since there's no addition EC-to-host interrupt, this |
|
use a byte in message to distinguish host event from host command. |
|
|
|
To compile this driver as a module, choose M here: the |
|
module will be called cros_ec_rpmsg. |
|
|
|
config CROS_EC_ISHTP |
|
tristate "ChromeOS Embedded Controller (ISHTP)" |
|
depends on CROS_EC |
|
depends on INTEL_ISH_HID |
|
help |
|
If you say Y here, you get support for talking to the ChromeOS EC |
|
firmware running on Intel Integrated Sensor Hub (ISH), using the |
|
ISH Transport protocol (ISH-TP). This uses a simple byte-level |
|
protocol with a checksum. |
|
|
|
To compile this driver as a module, choose M here: the |
|
module will be called cros_ec_ishtp. |
|
|
|
config CROS_EC_SPI |
|
tristate "ChromeOS Embedded Controller (SPI)" |
|
depends on CROS_EC && SPI |
|
|
|
help |
|
If you say Y here, you get support for talking to the ChromeOS EC |
|
through a SPI bus, using a byte-level protocol. Since the EC's |
|
response time cannot be guaranteed, we support ignoring |
|
'pre-amble' bytes before the response actually starts. |
|
|
|
config CROS_EC_LPC |
|
tristate "ChromeOS Embedded Controller (LPC)" |
|
depends on CROS_EC && ACPI && (X86 || COMPILE_TEST) |
|
help |
|
If you say Y here, you get support for talking to the ChromeOS EC |
|
over an LPC bus, including the LPC Microchip EC (MEC) variant. |
|
This uses a simple byte-level protocol with a checksum. This is |
|
used for userspace access only. The kernel typically has its own |
|
communication methods. |
|
|
|
To compile this driver as a module, choose M here: the |
|
module will be called cros_ec_lpcs. |
|
|
|
config CROS_EC_PROTO |
|
bool |
|
help |
|
ChromeOS EC communication protocol helpers. |
|
|
|
config CROS_KBD_LED_BACKLIGHT |
|
tristate "Backlight LED support for Chrome OS keyboards" |
|
depends on LEDS_CLASS && ACPI |
|
help |
|
This option enables support for the keyboard backlight LEDs on |
|
select Chrome OS systems. |
|
|
|
To compile this driver as a module, choose M here: the |
|
module will be called cros_kbd_led_backlight. |
|
|
|
config CROS_EC_CHARDEV |
|
tristate "ChromeOS EC miscdevice" |
|
depends on MFD_CROS_EC_DEV |
|
default MFD_CROS_EC_DEV |
|
help |
|
This driver adds file operations support to talk with the |
|
ChromeOS EC from userspace via a character device. |
|
|
|
To compile this driver as a module, choose M here: the |
|
module will be called cros_ec_chardev. |
|
|
|
config CROS_EC_LIGHTBAR |
|
tristate "Chromebook Pixel's lightbar support" |
|
depends on MFD_CROS_EC_DEV |
|
default MFD_CROS_EC_DEV |
|
help |
|
This option exposes the Chromebook Pixel's lightbar to |
|
userspace. |
|
|
|
To compile this driver as a module, choose M here: the |
|
module will be called cros_ec_lightbar. |
|
|
|
config CROS_EC_VBC |
|
tristate "ChromeOS EC vboot context support" |
|
depends on MFD_CROS_EC_DEV && OF |
|
default MFD_CROS_EC_DEV |
|
help |
|
This option exposes the ChromeOS EC vboot context nvram to |
|
userspace. |
|
|
|
To compile this driver as a module, choose M here: the |
|
module will be called cros_ec_vbc. |
|
|
|
config CROS_EC_DEBUGFS |
|
tristate "Export ChromeOS EC internals in DebugFS" |
|
depends on MFD_CROS_EC_DEV && DEBUG_FS |
|
default MFD_CROS_EC_DEV |
|
help |
|
This option exposes the ChromeOS EC device internals to |
|
userspace. |
|
|
|
To compile this driver as a module, choose M here: the |
|
module will be called cros_ec_debugfs. |
|
|
|
config CROS_EC_SENSORHUB |
|
tristate "ChromeOS EC MEMS Sensor Hub" |
|
depends on MFD_CROS_EC_DEV |
|
default MFD_CROS_EC_DEV |
|
help |
|
Allow loading IIO sensors. This driver is loaded by MFD and will in |
|
turn query the EC and register the sensors. |
|
It also spreads the sensor data coming from the EC to the IIO sensor |
|
object. |
|
|
|
To compile this driver as a module, choose M here: the |
|
module will be called cros_ec_sensorhub. |
|
|
|
config CROS_EC_SYSFS |
|
tristate "ChromeOS EC control and information through sysfs" |
|
depends on MFD_CROS_EC_DEV && SYSFS |
|
default MFD_CROS_EC_DEV |
|
help |
|
This option exposes some sysfs attributes to control and get |
|
information from ChromeOS EC. |
|
|
|
To compile this driver as a module, choose M here: the |
|
module will be called cros_ec_sysfs. |
|
|
|
config CROS_EC_TYPEC |
|
tristate "ChromeOS EC Type-C Connector Control" |
|
depends on MFD_CROS_EC_DEV && TYPEC |
|
depends on CROS_USBPD_NOTIFY |
|
depends on USB_ROLE_SWITCH |
|
default MFD_CROS_EC_DEV |
|
help |
|
If you say Y here, you get support for accessing Type C connector |
|
information from the Chrome OS EC. |
|
|
|
To compile this driver as a module, choose M here: the module will be |
|
called cros_ec_typec. |
|
|
|
config CROS_USBPD_LOGGER |
|
tristate "Logging driver for USB PD charger" |
|
depends on CHARGER_CROS_USBPD |
|
default y |
|
select RTC_LIB |
|
help |
|
This option enables support for logging event data for the USB PD charger |
|
available in the Embedded Controller on ChromeOS systems. |
|
|
|
To compile this driver as a module, choose M here: the |
|
module will be called cros_usbpd_logger. |
|
|
|
config CROS_USBPD_NOTIFY |
|
tristate "ChromeOS Type-C power delivery event notifier" |
|
depends on MFD_CROS_EC_DEV |
|
default MFD_CROS_EC_DEV |
|
help |
|
If you say Y here, you get support for Type-C PD event notifications |
|
from the ChromeOS EC. On ACPI platorms this driver will bind to the |
|
GOOG0003 ACPI device, and on platforms which don't have this device it |
|
will get initialized on ECs which support the feature |
|
EC_FEATURE_USB_PD. |
|
|
|
To compile this driver as a module, choose M here: the |
|
module will be called cros_usbpd_notify. |
|
|
|
source "drivers/platform/chrome/wilco_ec/Kconfig" |
|
|
|
endif # CHROMEOS_PLATFORMS
|
|
|