/linux-6.12.1/Documentation/driver-api/thermal/ |
D | sysfs-api.rst | 2 Generic Thermal Sysfs driver How To 13 The generic thermal sysfs provides a set of interfaces for thermal zone 14 devices (sensors) and thermal cooling devices (fan, processor...) to register 15 with the thermal management solution and to be a part of it. 17 This how-to focuses on enabling new thermal zone and cooling devices to 18 participate in thermal management. 19 This solution is platform independent and any type of thermal zone devices 22 The main task of the thermal sysfs driver is to expose thermal zone attributes 24 An intelligent thermal management application can make decisions based on 25 inputs from thermal zone attributes (the current temperature and trip point [all …]
|
D | power_allocator.rst | 6 ----------- 12 point of the thermal zone. 17 thermal zone. 20 -------------- 23 Proportional-Integral-Derivative controller (PID controller) with 29 - e = desired_temperature - current_temperature 30 - err_integral is the sum of previous errors 31 - diff_err = e - previous_error 39 | +----------+ +---+ 40 | +----->| diff_err |-->| X |------+ [all …]
|
D | x86_pkg_temperature_thermal.rst | 7 * x86: with package level thermal management 14 --------- 16 Intel® 64 and IA-32 Architectures Software Developer’s Manual (Jan, 2013): 17 Chapter 14.6: PACKAGE LEVEL THERMAL MANAGEMENT 20 ----------- 22 This driver register CPU digital temperature package level sensor as a thermal 23 zone with maximum two user mode configurable trip points. Number of trip points 25 user mode can receive notification via thermal notification mechanism and can 30 -------------------- 31 Each package will register as a thermal zone under /sys/class/thermal. [all …]
|
/linux-6.12.1/drivers/thermal/testing/ |
D | command.c | 1 // SPDX-License-Identifier: GPL-2.0 7 * Thermal subsystem testing facility. 9 * This facility allows the thermal core functionality to be exercised in a 12 * It resides in the "thermal-testing" directory under the debugfs root and 14 * representing a thermal testing facility command. 18 * The "addtz" command causes a new test thermal zone template to be created, 21 * # echo addtz > /sys/kernel/debug/thermal-testing/command 23 * That template will be represented as a subdirectory in the "thermal-testing" 26 * # ls /sys/kernel/debug/thermal-testing/ 29 * The thermal zone template can be populated with trip points with the help of [all …]
|
D | zone.c | 1 // SPDX-License-Identifier: GPL-2.0 7 * Thermal zone tempalates handling for thermal core testing. 10 #define pr_fmt(fmt) "thermal-testing: " fmt 15 #include <linux/thermal.h> 23 * struct tt_thermal_zone - Testing thermal zone template 25 * Represents a template of a thermal zone that can be used for registering 26 * a test thermal zone with the thermal core. 28 * @list_node: Node in the list of all testing thermal zone templates. 29 * @trips: List of trip point templates for this thermal zone template. 31 * @tz: Test thermal zone based on this template, if present. [all …]
|
/linux-6.12.1/Documentation/ABI/testing/ |
D | sysfs-class-thermal | 1 What: /sys/class/thermal/thermal_zoneX/type 3 Strings which represent the thermal zone type. 4 This is given by thermal zone driver as part of registration. 5 E.g: "acpitz" indicates it's an ACPI thermal device. 12 What: /sys/class/thermal/thermal_zoneX/temp 14 Current temperature as reported by thermal zone (sensor). 20 What: /sys/class/thermal/thermal_zoneX/mode 24 currently managing the thermal zone. It can be either default 28 enable Kernel Thermal management. 30 Preventing kernel thermal zone driver actions upon [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/thermal/ |
D | thermal-zones.yaml | 1 # SPDX-License-Identifier: (GPL-2.0) 4 --- 5 $id: http://devicetree.org/schemas/thermal/thermal-zones.yaml# 6 $schema: http://devicetree.org/meta-schemas/base.yaml# 8 title: Thermal zone 11 - Daniel Lezcano <daniel.lezcano@linaro.org> 14 Thermal management is achieved in devicetree by describing the sensor hardware 15 and the software abstraction of cooling devices and thermal zones required to 16 take appropriate action to mitigate thermal overloads. 18 The following node types are used to completely describe a thermal management [all …]
|
D | rcar-thermal.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only 4 --- 5 $id: http://devicetree.org/schemas/thermal/rcar-thermal.yaml# 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 8 title: Renesas R-Car Thermal 11 - Niklas Söderlund <niklas.soderlund@ragnatech.se> 16 - items: 17 - enum: 18 - renesas,thermal-r8a73a4 # R-Mobile APE6 19 - renesas,thermal-r8a7779 # R-Car H1 [all …]
|
/linux-6.12.1/drivers/thermal/ |
D | thermal_core.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 13 #include <linux/thermal.h> 38 * struct thermal_governor - structure that holds thermal governor information 40 * @bind_to_tz: callback called when binding to a thermal zone. If it 41 * returns 0, the governor is bound to the thermal zone, 44 * thermal zone. 46 * @manage: called on thermal zone temperature updates 47 * @update_tz: callback called when thermal zone internals have changed, e.g. 48 * thermal cooling instance was added/removed 65 * struct thermal_zone_device - structure for a thermal zone [all …]
|
D | da9062-thermal.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Thermal device driver for DA9062 and DA9061 7 /* When over-temperature is reached, an interrupt from the device will be 11 * implementation of the thermal driver will include a .notify() function 14 * These uevents are intended to indicate non-invasive temperature control 17 * the IRQ is re-enabled so the start of a new over-temperature event can 27 #include <linux/thermal.h> 53 struct thermal_zone_device *zone; member 63 struct da9062_thermal *thermal = container_of(work, in da9062_thermal_poll_on() local 71 ret = regmap_write(thermal->hw->regmap, in da9062_thermal_poll_on() [all …]
|
D | thermal_core.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * thermal.c - Generic Thermal Management Sysfs support. 19 #include <linux/thermal.h> 44 * Governor section: set of functions to handle thermal governors 46 * Functions to help in the life cycle of thermal governors within 47 * the thermal core and by the thermal governor code. 58 if (!strncasecmp(name, pos->name, THERMAL_NAME_LENGTH)) in __find_governor() 65 * bind_previous_governor() - bind the previous governor of the thermal zone 69 * Register the previous governor of the thermal zone after a new 75 if (tz->governor && tz->governor->bind_to_tz) { in bind_previous_governor() [all …]
|
D | thermal_of.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * of-thermal.c - Generic Thermal Management device tree support. 15 #include <linux/thermal.h> 24 * It maps 'enum thermal_trip_type' found in include/linux/thermal.h 35 * thermal_of_get_trip_type - Get phy mode for given device_node 60 return -ENODEV; in thermal_of_get_trip_type() 74 trip->temperature = prop; in thermal_of_populate_trip() 81 trip->hysteresis = prop; in thermal_of_populate_trip() 83 ret = thermal_of_get_trip_type(np, &trip->type); in thermal_of_populate_trip() 89 trip->flags = THERMAL_TRIP_FLAG_RW_TEMP; in thermal_of_populate_trip() [all …]
|
D | gov_power_allocator.c | 1 // SPDX-License-Identifier: GPL-2.0 12 #include <linux/thermal.h> 24 * mul_frac() - multiply two fixed-point numbers 28 * Return: the result of multiplying two fixed-point numbers. The 29 * result is also a fixed-point number. 37 * div_frac() - divide two fixed-point numbers 41 * Return: the result of dividing two fixed-point numbers. The 42 * result is also a fixed-point number. 50 * struct power_actor - internal power information for power actor 66 * struct power_allocator_params - parameters for the power allocator governor [all …]
|
D | thermal_helpers.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * thermal_helpers.c - helper functions to handle thermal devices 29 if (tz->emul_temperature || !tz->ops.get_trend || in get_tz_trend() 30 tz->ops.get_trend(tz, trip, &trend)) { in get_tz_trend() 31 if (tz->temperature > tz->last_temperature) in get_tz_trend() 33 else if (tz->temperature < tz->last_temperature) in get_tz_trend() 48 list_for_each_entry(ti, &tz->thermal_instances, tz_node) { in thermal_instance_present() 49 if (ti->trip == trip && ti->cdev == cdev) in thermal_instance_present() 62 mutex_lock(&tz->lock); in thermal_trip_is_bound_to_cdev() 63 mutex_lock(&cdev->lock); in thermal_trip_is_bound_to_cdev() [all …]
|
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 3 # Generic thermal drivers configuration 6 menuconfig THERMAL config 7 bool "Thermal drivers" 9 Thermal drivers offer a generic mechanism for 10 thermal management. Usually it's made up of one or more thermal 12 Each thermal zone contains its own temperature, trip points, 14 All platforms with ACPI or Open Firmware thermal support can use 18 if THERMAL 21 bool "Thermal netlink management" [all …]
|
/linux-6.12.1/include/uapi/linux/ |
D | thermal.h | 1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 20 #define THERMAL_GENL_FAMILY_NAME "thermal" 53 #define THERMAL_GENL_ATTR_MAX (__THERMAL_GENL_ATTR_MAX - 1) 59 #define THERMAL_GENL_SAMPLING_MAX (__THERMAL_GENL_SAMPLING_MAX - 1) 64 THERMAL_GENL_EVENT_TZ_CREATE, /* Thermal zone creation */ 65 THERMAL_GENL_EVENT_TZ_DELETE, /* Thermal zone deletion */ 66 THERMAL_GENL_EVENT_TZ_DISABLE, /* Thermal zone disabled */ 67 THERMAL_GENL_EVENT_TZ_ENABLE, /* Thermal zone enabled */ 73 THERMAL_GENL_EVENT_CDEV_ADD, /* Cdev bound to the thermal zone */ 80 #define THERMAL_GENL_EVENT_MAX (__THERMAL_GENL_EVENT_MAX - 1) [all …]
|
/linux-6.12.1/tools/thermal/tmon/ |
D | tmon.8 | 2 # SPDX-License-Identifier: GPL-2.0 4 \fBtmon\fP - A monitoring and testing tool for Linux kernel thermal subsystem 12 \fBtmon \fP can be used to visualize thermal relationship and 13 real-time thermal data; tune 14 and test cooling devices and sensors; collect thermal data for offline 21 1. Thermal relationships: 22 - show thermal zone information 23 - show cooling device information 24 - show trip point binding within each thermal zone 25 - show trip point and cooling device instance bindings [all …]
|
/linux-6.12.1/drivers/thermal/intel/ |
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 11 enforce idle time which results in more package C-state residency. The 12 user interface is exposed via generic thermal framework. 23 tristate "X86 package temperature thermal driver" 30 thermal zone. Each package will have its own thermal zone. There are 31 two trip points which can be set by user to get notifications via thermal 46 tristate "Intel SoCs DTS thermal driver" 53 thermal zone. There are two trip points. One of the trip point can 54 be set by user mode programs to get notifications via Linux thermal 59 tristate "Intel Quark DTS thermal driver" [all …]
|
/linux-6.12.1/tools/thermal/thermometer/ |
D | thermometer.8 | 2 # SPDX-License-Identifier: GPL-2.0 4 \fBthermometer\fP - A thermal profiling tool 13 \fBthermometer \fP captures the thermal zones temperature at a 21 If no configuration file is specified, then all the thermal zones will 23 the thermal zone names and the desired sampling period. A thermal zone 24 name can be a regular expression to specify a group of thermal zone. 26 The sampling of the different thermal zones will be written into 27 separate files with the thermal zone name. It is possible to specify a 31 Without any parameters, \fBthermometer \fP captures all the thermal 32 zone temperatures every 250ms and write to the current directory the [all …]
|
/linux-6.12.1/drivers/acpi/ |
D | thermal_lib.c | 1 // SPDX-License-Identifier: GPL-2.0 11 #include <linux/thermal.h> 15 * Minimum temperature for full military grade is 218°K (-55°C) and 30 status = acpi_evaluate_integer(adev->handle, obj_name, NULL, &temp); in acpi_trip_temp() 32 acpi_handle_debug(adev->handle, "%s evaluation failed\n", obj_name); in acpi_trip_temp() 33 return -ENODATA; in acpi_trip_temp() 39 acpi_handle_debug(adev->handle, "%s result %llu out of range\n", in acpi_trip_temp() 52 return -EINVAL; in acpi_active_trip_temp() 90 * thermal_acpi_active_trip_temp - Retrieve active trip point temperature 91 * @adev: Target thermal zone ACPI device object. [all …]
|
/linux-6.12.1/drivers/thermal/qcom/ |
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 7 This enables the thermal sysfs driver for the TSENS device. It shows 8 up in Sysfs as a thermal zone with multiple trip points. Disabling the 9 thermal zone device via the mode file results in disabling the sensor. 14 tristate "Qualcomm SPMI PMIC Thermal Monitor ADC5" 19 This enables the thermal driver for the ADC thermal monitoring 20 device. It shows up as a thermal zone with multiple trip points. 21 Thermal client sets threshold temperature for both warm and cool and 29 This enables a thermal sysfs driver for Qualcomm plug-and-play (QPNP) 30 PMIC devices. It shows up in sysfs as a thermal sensor with multiple [all …]
|
/linux-6.12.1/tools/thermal/thermal-engine/ |
D | thermal-engine.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Thermal monitoring tool based on the thermal netlink events. 26 #include <thermal.h> 27 #include "thermal-tools.h" 44 tt->id, tt->type, tt->temp, tt->hyst); in show_trip() 53 INFO("temperature: %d\n", tz->temp); in show_temp() 62 INFO("governor: '%s'\n", tz->governor); in show_governor() 69 INFO("thermal zone '%s', id=%d\n", tz->name, tz->id); in show_tz() 71 for_each_thermal_trip(tz->trip, show_trip, NULL); in show_tz() 82 INFO("Thermal zone '%s'/%d created\n", name, tz_id); in tz_create() [all …]
|
/linux-6.12.1/drivers/thermal/renesas/ |
D | rcar_thermal.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * R-Car THS/TSC thermal sensor driver 20 #include <linux/thermal.h> 92 struct thermal_zone_device *zone; member 101 list_for_each_entry(pos, &common->head, list) 104 #define rcar_priv_to_dev(priv) ((priv)->common->dev) 105 #define rcar_has_irq_support(priv) ((priv)->common->base) 106 #define rcar_id_to_shift(priv) ((priv)->id * 8) 110 .compatible = "renesas,rcar-thermal", 114 .compatible = "renesas,rcar-gen2-thermal", [all …]
|
D | rcar_gen3_thermal.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * R-Car Gen3 THS thermal sensor driver 17 #include <linux/thermal.h> 85 struct thermal_zone_device *zone; member 106 return ioread32(tsc->base + reg); in rcar_gen3_thermal_read() 112 iowrite32(data, tsc->base + reg); in rcar_gen3_thermal_write() 118 * [temp] = ((thadj - [reg]) * a) / b + adj 119 * [reg] = thadj - ([temp] - adj) * b / a 140 priv->tj_t = in rcar_gen3_thermal_shared_coefs() 141 DIV_ROUND_CLOSEST((priv->ptat[1] - priv->ptat[2]) * priv->info->scale, in rcar_gen3_thermal_shared_coefs() [all …]
|
/linux-6.12.1/drivers/thermal/tegra/ |
D | tegra-bpmp-thermal.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (c) 2015-2017, NVIDIA CORPORATION. All rights reserved. 13 #include <linux/thermal.h> 17 #include <soc/tegra/bpmp-abi.h> 33 static int __tegra_bpmp_thermal_get_temp(struct tegra_bpmp_thermal_zone *zone, in __tegra_bpmp_thermal_get_temp() argument 43 req.get_temp.zone = zone->idx; in __tegra_bpmp_thermal_get_temp() 52 err = tegra_bpmp_transfer(zone->tegra->bpmp, &msg); in __tegra_bpmp_thermal_get_temp() 55 if (msg.rx.ret == -BPMP_EFAULT) in __tegra_bpmp_thermal_get_temp() 56 return -EAGAIN; in __tegra_bpmp_thermal_get_temp() 58 return -EINVAL; in __tegra_bpmp_thermal_get_temp() [all …]
|