The TPMI (Topology Aware Register and PM Capsule Interface) provides a flexible, extendable and PCIe enumerable MMIO interface for PM features. For example Intel RAPL (Running Average Power Limit) provides a MMIO interface using TPMI. This has advantage over traditional MSR (Model Specific Register) interface, where a thread needs to be scheduled on the target CPU to read or write. Also the RAPL features vary between CPU models, and hence lot of model specific code. Here TPMI provides an architectural interface by providing hierarchical tables and fields, which will not need any model specific implementation. The TPMI interface uses a PCI VSEC structure to expose the location of MMIO region. This VSEC structure is present in the PCI configuration space of the Intel Out-of-Band (OOB) device, which is handled by the Intel VSEC driver. The Intel VSEC driver parses VSEC structures present in the PCI configuration space of the given device and creates an auxiliary device object for each of them. In particular, it creates an auxiliary device object representing TPMI that can be bound by an auxiliary driver. Introduce a TPMI driver that will bind to the TPMI auxiliary device object created by the Intel VSEC driver. The TPMI specification defines a PFS (PM Feature Structure) table. This table is present in the TPMI MMIO region. The starting address of PFS is derived from the tBIR (Bar Indicator Register) and "Address" field from the VSEC header. Each TPMI PM feature has one entry in the PFS with a unique TPMI ID and its access details. The TPMI driver creates device nodes for the supported PM features. The names of the devices created by the TPMI driver start with the "intel_vsec.tpmi-" prefix which is followed by a specific name of the given PM feature (for example, "intel_vsec.tpmi-rapl.0"). The device nodes are create by using interface "intel_vsec_add_aux()" provided by the Intel VSEC driver. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Link: https://lore.kernel.org/r/20230202010738.2186174-5-srinivas.pandruvada@linux.intel.com Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
219 lines
8.0 KiB
Plaintext
219 lines
8.0 KiB
Plaintext
# 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_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.
|