8 #include <soc/pci_devs.h>
21 #define DEFAULT_CHARGER_STR "Battery Charger"
22 #define DEFAULT_TPCH_STR "Intel PCH FIVR Participant"
23 #define DEFAULT_POWER_STR "Power Participant"
24 #define DEFAULT_BATTERY_STR "Battery Participant"
26 #define PMC_IPC_COMMAND_FIVR_SIZE 0x8
39 if (
config->policies.active[i].target == participant)
44 if (
config->policies.passive[i].source == participant ||
45 config->policies.passive[i].target == participant)
50 if (
config->policies.critical[i].source == participant)
84 const char *str,
int sta_val,
88 static int generic_uid = 0;
212 printk(
BIOS_ERR,
"%s: Unable to find PMC device IPCS method\n", __func__);
219 unsigned int ipc_subcmd_ctrl_value)
279 unsigned int ipc_subcmd_ctrl_value)
320 enum { READ, WRITE }
type;
321 const char *method_name;
322 unsigned int subcommand;
362 for (
size_t i = 0; i <
ARRAY_SIZE(tpch_methods); i++) {
363 if (tpch_methods[i].
type == READ) {
365 tpch_methods[i].subcommand);
366 }
else if (tpch_methods[i].
type == WRITE) {
368 tpch_methods[i].subcommand);
445 printk(
BIOS_ERR,
"%s: DPTF objects must live under 00:04.0 PCI device\n",
458 if (
CONFIG(DRIVERS_INTEL_DPTF_SUPPORTS_TPCH))
461 if (
CONFIG(DRIVERS_INTEL_DPTF_SUPPORTS_TPWR))
464 if (
CONFIG(DRIVERS_INTEL_DPTF_SUPPORTS_TBAT))
505 config->options.fan.step_size,
506 config->options.fan.low_speed_notify);
512 config->options.tsr[i].desc)) {
const char * acpi_device_path_join(const struct device *dev, const char *name)
const char * acpi_device_name(const struct device *dev)
void acpigen_write_dword(unsigned int data)
void acpigen_emit_namestring(const char *namepath)
void acpigen_write_store(void)
void acpigen_write_integer(uint64_t data)
void acpigen_pop_len(void)
void acpigen_write_scope(const char *name)
void acpigen_write_zero(void)
void acpigen_write_method_serialized(const char *name, int nargs)
char * acpigen_write_package(int nr_el)
void acpigen_write_name_integer(const char *name, uint64_t val)
void acpigen_write_STA(uint8_t status)
void acpigen_emit_byte(unsigned char b)
void acpigen_emit_eisaid(const char *eisaid)
void acpigen_write_device(const char *name)
void acpigen_write_string(const char *string)
void acpigen_write_return_namestr(const char *arg)
void acpigen_write_method(const char *name, int nargs)
void acpigen_write_name(const char *name)
void acpigen_write_name_string(const char *name, const char *string)
void dptf_write_enabled_policies(const struct dptf_active_policy *active_policies, int active_count, const struct dptf_passive_policy *passive_policies, int passive_count, const struct dptf_critical_policy *critical_policies, int critical_count)
void dptf_write_active_policies(const struct dptf_active_policy *policies, int max_count)
void dptf_write_STR(const char *str)
void dptf_write_fan_options(bool fine_grained, int step_size, bool low_speed_notify)
void dptf_write_passive_policies(const struct dptf_passive_policy *policies, int max_count)
void dptf_write_tsr_hysteresis(uint8_t hysteresis)
void dptf_write_fan_perf(const struct dptf_fan_perf *states, int max_count)
void dptf_write_power_limits(const struct dptf_power_limits *limits)
void dptf_write_scope(enum dptf_participant participant)
void dptf_write_charger_perf(const struct dptf_charger_perf *states, int max_count)
void dptf_write_critical_policies(const struct dptf_critical_policy *policies, int max_count)
@ DPTF_MAX_CRITICAL_POLICIES
@ DPTF_MAX_CHARGER_PERF_STATES
@ DPTF_MAX_FAN_PERF_STATES
@ DPTF_MAX_PASSIVE_POLICIES
@ DPTF_MAX_ACTIVE_POLICIES
void acpigen_write_ADR_pci_device(const struct device *dev)
#define printk(level,...)
DEVTREE_CONST struct device * pcidev_path_on_root(pci_devfn_t devfn)
const char * dev_path(const struct device *dev)
#define DPTF_OEM_VARIABLE_COUNT
static void write_options(const struct drivers_intel_dptf_config *config)
static const char * dptf_acpi_name(const struct device *dev)
static void write_tpch_read_method(const char *tpch_read_method_name, unsigned int ipc_subcmd_ctrl_value)
static void write_imok(void)
#define PMC_IPC_COMMAND_FIVR_SIZE
#define DEFAULT_POWER_STR
static void write_create_tpwr(const struct drivers_intel_dptf_config *config, const struct dptf_platform_info *platform_info)
static void write_policies(const struct drivers_intel_dptf_config *config)
static void write_tpch_methods(const struct dptf_platform_info *platform_info)
static void write_tbat_methods(const struct dptf_platform_info *platform_info)
static void dptf_fill_ssdt(const struct device *dev)
static void write_tcpu(const struct device *pci_dev, const struct drivers_intel_dptf_config *config)
static void dptf_write_generic_participant(const char *name, enum dptf_generic_participant_type ptype, const char *str, int sta_val, const struct dptf_platform_info *platform_info)
static void write_create_tbat(const struct dptf_platform_info *platform_info)
static void write_pkgc_method(void)
static int get_STA_value(const struct drivers_intel_dptf_config *config, enum dptf_participant participant)
struct chip_operations drivers_intel_dptf_ops
static void write_ppkg_package(const uint8_t i)
static void dptf_enable_dev(struct device *dev)
static const char * get_pmc_ipcs_method(void)
static struct device_operations dptf_ops
dptf_generic_participant_type
@ DPTF_GENERIC_PARTICIPANT_TYPE_TPCH
@ DPTF_GENERIC_PARTICIPANT_TYPE_CHARGER
@ DPTF_GENERIC_PARTICIPANT_TYPE_BATTERY
@ DPTF_GENERIC_PARTICIPANT_TYPE_POWER
@ DPTF_GENERIC_PARTICIPANT_TYPE_TSR
static void write_tpch_write_method(const char *tpch_write_method_name, unsigned int ipc_subcmd_ctrl_value)
static void write_fan(const struct drivers_intel_dptf_config *config, const struct dptf_platform_info *platform_info)
static void write_create_tpch(const struct dptf_platform_info *platform_info)
static void write_controls(const struct drivers_intel_dptf_config *config)
static void write_oem_variables(const struct drivers_intel_dptf_config *config)
static void write_device_definitions(const struct device *dev)
static void write_open_dptf_device(const struct device *dev, const struct dptf_platform_info *platform_info)
static void dptf_write_hid(bool is_eisa, const char *hid)
static void write_tpwr_methods(const struct drivers_intel_dptf_config *config, const struct dptf_platform_info *platform_info)
static bool is_participant_used(const struct drivers_intel_dptf_config *config, enum dptf_participant participant)
#define DEFAULT_BATTERY_STR
static void write_generic_devices(const struct drivers_intel_dptf_config *config, const struct dptf_platform_info *platform_info)
#define DEFAULT_CHARGER_STR
#define ACPI_NAME_BUFFER_SIZE
#define ACPI_STATUS_DEVICE_ALL_ON
void acpigen_write_device_end(void)
void acpigen_write_package_end(void)
void acpigen_write_method_end(void)
#define ACPI_STATUS_DEVICE_ALL_OFF
static void noop_read_resources(struct device *dev)
Standard device operations function pointers shims.
static void noop_set_resources(struct device *dev)
static DEVTREE_CONST void * config_of(const struct device *dev)
#define BIOS_INFO
BIOS_INFO - Expected events.
#define BIOS_ERR
BIOS_ERR - System in incomplete state.
#define PMC_IPC_CMD_COMMAND_FIVR
#define PMC_IPC_SUBCMD_RFI_CTRL0_LOGIC
#define PMC_IPC_SUBCMD_FFFC_FAULT_STATUS
#define PMC_IPC_SUBCMD_EMI_CTRL0_LOGIC
#define PMC_IPC_SUBCMD_FFFC_RFI_STATUS
#define PMC_IPC_CMD_CMD_ID_FIVR_READ
#define PMC_IPC_SUBCMD_RFI_CTRL4_LOGIC
#define PMC_IPC_CMD_CMD_ID_FIVR_WRITE
const struct dptf_platform_info * get_dptf_platform_info(void)
DEVTREE_CONST struct device * dev
void(* read_resources)(struct device *dev)
enum device_path_type type
struct chip_operations * chip_ops
struct device_operations * ops
DEVTREE_CONST struct bus * bus
int snprintf(char *buf, size_t size, const char *fmt,...)
Note: This file is only for POSIX compatibility, and is meant to be chain-included via string....