/openbmc/linux/Documentation/driver-api/thermal/ |
H A D | sysfs-api.rst | 2 Generic Thermal Sysfs driver How To 15 The generic thermal sysfs provides a set of interfaces for thermal zone 16 devices (sensors) and thermal cooling devices (fan, processor...) to register 17 with the thermal management solution and to be a part of it. 19 This how-to focuses on enabling new thermal zone and cooling devices to 20 participate in thermal management. 21 This solution is platform independent and any type of thermal zone devices 24 The main task of the thermal sysfs driver is to expose thermal zone attributes 26 An intelligent thermal management application can make decisions based on 27 inputs from thermal zone attributes (the current temperature and trip point [all …]
|
H A 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 …]
|
H A 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 …]
|
/openbmc/linux/Documentation/ABI/testing/ |
H A 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 …]
|
/openbmc/linux/Documentation/devicetree/bindings/thermal/ |
H A 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 - Amit Kucheria <amitk@kernel.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 …]
|
H A 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 …]
|
/openbmc/linux/drivers/thermal/ |
H A 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 …]
|
H A D | thermal_core.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * thermal.c - Generic Thermal Management Sysfs support. 18 #include <linux/thermal.h> 43 * Governor section: set of functions to handle thermal governors 45 * Functions to help in the life cycle of thermal governors within 46 * the thermal core and by the thermal governor code. 57 if (!strncasecmp(name, pos->name, THERMAL_NAME_LENGTH)) in __find_governor() 64 * bind_previous_governor() - bind the previous governor of the thermal zone 68 * Register the previous governor of the thermal zone after a new 74 if (tz->governor && tz->governor->bind_to_tz) { in bind_previous_governor() [all …]
|
H A 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> 32 return -EINVAL; in of_find_trip_id() 47 i = -ENXIO; in of_find_trip_id() 55 * It maps 'enum thermal_trip_type' found in include/linux/thermal.h 66 * thermal_of_get_trip_type - Get phy mode for given device_node 91 return -ENODEV; in thermal_of_get_trip_type() 105 trip->temperature = prop; in thermal_of_populate_trip() 112 trip->hysteresis = prop; in thermal_of_populate_trip() [all …]
|
H A D | thermal_acpi.c | 1 // SPDX-License-Identifier: GPL-2.0 6 * Library routines for populating a generic thermal trip point structure 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 thermal_acpi_trip_temp() 32 acpi_handle_debug(adev->handle, "%s evaluation failed\n", obj_name); in thermal_acpi_trip_temp() 33 return -ENODATA; in thermal_acpi_trip_temp() 39 acpi_handle_debug(adev->handle, "%s result %llu out of range\n", in thermal_acpi_trip_temp() 48 * thermal_acpi_active_trip_temp - Retrieve active trip point temperature 49 * @adev: Target thermal zone ACPI device object. 50 * @id: Active cooling level (0 - 9). [all …]
|
H A D | thermal_helpers.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * thermal_helpers.c - helper functions to handle thermal devices 27 struct thermal_trip *trip = tz->trips ? &tz->trips[trip_index] : NULL; in get_tz_trend() 30 if (tz->emul_temperature || !tz->ops->get_trend || in get_tz_trend() 31 tz->ops->get_trend(tz, trip, &trend)) { in get_tz_trend() 32 if (tz->temperature > tz->last_temperature) in get_tz_trend() 34 else if (tz->temperature < tz->last_temperature) in get_tz_trend() 51 mutex_lock(&tz->lock); in get_thermal_instance() 52 mutex_lock(&cdev->lock); in get_thermal_instance() 54 trip = &tz->trips[trip_index]; in get_thermal_instance() [all …]
|
H A D | gov_power_allocator.c | 1 // SPDX-License-Identifier: GPL-2.0 12 #include <linux/thermal.h> 19 #define INVALID_TRIP -1 26 * mul_frac() - multiply two fixed-point numbers 30 * Return: the result of multiplying two fixed-point numbers. The 31 * result is also a fixed-point number. 39 * div_frac() - divide two fixed-point numbers 43 * Return: the result of dividing two fixed-point numbers. The 44 * result is also a fixed-point number. 52 * struct power_allocator_params - parameters for the power allocator governor [all …]
|
H A 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 …]
|
H A 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> 68 /* Structure for thermal temperature calculation */ 85 struct thermal_zone_device *zone; member 102 return ioread32(tsc->base + reg); in rcar_gen3_thermal_read() 108 iowrite32(data, tsc->base + reg); in rcar_gen3_thermal_write() 114 * [reg] = [temp] * a + b => [temp] = ([reg] - b) / a 137 #define TJ_3 -41 149 tsc->tj_t = (FIXPT_INT((priv->ptat[1] - priv->ptat[2]) * (ths_tj_1 - TJ_3)) in rcar_gen3_thermal_calc_coefs() [all …]
|
H A 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 …]
|
/openbmc/linux/include/uapi/linux/ |
H A 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 …]
|
/openbmc/linux/include/linux/ |
H A D | thermal.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * thermal.h ($Revision: 0 $) 18 #include <uapi/linux/thermal.h> 21 #define THERMAL_CSTATE_INVALID -1UL 30 #define THERMAL_TEMP_INVALID -274000 43 /* Thermal notification reason */ 49 THERMAL_DEVICE_DOWN, /* Thermal device is down */ 50 THERMAL_DEVICE_UP, /* Thermal device is up after a down event */ 52 THERMAL_TABLE_CHANGED, /* Thermal table(s) changed */ 57 * struct thermal_trip - representation of a point in temperature domain [all …]
|
/openbmc/linux/tools/thermal/tmon/ |
H A 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 …]
|
/openbmc/linux/drivers/thermal/intel/ |
H A 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" 31 thermal zone. Each package will have its own thermal zone. There are 32 two trip points which can be set by user to get notifications via thermal 47 tristate "Intel SoCs DTS thermal driver" 55 thermal zone. There are two trip points. One of the trip point can 56 be set by user mode programs to get notifications via Linux thermal 61 tristate "Intel Quark DTS thermal driver" [all …]
|
/openbmc/linux/tools/thermal/thermometer/ |
H A 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 …]
|
/openbmc/phosphor-pid-control/ |
H A D | README.md | 1 # phosphor-pid-control 3 This is a daemon running within the OpenBMC environment. It uses a well-defined 5 them within operating conditions. It may require coordination with host-side 10 The BMC will run a daemon that controls the fans by pre-defined zones. The 11 application will use thermal control, such that each defined zone is kept within 12 a range and adjusted based on thermal information provided from locally readable 13 sensors as well as host-provided information over an IPMI OEM command. 16 configuration files or dbus. Each zone will contain at least one fan and at 21 The system will run a control loop for each zone with the attempt to maintain 22 the temperature within that zone within the margin for the devices specified. [all …]
|
/openbmc/linux/drivers/thermal/qcom/ |
H A 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 …]
|
/openbmc/phosphor-pid-control/pid/ |
H A D | zone_interface.hpp | 11 * In a Zone you have a set of PIDs which feed each other. Fan PIDs are fed set 12 * points from Thermal PIDs. 19 /** Get Current Zone ID */ 22 /** If the zone implementation supports logging, initialize the log. */ 24 /** If the zone implementation supports logging, write string to log. */ 30 /** Return the list of sensor names in the zone. */ 36 /** For each fan input in the zone, read each to update the cachedValue and 40 /** For each thermal input in the zone, read each to update the cachedValue 45 /** For each fan and thermal input in the zone, set the cachedValue to 0 and 46 * set the input as failsafe - to default the zone to failsafe before it [all …]
|
/openbmc/linux/tools/thermal/thermal-engine/ |
H A 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 …]
|
/openbmc/linux/Documentation/devicetree/bindings/display/ |
H A D | repaper.txt | 1 Pervasive Displays RePaper branded e-ink displays 4 - compatible: "pervasive,e1144cs021" for 1.44" display 9 - panel-on-gpios: Timing controller power control 10 - discharge-gpios: Discharge control 11 - reset-gpios: RESET pin 12 - busy-gpios: BUSY pin 15 - border-gpios: Border control 18 all mandatory properties described in ../spi/spi-bus.txt must be specified. 21 - pervasive,thermal-zone: name of thermometer's thermal zone 28 #thermal-sensor-cells = <0>; [all …]
|