# SPDX-License-Identifier: GPL-2.0-only
menu "Intel ISH HID support"
	depends on (X86_64 || COMPILE_TEST) && PCI

config INTEL_ISH_HID
	tristate "Intel Integrated Sensor Hub"
	default n
	select HID
	help
	  The Integrated Sensor Hub (ISH) enables the ability to offload
	  sensor polling and algorithm processing to a dedicated low power
	  processor in the chipset. This allows the core processor to go into
	  low power modes more often, resulting in the increased battery life.
	  The current processors that support ISH are: Cherrytrail, Skylake,
	  Broxton and Kaby Lake.

	  Say Y here if you want to support Intel ISH. If unsure, say N.

config INTEL_ISH_FIRMWARE_DOWNLOADER
	tristate "Host Firmware Load feature for Intel ISH"
	depends on INTEL_ISH_HID
	depends on X86
	help
	  The Integrated Sensor Hub (ISH) enables the kernel to offload
	  sensor polling and algorithm processing to a dedicated low power
	  processor in the chipset.

	  The Host Firmware Load feature adds support to load the ISH
	  firmware from host file system at boot.

	  Say M here if you want to support Host Firmware Loading feature
	  for Intel ISH. If unsure, say N.
endmenu
