312 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			312 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # 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_ACPI
 | |
| 	tristate "ChromeOS specific ACPI extensions"
 | |
| 	depends on ACPI
 | |
| 	help
 | |
| 	  This driver provides the firmware interface for the services
 | |
| 	  exported through the ChromeOS interfaces when using ChromeOS
 | |
| 	  ACPI firmware.
 | |
| 
 | |
| 	  If you have an ACPI-compatible Chromebook, say Y or M here.
 | |
| 	  The module will be called chromeos_acpi.
 | |
| 
 | |
| 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_UART
 | |
| 	tristate "ChromeOS Embedded Controller (UART)"
 | |
| 	depends on CROS_EC && ACPI && SERIAL_DEV_BUS
 | |
| 	help
 | |
| 	  If you say Y here, you get support for talking to the ChromeOS EC
 | |
| 	  through a UART, using a byte-level protocol.
 | |
| 
 | |
| 	  To compile this driver as a module, choose M here: the
 | |
| 	  module will be called cros_ec_uart.
 | |
| 
 | |
| config CROS_EC_LPC
 | |
| 	tristate "ChromeOS Embedded Controller (LPC)"
 | |
| 	depends on CROS_EC && ACPI && (X86 || COMPILE_TEST)
 | |
| 	depends on HAS_IOPORT
 | |
| 	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 || CROS_EC || MFD_CROS_EC_DEV)
 | |
| 	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_HPS_I2C
 | |
| 	tristate "ChromeOS HPS device"
 | |
| 	depends on HID && I2C && PM
 | |
| 	help
 | |
| 	  Say Y here if you want to enable support for the ChromeOS
 | |
| 	  human presence sensor (HPS), attached via I2C. The driver supports a
 | |
| 	  sensor connected to the I2C bus and exposes it as a character device.
 | |
| 	  To save power, the sensor is automatically powered down when no
 | |
| 	  clients are accessing it.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| config CHROMEOS_PRIVACY_SCREEN
 | |
| 	tristate "ChromeOS Privacy Screen support"
 | |
| 	depends on ACPI
 | |
| 	depends on DRM
 | |
| 	select DRM_PRIVACY_SCREEN
 | |
| 	help
 | |
| 	  This driver provides the support needed for the in-built electronic
 | |
| 	  privacy screen that is present on some ChromeOS devices. When enabled,
 | |
| 	  this should probably always be built into the kernel to avoid or
 | |
| 	  minimize drm probe deferral.
 | |
| 
 | |
| config CROS_TYPEC_SWITCH
 | |
| 	tristate "ChromeOS EC Type-C Switch Control"
 | |
| 	depends on MFD_CROS_EC_DEV && TYPEC && ACPI
 | |
| 	default MFD_CROS_EC_DEV
 | |
| 	help
 | |
| 	  If you say Y here, you get support for configuring the ChromeOS EC Type-C
 | |
| 	  muxes and retimers.
 | |
| 
 | |
| 	  To compile this driver as a module, choose M here: the module will be
 | |
| 	  called cros_typec_switch.
 | |
| 
 | |
| source "drivers/platform/chrome/wilco_ec/Kconfig"
 | |
| 
 | |
| # Kunit test cases
 | |
| config CROS_KUNIT_EC_PROTO_TEST
 | |
| 	tristate "Kunit tests for ChromeOS EC protocol" if !KUNIT_ALL_TESTS
 | |
| 	depends on KUNIT && CROS_EC
 | |
| 	default KUNIT_ALL_TESTS
 | |
| 	select CROS_EC_PROTO
 | |
| 	help
 | |
| 	  Kunit tests for ChromeOS EC protocol.
 | |
| 
 | |
| endif # CHROMEOS_PLATFORMS
 |