mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
6145794968
Some of the PM features can be locked or disabled. In that case, write interface can be locked. This status is read via a mailbox. There is one TPMI ID which provides base address for interface and data register for mail box operation. The mailbox operations is defined in the TPMI specification. Refer to https://github.com/intel/tpmi_power_management/ for TPMI specifications. An API is exposed to feature drivers to read feature control status. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://lore.kernel.org/r/20230712225950.171326-2-srinivas.pandruvada@linux.intel.com Signed-off-by: Hans de Goede <hdegoede@redhat.com>
32 lines
979 B
C
32 lines
979 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* intel_tpmi.h: Intel TPMI core external interface
|
|
*/
|
|
|
|
#ifndef _INTEL_TPMI_H_
|
|
#define _INTEL_TPMI_H_
|
|
|
|
/**
|
|
* struct intel_tpmi_plat_info - Platform information for a TPMI device instance
|
|
* @package_id: CPU Package id
|
|
* @bus_number: PCI bus number
|
|
* @device_number: PCI device number
|
|
* @function_number: PCI function number
|
|
*
|
|
* Structure to store platform data for a TPMI device instance. This
|
|
* struct is used to return data via tpmi_get_platform_data().
|
|
*/
|
|
struct intel_tpmi_plat_info {
|
|
u8 package_id;
|
|
u8 bus_number;
|
|
u8 device_number;
|
|
u8 function_number;
|
|
};
|
|
|
|
struct intel_tpmi_plat_info *tpmi_get_platform_data(struct auxiliary_device *auxdev);
|
|
struct resource *tpmi_get_resource_at_index(struct auxiliary_device *auxdev, int index);
|
|
int tpmi_get_resource_count(struct auxiliary_device *auxdev);
|
|
|
|
int tpmi_get_feature_status(struct auxiliary_device *auxdev, int feature_id, int *locked,
|
|
int *disabled);
|
|
#endif
|