/* SPDX-License-Identifier: GPL-2.0-only */ #ifndef __DRIVERS_ACPI_THERMAL_ZONE_H__ #define __DRIVERS_ACPI_THERMAL_ZONE_H__ #include /* * All temperature units are in Celsius. * All time units are in seconds. */ struct drivers_acpi_thermal_zone_config { /* Description of the thermal zone */ const char *description; /* * Device that will provide the temperature reading * * This device must have an ACPI method named `TMP` that accepts the * sensor ID as the first argument. It must then return an Integer containing the * sensor's temperature in deci-Kelvin. */ DEVTREE_CONST struct device *temperature_controller; /* Used to identify the temperature sensor */ unsigned int sensor_id; /* The polling period in seconds for this thermal zone. */ unsigned int polling_period; /* The temperature (_CRT) at which the OS must shutdown the system. */ unsigned int critical_temperature; /* The temperature (_HOT) at which the OS may choose to hibernate the system */ unsigned int hibernate_temperature; struct acpi_thermal_zone_passive_config { /* * The temperature (_PSV) at which the OS must activate passive cooling (i.e., * throttle the CPUs). */ unsigned int temperature; /** * DeltaP[%] = _TC1 * (Tn - Tn-1) + _TC2 * (Tn - Tt) * Where: * Tn = current temperature * Tt = target temperature (_PSV) * * If any of these values are 0, then one of the following defaults will be * used: TC1: 2, TC2: 5, TSP: 10 */ unsigned int time_constant_1; unsigned int time_constant_2; unsigned int time_sampling_period; } passive_config; /* Place the ThermalZone in the \_TZ scope */ bool use_acpi1_thermal_zone_scope; }; #endif /* __DRIVERS_ACPI_THERMAL_ZONE_H__ */