Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp348948pxb; Thu, 30 Sep 2021 07:23:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxmWRN8TGn2fVJNtZxJ0uqDeOOHR1KllllY9RMoPVmH/qe6UFIkMHMcKLGsNNbnsztmt312 X-Received: by 2002:aa7:94aa:0:b0:43e:2cf:d326 with SMTP id a10-20020aa794aa000000b0043e02cfd326mr4662023pfl.62.1633011823301; Thu, 30 Sep 2021 07:23:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633011823; cv=none; d=google.com; s=arc-20160816; b=el6KC1lqgkcxi5EA04VeeQaRYkwbpdMIt5A0OYxyUzQ2muDJFuNx55iNwxxziNnA8n +Z72Eh7UoMVG6ZbrK/omDuxXq9NqN85rEBBlegREQhzD/jL//CNkuy9btqZzBgxZ5QqL xuBLnVutjF4IhqpU71mX7ykR1R1cmI75jv0zB30Z3UxmtPbbkCP66pU5ODcdnBHJxbEL WzF+udslrdAhfxEn0IWUqO34O4+lujh1nwBHIQF6WzvWkRHhmTYEFuhvdC/S6RLvFXnf 5jQ+D1pR0m/Zv7kAcqBFS2iClvtRrieoz8xSAtCfjxhETrv56/AxUeIfwbF4N4acUN4+ gvKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=nKEPFLj+Rue+RmQzP1tAUoMcjGO3ZtEeZN2ZgnC2lX4=; b=0Qec4OtM5DHtCW1cdOt8vPGMOPpCQY1kfPqM/fi4YSnWnTtOrx8qs2xYrNtXHup+ST 3w6cgrHTwolgSAxkjL397SmIO+nAQz+irBgLL2w/WtDmS1Ag0yhcAkRbzr5On78pDTT6 gRtk7YJCHFMTrSIncsZVw8rF8in8HPPgqezI8NlcbzxSGzZJ5aVatxiFuh2vvqS2QR+u 9CTyd2GW9E0AgpOWCNBCpymBfMtBe4NqjnBbJK1/wyr0bpRZodHdvCaaf9j8ITy7ZIGJ 16Pif1pwU7oxuxJAuGnpO7yHgxzme1fV+6SnZ3onUq2bjoWWicZHItDAkIMY0YOMUwQO BGxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=V8oCbNo8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a7si1327404pfv.198.2021.09.30.07.23.30; Thu, 30 Sep 2021 07:23:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=V8oCbNo8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349610AbhI3Jq7 (ORCPT + 99 others); Thu, 30 Sep 2021 05:46:59 -0400 Received: from mail.kernel.org ([198.145.29.99]:46564 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349520AbhI3Jqo (ORCPT ); Thu, 30 Sep 2021 05:46:44 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id A79BA61882; Thu, 30 Sep 2021 09:45:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1632995102; bh=lUpxRdIOYkXqxm901b7jXYQkLx14QZ3MgavIj2Bc9bk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V8oCbNo8T3JNA1egPhCMgmC8/Em+dwme/ephLzQnW92hXUjven2edNHYxSrkPeae6 Xz/eigMhdphb5b/ch+cQdGQyYXIjqHUVyyXvt2o/3xRpgMjYO+0CCe//NmNOcEa9h/ gGa1MuvnGNSZY6IyYN8iOEJBHAFXBf+GKMwswKtxroprIOeSoUp7N4hic1KuWNGtXQ NfZg2YoFj2aT8Xnhj4qVrDrG0iqcv0gS0+q6PwFGdE/R+GF2V7EJ37ZUfMiH6+9rBr zd9+v9Aw4ligmAbuCemZDrbYLDRdiZUOjpA9lnJ0pW3WT6Mlx43mNvU7ZeV/nCY78U blll2xr5FcJlg== Received: by mail.kernel.org with local (Exim 4.94.2) (envelope-from ) id 1mVscd-002AT4-Ja; Thu, 30 Sep 2021 11:44:59 +0200 From: Mauro Carvalho Chehab To: Linux Doc Mailing List , Greg Kroah-Hartman Cc: Mauro Carvalho Chehab , "Jonathan Corbet" , Amit Kucheria , Daniel Lezcano , Zhang Rui , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH v2 1/7] ABI: sysfs-class-thermal: create a file with thermal_zone ABI Date: Thu, 30 Sep 2021 11:44:48 +0200 Message-Id: <6417aeca2f0c450545469b82f6b9bb615d1fa8ea.1632994837.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: Mauro Carvalho Chehab Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The thermal ABI is described, together with the internal development details at: Documentation/driver-api/thermal/sysfs-api.rst Move the sysfs API description to Documentation/ABI, ensuring that scripts/get_abi.pl will properly parse it. Signed-off-by: Mauro Carvalho Chehab --- See [PATCH v2 0/7] at: https://lore.kernel.org/all/cover.1632994837.git.mchehab+huawei@kernel.org/ Documentation/ABI/testing/sysfs-class-thermal | 259 ++++++++++++++++++ .../driver-api/thermal/sysfs-api.rst | 225 +-------------- MAINTAINERS | 2 + 3 files changed, 264 insertions(+), 222 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-class-thermal diff --git a/Documentation/ABI/testing/sysfs-class-thermal b/Documentation/ABI/testing/sysfs-class-thermal new file mode 100644 index 000000000000..2c52bb1f864c --- /dev/null +++ b/Documentation/ABI/testing/sysfs-class-thermal @@ -0,0 +1,259 @@ +What: /sys/class/thermal/thermal_zoneX/type +Description: + Strings which represent the thermal zone type. + This is given by thermal zone driver as part of registration. + E.g: "acpitz" indicates it's an ACPI thermal device. + In order to keep it consistent with hwmon sys attribute; this + shouldbe a short, lowercase string, not containing spaces nor + dashes. + + RO, Required + +What: /sys/class/thermal/thermal_zoneX/temp +Description: + Current temperature as reported by thermal zone (sensor). + + Unit: millidegree Celsius + + RO, Required + +What: /sys/class/thermal/thermal_zoneX/mode +Description: + One of the predefined values in [enabled, disabled]. + This file gives information about the algorithm that is + currently managing the thermal zone. It can be either default + kernel based algorithm or user space application. + + enabled + enable Kernel Thermal management. + disabled + Preventing kernel thermal zone driver actions upon + trip points so that user application can take full + charge of the thermal management. + + RW, Optional + +What: /sys/class/thermal/thermal_zoneX/policy +Description: + One of the various thermal governors used for a particular zone. + + RW, Required + +What: /sys/class/thermal/thermal_zoneX/available_policies +Description: + Available thermal governors which can be used for a + particular zone. + + RO, Required + +What: /sys/class/thermal/thermal_zoneX/trip_point_Y_temp +Description: + The temperature above which trip point will be fired. + + Unit: millidegree Celsius + + RO, Optional + +What: /sys/class/thermal/thermal_zoneX/trip_point_Y_type +Description: + Strings which indicate the type of the trip point. + + E.g. it can be one of critical, hot, passive, `active[0-*]` + for ACPI thermal zone. + + RO, Optional + +What: /sys/class/thermal/thermal_zoneX/trip_point_Y_hyst +Description: + The hysteresis value for a trip point, represented as an + integer. + + Unit: Celsius + + RW, Optional + +What: /sys/class/thermal/thermal_zoneX/cdevY +Description: + Sysfs link to the thermal cooling device node where the sys I/F + for cooling device throttling control represents. + + RO, Optional + +What: /sys/class/thermal/thermal_zoneX/cdevY_trip_point +Description: + The trip point in this thermal zone which `cdev[0-*]` is + associated with; -1 means the cooling device is not + associated with any trip point. + + RO, Optional + +What: /sys/class/thermal/thermal_zoneX/cdevY_weight +Description: + The influence of `cdev[0-*]` in this thermal zone. This value + is relative to the rest of cooling devices in the thermal + zone. For example, if a cooling device has a weight double + than that of other, it's twice as effective in cooling the + thermal zone. + + RW, Optional + +What: /sys/class/thermal/thermal_zoneX/emul_temp +Description: + Interface to set the emulated temperature method in thermal zone + (sensor). After setting this temperature, the thermal zone may + pass this temperature to platform emulation function if + registered or cache it locally. This is useful in debugging + different temperature threshold and its associated cooling + action. This is write only node and writing 0 on this node + should disable emulation. + + Unit: millidegree Celsius + + WO, Optional + + WARNING: + Be careful while enabling this option on production systems, + because userland can easily disable the thermal policy by simply + flooding this sysfs node with low temperature values. + + +What: /sys/class/thermal/thermal_zoneX/k_d +Description: + The derivative term of the power allocator governor's PID + controller. For more information see + Documentation/driver-api/thermal/power_allocator.rst + + RW, Optional + +What: /sys/class/thermal/thermal_zoneX/k_i +Description: + The integral term of the power allocator governor's PID + controller. This term allows the PID controller to compensate + for long term drift. For more information see + Documentation/driver-api/thermal/power_allocator.rst + + RW, Optional + +What: /sys/class/thermal/thermal_zoneX/k_po +Description: + The proportional term of the power allocator governor's PID + controller during temperature overshoot. Temperature overshoot + is when the current temperature is above the "desired + temperature" trip point. For more information see + Documentation/driver-api/thermal/power_allocator.rst + + RW, Optional + +What: /sys/class/thermal/thermal_zoneX/k_pu +Description: + The proportional term of the power allocator governor's PID + controller during temperature undershoot. Temperature undershoot + is when the current temperature is below the "desired + temperature" trip point. For more information see + Documentation/driver-api/thermal/power_allocator.rst + + RW, Optional + +What: /sys/class/thermal/thermal_zoneX/integral_cutoff +Description: + Temperature offset from the desired temperature trip point + above which the integral term of the power allocator + governor's PID controller starts accumulating errors. For + example, if integral_cutoff is 0, then the integral term only + accumulates error when temperature is above the desired + temperature trip point. For more information see + Documentation/driver-api/thermal/power_allocator.rst + + Unit: millidegree Celsius + + RW, Optional + +What: /sys/class/thermal/thermal_zoneX/slope +Description: + The slope constant used in a linear extrapolation model + to determine a hotspot temperature based off the sensor's + raw readings. It is up to the device driver to determine + the usage of these values. + + RW, Optional + +What: /sys/class/thermal/thermal_zoneX/offset +Description: + The offset constant used in a linear extrapolation model + to determine a hotspot temperature based off the sensor's + raw readings. It is up to the device driver to determine + the usage of these values. + + RW, Optional + +What: /sys/class/thermal/thermal_zoneX/sustainable_power +Description: + An estimate of the sustained power that can be dissipated by + the thermal zone. Used by the power allocator governor. For + more information see + Documentation/driver-api/thermal/power_allocator.rst + + Unit: milliwatts + + RW, Optional + +What: /sys/class/thermal/cooling_deviceX/type +Description: + String which represents the type of device, e.g: + + - for generic ACPI: should be "Fan", "Processor" or "LCD" + - for memory controller device on intel_menlow platform: + should be "Memory controller". + + RO, Required + +What: /sys/class/thermal/cooling_deviceX/max_state +Description: + The maximum permissible cooling state of this cooling device. + + RO, Required + +What: /sys/class/thermal/cooling_deviceX/cur_state +Description: + The current cooling state of this cooling device. + The value can any integer numbers between 0 and max_state: + + - cur_state == 0 means no cooling + - cur_state == max_state means the maximum cooling. + + RW, Required + +What: /sys/class/thermal/cooling_deviceX/stats/reset +Description: + Writing any value resets the cooling device's statistics. + + WO, Required + +What: /sys/class/thermal/cooling_deviceX/stats/time_in_state_ms: +Description: + The amount of time spent by the cooling device in various + cooling states. The output will have "