162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Intel x86 Platform Specific Drivers
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_cisource "drivers/platform/x86/intel/atomisp2/Kconfig"
762306a36Sopenharmony_cisource "drivers/platform/x86/intel/ifs/Kconfig"
862306a36Sopenharmony_cisource "drivers/platform/x86/intel/int1092/Kconfig"
962306a36Sopenharmony_cisource "drivers/platform/x86/intel/int3472/Kconfig"
1062306a36Sopenharmony_cisource "drivers/platform/x86/intel/pmc/Kconfig"
1162306a36Sopenharmony_cisource "drivers/platform/x86/intel/pmt/Kconfig"
1262306a36Sopenharmony_cisource "drivers/platform/x86/intel/speed_select_if/Kconfig"
1362306a36Sopenharmony_cisource "drivers/platform/x86/intel/telemetry/Kconfig"
1462306a36Sopenharmony_cisource "drivers/platform/x86/intel/wmi/Kconfig"
1562306a36Sopenharmony_cisource "drivers/platform/x86/intel/uncore-frequency/Kconfig"
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciconfig INTEL_HID_EVENT
1962306a36Sopenharmony_ci	tristate "Intel HID Event"
2062306a36Sopenharmony_ci	depends on ACPI
2162306a36Sopenharmony_ci	depends on INPUT
2262306a36Sopenharmony_ci	depends on I2C
2362306a36Sopenharmony_ci	select INPUT_SPARSEKMAP
2462306a36Sopenharmony_ci	help
2562306a36Sopenharmony_ci	  This driver provides support for the Intel HID Event hotkey interface.
2662306a36Sopenharmony_ci	  Some laptops require this driver for hotkey support.
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
2962306a36Sopenharmony_ci	  be called intel_hid.
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ciconfig INTEL_VBTN
3262306a36Sopenharmony_ci	tristate "Intel Virtual Button"
3362306a36Sopenharmony_ci	depends on ACPI
3462306a36Sopenharmony_ci	depends on INPUT
3562306a36Sopenharmony_ci	depends on I2C
3662306a36Sopenharmony_ci	select INPUT_SPARSEKMAP
3762306a36Sopenharmony_ci	help
3862306a36Sopenharmony_ci	  This driver provides support for the Intel Virtual Button interface.
3962306a36Sopenharmony_ci	  Some laptops require this driver for power button support.
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
4262306a36Sopenharmony_ci	  be called intel_vbtn.
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ciconfig INTEL_INT0002_VGPIO
4562306a36Sopenharmony_ci	tristate "Intel ACPI INT0002 Virtual GPIO driver"
4662306a36Sopenharmony_ci	depends on GPIOLIB && ACPI && PM_SLEEP
4762306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
4862306a36Sopenharmony_ci	help
4962306a36Sopenharmony_ci	  Some peripherals on Bay Trail and Cherry Trail platforms signal a
5062306a36Sopenharmony_ci	  Power Management Event (PME) to the Power Management Controller (PMC)
5162306a36Sopenharmony_ci	  to wakeup the system. When this happens software needs to explicitly
5262306a36Sopenharmony_ci	  clear the PME bus 0 status bit in the GPE0a_STS register to avoid an
5362306a36Sopenharmony_ci	  IRQ storm on IRQ 9.
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci	  This is modelled in ACPI through the INT0002 ACPI device, which is
5662306a36Sopenharmony_ci	  called a "Virtual GPIO controller" in ACPI because it defines the
5762306a36Sopenharmony_ci	  event handler to call when the PME triggers through _AEI and _L02
5862306a36Sopenharmony_ci	  methods as would be done for a real GPIO interrupt in ACPI.
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
6162306a36Sopenharmony_ci	  be called intel_int0002_vgpio.
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ciconfig INTEL_OAKTRAIL
6462306a36Sopenharmony_ci	tristate "Intel Oaktrail Platform Extras"
6562306a36Sopenharmony_ci	depends on ACPI
6662306a36Sopenharmony_ci	depends on ACPI_VIDEO || ACPI_VIDEO=n
6762306a36Sopenharmony_ci	depends on RFKILL && BACKLIGHT_CLASS_DEVICE && ACPI
6862306a36Sopenharmony_ci	help
6962306a36Sopenharmony_ci	  Intel Oaktrail platform need this driver to provide interfaces to
7062306a36Sopenharmony_ci	  enable/disable the Camera, WiFi, BT etc. devices. If in doubt, say Y
7162306a36Sopenharmony_ci	  here; it will only load on supported platforms.
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ciconfig INTEL_BXTWC_PMIC_TMU
7462306a36Sopenharmony_ci	tristate "Intel Broxton Whiskey Cove TMU Driver"
7562306a36Sopenharmony_ci	depends on INTEL_SOC_PMIC_BXTWC
7662306a36Sopenharmony_ci	depends on MFD_INTEL_PMC_BXT
7762306a36Sopenharmony_ci	select REGMAP
7862306a36Sopenharmony_ci	help
7962306a36Sopenharmony_ci	  Select this driver to use Intel Broxton Whiskey Cove PMIC TMU feature.
8062306a36Sopenharmony_ci	  This driver enables the alarm wakeup functionality in the TMU unit of
8162306a36Sopenharmony_ci	  Whiskey Cove PMIC.
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ciconfig INTEL_BYTCRC_PWRSRC
8462306a36Sopenharmony_ci	tristate "Intel Bay Trail Crystal Cove power source driver"
8562306a36Sopenharmony_ci	depends on INTEL_SOC_PMIC
8662306a36Sopenharmony_ci	help
8762306a36Sopenharmony_ci	  This option adds a power source driver for Crystal Cove PMICs
8862306a36Sopenharmony_ci	  on Intel Bay Trail devices.
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
9162306a36Sopenharmony_ci	  will be called intel_bytcrc_pwrsrc.
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ciconfig INTEL_CHTDC_TI_PWRBTN
9462306a36Sopenharmony_ci	tristate "Intel Cherry Trail Dollar Cove TI power button driver"
9562306a36Sopenharmony_ci	depends on INTEL_SOC_PMIC_CHTDC_TI
9662306a36Sopenharmony_ci	depends on INPUT
9762306a36Sopenharmony_ci	help
9862306a36Sopenharmony_ci	  This option adds a power button driver for Dollar Cove TI
9962306a36Sopenharmony_ci	  PMIC on Intel Cherry Trail devices.
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
10262306a36Sopenharmony_ci	  will be called intel_chtdc_ti_pwrbtn.
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ciconfig INTEL_CHTWC_INT33FE
10562306a36Sopenharmony_ci	tristate "Intel Cherry Trail Whiskey Cove ACPI INT33FE Driver"
10662306a36Sopenharmony_ci	depends on X86 && ACPI && I2C && REGULATOR
10762306a36Sopenharmony_ci	depends on CHARGER_BQ24190=y || (CHARGER_BQ24190=m && m)
10862306a36Sopenharmony_ci	depends on USB_ROLES_INTEL_XHCI=y || (USB_ROLES_INTEL_XHCI=m && m)
10962306a36Sopenharmony_ci	depends on TYPEC_MUX_PI3USB30532=y || (TYPEC_MUX_PI3USB30532=m && m)
11062306a36Sopenharmony_ci	help
11162306a36Sopenharmony_ci	  This driver add support for the Intel Cherry Trail Whiskey Cove
11262306a36Sopenharmony_ci	  INT33FE ACPI device found on the GPD win and the GPD pocket.
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ci	  The INT33FE ACPI device on these mini laptops contains I2cSerialBusV2
11562306a36Sopenharmony_ci	  resources for a MAX17042 Fuel Gauge, FUSB302 USB Type-C Controller
11662306a36Sopenharmony_ci	  and PI3USB30532 USB switch.
11762306a36Sopenharmony_ci	  This driver instantiates i2c-clients for these, so that standard
11862306a36Sopenharmony_ci	  i2c drivers for these chips can bind to the them.
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci	  If you enable this driver it is advised to also select
12162306a36Sopenharmony_ci	  CONFIG_TYPEC_FUSB302=m, CONFIG_TYPEC_MUX_PI3USB30532=m and
12262306a36Sopenharmony_ci	  CONFIG_BATTERY_MAX17042=m.
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ciconfig INTEL_ISHTP_ECLITE
12562306a36Sopenharmony_ci	tristate "Intel ISHTP eclite controller Driver"
12662306a36Sopenharmony_ci	depends on INTEL_ISH_HID
12762306a36Sopenharmony_ci	depends on ACPI
12862306a36Sopenharmony_ci	help
12962306a36Sopenharmony_ci	  This driver is for accessing the PSE (Programmable Service Engine) -
13062306a36Sopenharmony_ci	  an Embedded Controller like IP - using ISHTP (Integrated Sensor Hub
13162306a36Sopenharmony_ci	  Transport Protocol) to get battery, thermal and UCSI (USB Type-C
13262306a36Sopenharmony_ci	  Connector System Software Interface) related data from the platform.
13362306a36Sopenharmony_ci	  Users who don't want to use discrete Embedded Controller on Intel's
13462306a36Sopenharmony_ci	  Elkhartlake platform can leverage this integrated solution of
13562306a36Sopenharmony_ci	  ECLite which is part of PSE subsystem.
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
13862306a36Sopenharmony_ci	  will be called intel_ishtp_eclite.
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ciconfig INTEL_MRFLD_PWRBTN
14162306a36Sopenharmony_ci	tristate "Intel Merrifield Basin Cove power button driver"
14262306a36Sopenharmony_ci	depends on INTEL_SOC_PMIC_MRFLD
14362306a36Sopenharmony_ci	depends on INPUT
14462306a36Sopenharmony_ci	help
14562306a36Sopenharmony_ci	  This option adds a power button driver for Basin Cove PMIC
14662306a36Sopenharmony_ci	  on Intel Merrifield devices.
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
14962306a36Sopenharmony_ci	  will be called intel_mrfld_pwrbtn.
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ciconfig INTEL_PUNIT_IPC
15262306a36Sopenharmony_ci	tristate "Intel P-Unit IPC Driver"
15362306a36Sopenharmony_ci	help
15462306a36Sopenharmony_ci	  This driver provides support for Intel P-Unit Mailbox IPC mechanism,
15562306a36Sopenharmony_ci	  which is used to bridge the communications between kernel and P-Unit.
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ciconfig INTEL_RST
15862306a36Sopenharmony_ci	tristate "Intel Rapid Start Technology Driver"
15962306a36Sopenharmony_ci	depends on ACPI
16062306a36Sopenharmony_ci	help
16162306a36Sopenharmony_ci	  This driver provides support for modifying parameters on systems
16262306a36Sopenharmony_ci	  equipped with Intel's Rapid Start Technology. When put in an ACPI
16362306a36Sopenharmony_ci	  sleep state, these devices will wake after either a configured
16462306a36Sopenharmony_ci	  timeout or when the system battery reaches a critical state,
16562306a36Sopenharmony_ci	  automatically copying memory contents to disk. On resume, the
16662306a36Sopenharmony_ci	  firmware will copy the memory contents back to RAM and resume the OS
16762306a36Sopenharmony_ci	  as usual.
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ciconfig INTEL_SDSI
17062306a36Sopenharmony_ci	tristate "Intel On Demand (Software Defined Silicon) Driver"
17162306a36Sopenharmony_ci	depends on INTEL_VSEC
17262306a36Sopenharmony_ci	depends on X86_64
17362306a36Sopenharmony_ci	help
17462306a36Sopenharmony_ci	  This driver enables access to the Intel On Demand (formerly Software
17562306a36Sopenharmony_ci	  Defined Silicon) interface used to provision silicon features with an
17662306a36Sopenharmony_ci	  authentication certificate and capability license.
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
17962306a36Sopenharmony_ci	  be called intel_sdsi.
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ciconfig INTEL_SMARTCONNECT
18262306a36Sopenharmony_ci	tristate "Intel Smart Connect disabling driver"
18362306a36Sopenharmony_ci	depends on ACPI
18462306a36Sopenharmony_ci	help
18562306a36Sopenharmony_ci	  Intel Smart Connect is a technology intended to permit devices to
18662306a36Sopenharmony_ci	  update state by resuming for a short period of time at regular
18762306a36Sopenharmony_ci	  intervals. If a user enables this functionality under Windows and
18862306a36Sopenharmony_ci	  then reboots into Linux, the system may remain configured to resume
18962306a36Sopenharmony_ci	  on suspend. In the absence of any userspace to support it, the system
19062306a36Sopenharmony_ci	  will then remain awake until something triggers another suspend.
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ci	  This driver checks to determine whether the device has Intel Smart
19362306a36Sopenharmony_ci	  Connect enabled, and if so disables it.
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ciconfig INTEL_TPMI
19662306a36Sopenharmony_ci	tristate "Intel Topology Aware Register and PM Capsule Interface (TPMI)"
19762306a36Sopenharmony_ci	depends on INTEL_VSEC
19862306a36Sopenharmony_ci	depends on X86_64
19962306a36Sopenharmony_ci	help
20062306a36Sopenharmony_ci	  The Intel Topology Aware Register and PM Capsule Interface (TPMI),
20162306a36Sopenharmony_ci	  provides enumerable MMIO interface for power management features.
20262306a36Sopenharmony_ci	  This driver creates devices, so that other PM feature driver can
20362306a36Sopenharmony_ci	  be loaded for PM specific feature operation.
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
20662306a36Sopenharmony_ci	  be called intel_vsec_tpmi.
20762306a36Sopenharmony_ci
20862306a36Sopenharmony_ciconfig INTEL_TURBO_MAX_3
20962306a36Sopenharmony_ci	bool "Intel Turbo Boost Max Technology 3.0 enumeration driver"
21062306a36Sopenharmony_ci	depends on X86_64 && SCHED_MC_PRIO
21162306a36Sopenharmony_ci	help
21262306a36Sopenharmony_ci	  This driver reads maximum performance ratio of each CPU and set up
21362306a36Sopenharmony_ci	  the scheduler priority metrics. In this way scheduler can prefer
21462306a36Sopenharmony_ci	  CPU with higher performance to schedule tasks.
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_ci	  This driver is only required when the system is not using Hardware
21762306a36Sopenharmony_ci	  P-States (HWP). In HWP mode, priority can be read from ACPI tables.
21862306a36Sopenharmony_ci
21962306a36Sopenharmony_ciconfig INTEL_VSEC
22062306a36Sopenharmony_ci	tristate "Intel Vendor Specific Extended Capabilities Driver"
22162306a36Sopenharmony_ci	depends on PCI
22262306a36Sopenharmony_ci	select AUXILIARY_BUS
22362306a36Sopenharmony_ci	help
22462306a36Sopenharmony_ci	  Adds support for feature drivers exposed using Intel PCIe VSEC and
22562306a36Sopenharmony_ci	  DVSEC.
22662306a36Sopenharmony_ci
22762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
22862306a36Sopenharmony_ci	  be called intel_vsec.
229