/* * This file is part of the coreboot project. * * Copyright (C) 2015 Google Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef _INTEL_COMMON_ACPI_H_ #define _INTEL_COMMON_ACPI_H_ #include <stdint.h> /* * SOC specific handler to provide the wake source data for ACPI _SWS. * * @pm1: PM1_STS register with only enabled events set * @gpe0: GPE0_STS registers with only enabled events set * * return the number of registers in the gpe0 array or -1 if nothing * is provided by this function. */ int soc_fill_acpi_wake(uint32_t *pm1, uint32_t **gpe0); #if IS_ENABLED(CONFIG_SOC_INTEL_COMMON_ACPI) /* * cpu_get_bus_clock returns the bus clock frequency in KHz. * This is the value the clock ratio is multiplied with. */ uint32_t cpu_get_bus_clock(void); /* * cpu_get_coord_type returns coordination type (SW_ANY or SW_ALL or HW_ALL) * which is used to populate _PSD object. */ int cpu_get_coord_type(void); /* * cpu_config_tdp_levels returns the number of TDP levels supported * by this processor */ int cpu_config_tdp_levels(void); /* * cpu_get_min_ratio returns the minimum frequency ratio that is supported * by this processor */ uint32_t cpu_get_min_ratio(void); /* * cpu_get_max_ratio returns the nominal TDP ratio if available or the * maximum non turbo frequency ratio for this processor */ uint32_t cpu_get_max_ratio(void); /* * cpu_get_power_max calculates CPU TDP in mW */ uint32_t cpu_get_power_max(void); /* * cpu_get_max_turbo_ratio returns the maximum turbo ratio limit for the * processor */ uint32_t cpu_get_max_turbo_ratio(void); /* * get_cstate_map returns a table of processor specific acpi_cstate_t entries * and number of entries in the table */ acpi_cstate_t *soc_get_cstate_map(int *num_entries); /* * get_soc_tss_table returns a table of processor specific acpi_tstate_t entries * and number of entries in the table */ acpi_tstate_t *soc_get_tss_table(int *num_entries); /* * soc_get_acpi_base_address returns the ACPI base address for the SOC */ uint16_t soc_get_acpi_base_address(void); #endif /* CONFIG_SOC_INTEL_COMMON_ACPI */ #endif