# SPDX-License-Identifier: GPL-2.0-only
config WILCO_EC
	tristate "ChromeOS Wilco Embedded Controller"
	depends on X86 || COMPILE_TEST
	depends on ACPI && CROS_EC_LPC && LEDS_CLASS
	help
	  If you say Y here, you get support for talking to the ChromeOS
	  Wilco EC over an eSPI bus. 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 wilco_ec.

config WILCO_EC_DEBUGFS
	tristate "Enable raw access to EC via debugfs"
	depends on WILCO_EC
	help
	  If you say Y here, you get support for sending raw commands to
	  the Wilco EC via debugfs.  These commands do not do any byte
	  manipulation and allow for testing arbitrary commands.  This
	  interface is intended for debug only and will not be present
	  on production devices.

config WILCO_EC_EVENTS
	tristate "Enable event forwarding from EC to userspace"
	depends on WILCO_EC
	help
	  If you say Y here, you get support for the EC to send events
	  (such as power state changes) to userspace. The EC sends the events
	  over ACPI, and a driver queues up the events to be read by a
	  userspace daemon from /dev/wilco_event using read() and poll().

config WILCO_EC_TELEMETRY
	tristate "Enable querying telemetry data from EC"
	depends on WILCO_EC
	help
	  If you say Y here, you get support to query EC telemetry data from
	  /dev/wilco_telem0 using write() and then read().
