# SPDX-License-Identifier: GPL-2.0-only
#
# Intel x86 Platform Specific Drivers
#

source "drivers/platform/x86/intel/atomisp2/Kconfig"
source "drivers/platform/x86/intel/ifs/Kconfig"
source "drivers/platform/x86/intel/int1092/Kconfig"
source "drivers/platform/x86/intel/int3472/Kconfig"
source "drivers/platform/x86/intel/pmc/Kconfig"
source "drivers/platform/x86/intel/pmt/Kconfig"
source "drivers/platform/x86/intel/speed_select_if/Kconfig"
source "drivers/platform/x86/intel/telemetry/Kconfig"
source "drivers/platform/x86/intel/wmi/Kconfig"
source "drivers/platform/x86/intel/uncore-frequency/Kconfig"


config INTEL_HID_EVENT
	tristate "Intel HID Event"
	depends on ACPI
	depends on INPUT
	depends on I2C
	select INPUT_SPARSEKMAP
	help
	  This driver provides support for the Intel HID Event hotkey interface.
	  Some laptops require this driver for hotkey support.

	  To compile this driver as a module, choose M here: the module will
	  be called intel_hid.

config INTEL_VBTN
	tristate "Intel Virtual Button"
	depends on ACPI
	depends on INPUT
	depends on I2C
	select INPUT_SPARSEKMAP
	help
	  This driver provides support for the Intel Virtual Button interface.
	  Some laptops require this driver for power button support.

	  To compile this driver as a module, choose M here: the module will
	  be called intel_vbtn.

config INTEL_INT0002_VGPIO
	tristate "Intel ACPI INT0002 Virtual GPIO driver"
	depends on GPIOLIB && ACPI && PM_SLEEP
	select GPIOLIB_IRQCHIP
	help
	  Some peripherals on Bay Trail and Cherry Trail platforms signal a
	  Power Management Event (PME) to the Power Management Controller (PMC)
	  to wakeup the system. When this happens software needs to explicitly
	  clear the PME bus 0 status bit in the GPE0a_STS register to avoid an
	  IRQ storm on IRQ 9.

	  This is modelled in ACPI through the INT0002 ACPI device, which is
	  called a "Virtual GPIO controller" in ACPI because it defines the
	  event handler to call when the PME triggers through _AEI and _L02
	  methods as would be done for a real GPIO interrupt in ACPI.

	  To compile this driver as a module, choose M here: the module will
	  be called intel_int0002_vgpio.

config INTEL_OAKTRAIL
	tristate "Intel Oaktrail Platform Extras"
	depends on ACPI
	depends on ACPI_VIDEO || ACPI_VIDEO=n
	depends on RFKILL && BACKLIGHT_CLASS_DEVICE && ACPI
	help
	  Intel Oaktrail platform need this driver to provide interfaces to
	  enable/disable the Camera, WiFi, BT etc. devices. If in doubt, say Y
	  here; it will only load on supported platforms.

config INTEL_BXTWC_PMIC_TMU
	tristate "Intel Broxton Whiskey Cove TMU Driver"
	depends on INTEL_SOC_PMIC_BXTWC
	depends on MFD_INTEL_PMC_BXT
	select REGMAP
	help
	  Select this driver to use Intel Broxton Whiskey Cove PMIC TMU feature.
	  This driver enables the alarm wakeup functionality in the TMU unit of
	  Whiskey Cove PMIC.

config INTEL_BYTCRC_PWRSRC
	tristate "Intel Bay Trail Crystal Cove power source driver"
	depends on INTEL_SOC_PMIC
	help
	  This option adds a power source driver for Crystal Cove PMICs
	  on Intel Bay Trail devices.

	  To compile this driver as a module, choose M here: the module
	  will be called intel_bytcrc_pwrsrc.

config INTEL_CHTDC_TI_PWRBTN
	tristate "Intel Cherry Trail Dollar Cove TI power button driver"
	depends on INTEL_SOC_PMIC_CHTDC_TI
	depends on INPUT
	help
	  This option adds a power button driver for Dollar Cove TI
	  PMIC on Intel Cherry Trail devices.

	  To compile this driver as a module, choose M here: the module
	  will be called intel_chtdc_ti_pwrbtn.

config INTEL_CHTWC_INT33FE
	tristate "Intel Cherry Trail Whiskey Cove ACPI INT33FE Driver"
	depends on X86 && ACPI && I2C && REGULATOR
	depends on CHARGER_BQ24190=y || (CHARGER_BQ24190=m && m)
	depends on USB_ROLES_INTEL_XHCI=y || (USB_ROLES_INTEL_XHCI=m && m)
	depends on TYPEC_MUX_PI3USB30532=y || (TYPEC_MUX_PI3USB30532=m && m)
	help
	  This driver add support for the Intel Cherry Trail Whiskey Cove
	  INT33FE ACPI device found on the GPD win and the GPD pocket.

	  The INT33FE ACPI device on these mini laptops contains I2cSerialBusV2
	  resources for a MAX17042 Fuel Gauge, FUSB302 USB Type-C Controller
	  and PI3USB30532 USB switch.
	  This driver instantiates i2c-clients for these, so that standard
	  i2c drivers for these chips can bind to the them.

	  If you enable this driver it is advised to also select
	  CONFIG_TYPEC_FUSB302=m, CONFIG_TYPEC_MUX_PI3USB30532=m and
	  CONFIG_BATTERY_MAX17042=m.

config INTEL_ISHTP_ECLITE
	tristate "Intel ISHTP eclite controller Driver"
	depends on INTEL_ISH_HID
	depends on ACPI
	help
	  This driver is for accessing the PSE (Programmable Service Engine) -
	  an Embedded Controller like IP - using ISHTP (Integrated Sensor Hub
	  Transport Protocol) to get battery, thermal and UCSI (USB Type-C
	  Connector System Software Interface) related data from the platform.
	  Users who don't want to use discrete Embedded Controller on Intel's
	  Elkhartlake platform can leverage this integrated solution of
	  ECLite which is part of PSE subsystem.

	  To compile this driver as a module, choose M here: the module
	  will be called intel_ishtp_eclite.

config INTEL_MRFLD_PWRBTN
	tristate "Intel Merrifield Basin Cove power button driver"
	depends on INTEL_SOC_PMIC_MRFLD
	depends on INPUT
	help
	  This option adds a power button driver for Basin Cove PMIC
	  on Intel Merrifield devices.

	  To compile this driver as a module, choose M here: the module
	  will be called intel_mrfld_pwrbtn.

config INTEL_PUNIT_IPC
	tristate "Intel P-Unit IPC Driver"
	help
	  This driver provides support for Intel P-Unit Mailbox IPC mechanism,
	  which is used to bridge the communications between kernel and P-Unit.

config INTEL_RST
	tristate "Intel Rapid Start Technology Driver"
	depends on ACPI
	help
	  This driver provides support for modifying parameters on systems
	  equipped with Intel's Rapid Start Technology. When put in an ACPI
	  sleep state, these devices will wake after either a configured
	  timeout or when the system battery reaches a critical state,
	  automatically copying memory contents to disk. On resume, the
	  firmware will copy the memory contents back to RAM and resume the OS
	  as usual.

config INTEL_SDSI
	tristate "Intel On Demand (Software Defined Silicon) Driver"
	depends on INTEL_VSEC
	depends on X86_64
	help
	  This driver enables access to the Intel On Demand (formerly Software
	  Defined Silicon) interface used to provision silicon features with an
	  authentication certificate and capability license.

	  To compile this driver as a module, choose M here: the module will
	  be called intel_sdsi.

config INTEL_SMARTCONNECT
	tristate "Intel Smart Connect disabling driver"
	depends on ACPI
	help
	  Intel Smart Connect is a technology intended to permit devices to
	  update state by resuming for a short period of time at regular
	  intervals. If a user enables this functionality under Windows and
	  then reboots into Linux, the system may remain configured to resume
	  on suspend. In the absence of any userspace to support it, the system
	  will then remain awake until something triggers another suspend.

	  This driver checks to determine whether the device has Intel Smart
	  Connect enabled, and if so disables it.

config INTEL_TPMI
	tristate "Intel Topology Aware Register and PM Capsule Interface (TPMI)"
	depends on INTEL_VSEC
	depends on X86_64
	help
	  The Intel Topology Aware Register and PM Capsule Interface (TPMI),
	  provides enumerable MMIO interface for power management features.
	  This driver creates devices, so that other PM feature driver can
	  be loaded for PM specific feature operation.

	  To compile this driver as a module, choose M here: the module will
	  be called intel_vsec_tpmi.

config INTEL_TURBO_MAX_3
	bool "Intel Turbo Boost Max Technology 3.0 enumeration driver"
	depends on X86_64 && SCHED_MC_PRIO
	help
	  This driver reads maximum performance ratio of each CPU and set up
	  the scheduler priority metrics. In this way scheduler can prefer
	  CPU with higher performance to schedule tasks.

	  This driver is only required when the system is not using Hardware
	  P-States (HWP). In HWP mode, priority can be read from ACPI tables.

config INTEL_VSEC
	tristate "Intel Vendor Specific Extended Capabilities Driver"
	depends on PCI
	select AUXILIARY_BUS
	help
	  Adds support for feature drivers exposed using Intel PCIe VSEC and
	  DVSEC.

	  To compile this driver as a module, choose M here: the module will
	  be called intel_vsec.