/* SPDX-License-Identifier: GPL-2.0+ */ /* * Copyright (C) 2018, Bin Meng */ #ifndef __ASM_INTEL_ACPI_H__ #define __ASM_INTEL_ACPI_H__ struct acpi_cstate; struct acpi_ctx; struct acpi_tstate; struct udevice; /** * acpi_generate_cpu_header() - Start generating an ACPI CPU entry * * Generates the ACPI information for a CPU. After this, the caller should * generate_p_state_entries(), generate_t_state_entries and then * acpigen_pop_len() to close off this package. * * @ctx: ACPI context pointer * @core_id: CPU core number, as numbered by the SoC * @c_state_map: Information about each C state * @num_cstates: Number of entries in @c_state_map * Return: 0 if OK, -ve on error */ int acpi_generate_cpu_header(struct acpi_ctx *ctx, int core_id, const struct acpi_cstate *c_state_map, int num_cstates); /** * acpi_generate_cpu_package_final() - Write out the CPU PPKG entry * * This writes information about the CPUs in the package * * @ctx: ACPI context pointer * @cores_per_package: Number of CPU cores in each package in the SoC */ int acpi_generate_cpu_package_final(struct acpi_ctx *ctx, int cores_per_package); void generate_p_state_entries(struct acpi_ctx *ctx, int core, int cores_per_package); void generate_t_state_entries(struct acpi_ctx *ctx, int core, int cores_per_package, struct acpi_tstate *entry, int nentries); int southbridge_inject_dsdt(const struct udevice *dev, struct acpi_ctx *ctx); int intel_southbridge_write_acpi_tables(const struct udevice *dev, struct acpi_ctx *ctx); #endif /* __ASM_INTEL_ACPI_H__ */