diff mbox

[3/3] acpi: thermal/sysfs-api.txt: move to acpi directory

Message ID 200908211102.33936.elendil@planet.nl (mailing list archive)
State RFC, archived
Headers show

Commit Message

Frans Pop Aug. 21, 2009, 9:02 a.m. UTC
It is a more logical place to look and reduces the clutter in
the Documentation directory as the thermal directory is now empty
and can be removed.

Signed-off-by: Frans Pop <elendil@planet.nl>
Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Sujith Thomas <sujith.thomas@intel.com>

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Zhang Rui Aug. 24, 2009, 12:55 a.m. UTC | #1
On Fri, 2009-08-21 at 17:02 +0800, Frans Pop wrote:
> It is a more logical place to look and reduces the clutter in
> the Documentation directory as the thermal directory is now empty
> and can be removed.
> 
> Signed-off-by: Frans Pop <elendil@planet.nl>
> Cc: Zhang Rui <rui.zhang@intel.com>
> Cc: Sujith Thomas <sujith.thomas@intel.com>

NAK.

this document describes the sysfs I/F of the GENERIC thermal driver.
ACPI thermal driver is just the first user of this thermal sysfs driver.
More drivers than ACPI will use this framework in the future.

thanks,
rui

> 
> diff --git a/Documentation/acpi/thermal-sysfs-api.txt b/Documentation/acpi/thermal-sysfs-api.txt
> new file mode 100644
> index 0000000..52b63c4
> --- /dev/null
> +++ b/Documentation/acpi/thermal-sysfs-api.txt
> @@ -0,0 +1,281 @@
> +Generic Thermal Sysfs driver How To
> +===================================
> +
> +Written by Sujith Thomas <sujith.thomas@intel.com>, Zhang Rui <rui.zhang@intel.com>
> +
> +Updated: 21 August 2009
> +
> +Copyright (c)  2008 Intel Corporation
> +
> +
> +0. Introduction
> +
> +The generic thermal sysfs provides a set of interfaces for thermal zone
> +devices (sensors) and thermal cooling devices (fan, processor...) to register
> +with the thermal management solution and to be a part of it.
> +
> +This how-to focuses on enabling new thermal zone and cooling devices to
> +participate in thermal management.
> +This solution is platform independent and any type of thermal zone devices
> +and cooling devices should be able to make use of the infrastructure.
> +
> +The main task of the thermal sysfs driver is to expose thermal zone attributes
> +as well as cooling device attributes to the user space.
> +An intelligent thermal management application can make decisions based on
> +inputs from thermal zone attributes (the current temperature and trip point
> +temperature) and throttle appropriate devices.
> +
> +[0-*]  denotes any positive number starting from 0
> +[1-*]  denotes any positive number starting from 1
> +
> +1. thermal sysfs driver interface functions
> +
> +1.1 thermal zone device interface
> +1.1.1 struct thermal_zone_device *thermal_zone_device_register(char *name,
> +               int trips, void *devdata, struct thermal_zone_device_ops *ops)
> +
> +    This interface function adds a new thermal zone device (sensor) to
> +    /sys/class/thermal folder as thermal_zone[0-*]. It tries to bind all the
> +    thermal cooling devices registered at the same time.
> +
> +    name: the thermal zone name.
> +    trips: the total number of trip points this thermal zone supports.
> +    devdata: device private data
> +    ops: thermal zone device call-backs.
> +       .bind: bind the thermal zone device with a thermal cooling device.
> +       .unbind: unbind the thermal zone device with a thermal cooling device.
> +       .get_temp: get the current temperature of the thermal zone.
> +       .get_mode: get the current mode (user/kernel) of the thermal zone.
> +           - "kernel" means thermal management is done in kernel.
> +           - "user" will prevent kernel thermal driver actions upon trip points
> +             so that user applications can take charge of thermal management.
> +       .set_mode: set the mode (user/kernel) of the thermal zone.
> +       .get_trip_type: get the type of certain trip point.
> +       .get_trip_temp: get the temperature above which the certain trip point
> +                       will be fired.
> +
> +1.1.2 void thermal_zone_device_unregister(struct thermal_zone_device *tz)
> +
> +    This interface function removes the thermal zone device.
> +    It deletes the corresponding entry form /sys/class/thermal folder and
> +    unbind all the thermal cooling devices it uses.
> +
> +1.2 thermal cooling device interface
> +1.2.1 struct thermal_cooling_device *thermal_cooling_device_register(char *name,
> +               void *devdata, struct thermal_cooling_device_ops *)
> +
> +    This interface function adds a new thermal cooling device (fan/processor/...)
> +    to /sys/class/thermal/ folder as cooling_device[0-*]. It tries to bind itself
> +    to all the thermal zone devices register at the same time.
> +    name: the cooling device name.
> +    devdata: device private data.
> +    ops: thermal cooling devices call-backs.
> +       .get_max_state: get the Maximum throttle state of the cooling device.
> +       .get_cur_state: get the Current throttle state of the cooling device.
> +       .set_cur_state: set the Current throttle state of the cooling device.
> +
> +1.2.2 void thermal_cooling_device_unregister(struct thermal_cooling_device *cdev)
> +
> +    This interface function remove the thermal cooling device.
> +    It deletes the corresponding entry form /sys/class/thermal folder and
> +    unbind itself from all the thermal zone devices using it.
> +
> +1.3 interface for binding a thermal zone device with a thermal cooling device
> +1.3.1 int thermal_zone_bind_cooling_device(struct thermal_zone_device *tz,
> +               int trip, struct thermal_cooling_device *cdev);
> +
> +    This interface function bind a thermal cooling device to the certain trip
> +    point of a thermal zone device.
> +    This function is usually called in the thermal zone device .bind callback.
> +    tz: the thermal zone device
> +    cdev: thermal cooling device
> +    trip: indicates which trip point the cooling devices is associated with
> +         in this thermal zone.
> +
> +1.3.2 int thermal_zone_unbind_cooling_device(struct thermal_zone_device *tz,
> +               int trip, struct thermal_cooling_device *cdev);
> +
> +    This interface function unbind a thermal cooling device from the certain
> +    trip point of a thermal zone device. This function is usually called in
> +    the thermal zone device .unbind callback.
> +    tz: the thermal zone device
> +    cdev: thermal cooling device
> +    trip: indicates which trip point the cooling devices is associated with
> +         in this thermal zone.
> +
> +2. sysfs attributes structure
> +
> +RO     read only value
> +RW     read/write value
> +
> +Thermal sysfs attributes will be represented under /sys/class/thermal.
> +Hwmon sysfs I/F extension is also available under /sys/class/hwmon
> +if hwmon is compiled in or built as a module.
> +
> +Thermal zone device sys I/F, created once it's registered:
> +/sys/class/thermal/thermal_zone[0-*]:
> +    |---type:                  Type of the thermal zone
> +    |---temp:                  Current temperature
> +    |---mode:                  Working mode of the thermal zone
> +    |---trip_point_[0-*]_temp: Trip point temperature
> +    |---trip_point_[0-*]_type: Trip point type
> +
> +Thermal cooling device sys I/F, created once it's registered:
> +/sys/class/thermal/cooling_device[0-*]:
> +    |---type:                  Type of the cooling device(processor/fan/...)
> +    |---max_state:             Maximum cooling state of the cooling device
> +    |---cur_state:             Current cooling state of the cooling device
> +
> +
> +Then next two dynamic attributes are created/removed in pairs. They represent
> +the relationship between a thermal zone and its associated cooling device.
> +They are created/removed for each successful execution of
> +thermal_zone_bind_cooling_device/thermal_zone_unbind_cooling_device.
> +
> +/sys/class/thermal/thermal_zone[0-*]:
> +    |---cdev[0-*]:             [0-*]th cooling device in current thermal zone
> +    |---cdev[0-*]_trip_point:  Trip point that cdev[0-*] is associated with
> +
> +Besides the thermal zone device sysfs I/F and cooling device sysfs I/F,
> +the generic thermal driver also creates a hwmon sysfs I/F for each _type_
> +of thermal zone device. E.g. the generic thermal driver registers one hwmon
> +class device and build the associated hwmon sysfs I/F for all the registered
> +ACPI thermal zones.
> +
> +/sys/class/hwmon/hwmon[0-*]:
> +    |---name:                  The type of the thermal zone devices
> +    |---temp[1-*]_input:       The current temperature of thermal zone [1-*]
> +    |---temp[1-*]_critical:    The critical trip point of thermal zone [1-*]
> +
> +Please read Documentation/hwmon/sysfs-interface for additional information.
> +
> +***************************
> +* Thermal zone attributes *
> +***************************
> +
> +type
> +       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 should
> +       be a short, lowercase string, not containing spaces nor dashes.
> +       RO, Required
> +
> +temp
> +       Current temperature as reported by thermal zone (sensor).
> +       Unit: millidegree Celsius
> +       RO, Required
> +
> +mode
> +       One of the predefined values in [kernel, user].
> +       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.
> +       kernel  = Thermal management in kernel thermal zone driver.
> +       user    = Preventing kernel thermal zone driver actions upon
> +                 trip points so that user application can take full
> +                 charge of the thermal management.
> +       RW, Optional
> +
> +trip_point_[0-*]_temp
> +       The temperature above which trip point will be fired.
> +       Unit: millidegree Celsius
> +       RO, Optional
> +
> +trip_point_[0-*]_type
> +       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
> +
> +cdev[0-*]
> +       Sysfs link to the thermal cooling device node where the sys I/F
> +       for cooling device throttling control represents.
> +       RO, Optional
> +
> +cdev[0-*]_trip_point
> +       The trip point with which cdev[0-*] is associated in this thermal
> +       zone; -1 means the cooling device is not associated with any trip
> +       point.
> +       RO, Optional
> +
> +passive
> +       Attribute is only present for zones which do not have a passive
> +       cooling policy (_PSV) defined in ACPI. Default is zero and can be
> +       set to a temperature (in millidegrees) to enable a passive trip
> +       point for the zone. Activation is done by polling (default interval:
> +       10 seconds); the polling interval can be set in
> +       /proc/acpi/thermal/TZN/polling_frequency.
> +       Unit: millidegree Celsius
> +       RW, Optional
> +
> +*****************************
> +* Cooling device attributes *
> +*****************************
> +
> +type
> +       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
> +
> +max_state
> +       The maximum permissible cooling state of this cooling device.
> +       RO, Required
> +
> +cur_state
> +       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
> +
> +3. A simple implementation
> +
> +ACPI thermal zone may support multiple trip points like critical, hot,
> +passive, active. If an ACPI thermal zone supports critical, passive,
> +active[0] and active[1] at the same time, it may register itself as a
> +thermal_zone_device (thermal_zone1) with 4 trip points in all.
> +It has one processor and one fan, which are both registered as
> +thermal_cooling_device.
> +
> +If the processor is listed in _PSL method, the fan is listed in _AL0
> +method, and the zone hase a _PSV method, the sys I/F structure will be
> +built like this:
> +
> +/sys/class/thermal:
> +
> +|thermal_zone1:
> +    |---type:                  acpitz
> +    |---temp:                  37000
> +    |---mode:                  kernel
> +    |---trip_point_0_temp:     100000
> +    |---trip_point_0_type:     critical
> +    |---trip_point_1_temp:     80000
> +    |---trip_point_1_type:     passive
> +    |---trip_point_2_temp:     70000
> +    |---trip_point_2_type:     active0
> +    |---trip_point_3_temp:     60000
> +    |---trip_point_3_type:     active1
> +    |---cdev0:                 --->/sys/class/thermal/cooling_device0
> +    |---cdev0_trip_point:      1       /* cdev0 can be used for passive */
> +    |---cdev1:                 --->/sys/class/thermal/cooling_device3
> +    |---cdev1_trip_point:      2       /* cdev1 can be used for active[0]*/
> +
> +|cooling_device0:
> +    |---type:                  Processor
> +    |---max_state:             8
> +    |---cur_state:             0
> +
> +|cooling_device3:
> +    |---type:                  Fan
> +    |---max_state:             2
> +    |---cur_state:             0
> +
> +/sys/class/hwmon:
> +
> +|hwmon0:
> +    |---name:                  acpitz
> +    |---temp1_input:           37000
> +    |---temp1_crit:            100000
> diff --git a/Documentation/thermal/sysfs-api.txt b/Documentation/thermal/sysfs-api.txt
> deleted file mode 100644
> index 52b63c4..0000000
> --- a/Documentation/thermal/sysfs-api.txt
> +++ /dev/null
> @@ -1,281 +0,0 @@
> -Generic Thermal Sysfs driver How To
> -===================================
> -
> -Written by Sujith Thomas <sujith.thomas@intel.com>, Zhang Rui <rui.zhang@intel.com>
> -
> -Updated: 21 August 2009
> -
> -Copyright (c)  2008 Intel Corporation
> -
> -
> -0. Introduction
> -
> -The generic thermal sysfs provides a set of interfaces for thermal zone
> -devices (sensors) and thermal cooling devices (fan, processor...) to register
> -with the thermal management solution and to be a part of it.
> -
> -This how-to focuses on enabling new thermal zone and cooling devices to
> -participate in thermal management.
> -This solution is platform independent and any type of thermal zone devices
> -and cooling devices should be able to make use of the infrastructure.
> -
> -The main task of the thermal sysfs driver is to expose thermal zone attributes
> -as well as cooling device attributes to the user space.
> -An intelligent thermal management application can make decisions based on
> -inputs from thermal zone attributes (the current temperature and trip point
> -temperature) and throttle appropriate devices.
> -
> -[0-*]  denotes any positive number starting from 0
> -[1-*]  denotes any positive number starting from 1
> -
> -1. thermal sysfs driver interface functions
> -
> -1.1 thermal zone device interface
> -1.1.1 struct thermal_zone_device *thermal_zone_device_register(char *name,
> -               int trips, void *devdata, struct thermal_zone_device_ops *ops)
> -
> -    This interface function adds a new thermal zone device (sensor) to
> -    /sys/class/thermal folder as thermal_zone[0-*]. It tries to bind all the
> -    thermal cooling devices registered at the same time.
> -
> -    name: the thermal zone name.
> -    trips: the total number of trip points this thermal zone supports.
> -    devdata: device private data
> -    ops: thermal zone device call-backs.
> -       .bind: bind the thermal zone device with a thermal cooling device.
> -       .unbind: unbind the thermal zone device with a thermal cooling device.
> -       .get_temp: get the current temperature of the thermal zone.
> -       .get_mode: get the current mode (user/kernel) of the thermal zone.
> -           - "kernel" means thermal management is done in kernel.
> -           - "user" will prevent kernel thermal driver actions upon trip points
> -             so that user applications can take charge of thermal management.
> -       .set_mode: set the mode (user/kernel) of the thermal zone.
> -       .get_trip_type: get the type of certain trip point.
> -       .get_trip_temp: get the temperature above which the certain trip point
> -                       will be fired.
> -
> -1.1.2 void thermal_zone_device_unregister(struct thermal_zone_device *tz)
> -
> -    This interface function removes the thermal zone device.
> -    It deletes the corresponding entry form /sys/class/thermal folder and
> -    unbind all the thermal cooling devices it uses.
> -
> -1.2 thermal cooling device interface
> -1.2.1 struct thermal_cooling_device *thermal_cooling_device_register(char *name,
> -               void *devdata, struct thermal_cooling_device_ops *)
> -
> -    This interface function adds a new thermal cooling device (fan/processor/...)
> -    to /sys/class/thermal/ folder as cooling_device[0-*]. It tries to bind itself
> -    to all the thermal zone devices register at the same time.
> -    name: the cooling device name.
> -    devdata: device private data.
> -    ops: thermal cooling devices call-backs.
> -       .get_max_state: get the Maximum throttle state of the cooling device.
> -       .get_cur_state: get the Current throttle state of the cooling device.
> -       .set_cur_state: set the Current throttle state of the cooling device.
> -
> -1.2.2 void thermal_cooling_device_unregister(struct thermal_cooling_device *cdev)
> -
> -    This interface function remove the thermal cooling device.
> -    It deletes the corresponding entry form /sys/class/thermal folder and
> -    unbind itself from all the thermal zone devices using it.
> -
> -1.3 interface for binding a thermal zone device with a thermal cooling device
> -1.3.1 int thermal_zone_bind_cooling_device(struct thermal_zone_device *tz,
> -               int trip, struct thermal_cooling_device *cdev);
> -
> -    This interface function bind a thermal cooling device to the certain trip
> -    point of a thermal zone device.
> -    This function is usually called in the thermal zone device .bind callback.
> -    tz: the thermal zone device
> -    cdev: thermal cooling device
> -    trip: indicates which trip point the cooling devices is associated with
> -         in this thermal zone.
> -
> -1.3.2 int thermal_zone_unbind_cooling_device(struct thermal_zone_device *tz,
> -               int trip, struct thermal_cooling_device *cdev);
> -
> -    This interface function unbind a thermal cooling device from the certain
> -    trip point of a thermal zone device. This function is usually called in
> -    the thermal zone device .unbind callback.
> -    tz: the thermal zone device
> -    cdev: thermal cooling device
> -    trip: indicates which trip point the cooling devices is associated with
> -         in this thermal zone.
> -
> -2. sysfs attributes structure
> -
> -RO     read only value
> -RW     read/write value
> -
> -Thermal sysfs attributes will be represented under /sys/class/thermal.
> -Hwmon sysfs I/F extension is also available under /sys/class/hwmon
> -if hwmon is compiled in or built as a module.
> -
> -Thermal zone device sys I/F, created once it's registered:
> -/sys/class/thermal/thermal_zone[0-*]:
> -    |---type:                  Type of the thermal zone
> -    |---temp:                  Current temperature
> -    |---mode:                  Working mode of the thermal zone
> -    |---trip_point_[0-*]_temp: Trip point temperature
> -    |---trip_point_[0-*]_type: Trip point type
> -
> -Thermal cooling device sys I/F, created once it's registered:
> -/sys/class/thermal/cooling_device[0-*]:
> -    |---type:                  Type of the cooling device(processor/fan/...)
> -    |---max_state:             Maximum cooling state of the cooling device
> -    |---cur_state:             Current cooling state of the cooling device
> -
> -
> -Then next two dynamic attributes are created/removed in pairs. They represent
> -the relationship between a thermal zone and its associated cooling device.
> -They are created/removed for each successful execution of
> -thermal_zone_bind_cooling_device/thermal_zone_unbind_cooling_device.
> -
> -/sys/class/thermal/thermal_zone[0-*]:
> -    |---cdev[0-*]:             [0-*]th cooling device in current thermal zone
> -    |---cdev[0-*]_trip_point:  Trip point that cdev[0-*] is associated with
> -
> -Besides the thermal zone device sysfs I/F and cooling device sysfs I/F,
> -the generic thermal driver also creates a hwmon sysfs I/F for each _type_
> -of thermal zone device. E.g. the generic thermal driver registers one hwmon
> -class device and build the associated hwmon sysfs I/F for all the registered
> -ACPI thermal zones.
> -
> -/sys/class/hwmon/hwmon[0-*]:
> -    |---name:                  The type of the thermal zone devices
> -    |---temp[1-*]_input:       The current temperature of thermal zone [1-*]
> -    |---temp[1-*]_critical:    The critical trip point of thermal zone [1-*]
> -
> -Please read Documentation/hwmon/sysfs-interface for additional information.
> -
> -***************************
> -* Thermal zone attributes *
> -***************************
> -
> -type
> -       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 should
> -       be a short, lowercase string, not containing spaces nor dashes.
> -       RO, Required
> -
> -temp
> -       Current temperature as reported by thermal zone (sensor).
> -       Unit: millidegree Celsius
> -       RO, Required
> -
> -mode
> -       One of the predefined values in [kernel, user].
> -       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.
> -       kernel  = Thermal management in kernel thermal zone driver.
> -       user    = Preventing kernel thermal zone driver actions upon
> -                 trip points so that user application can take full
> -                 charge of the thermal management.
> -       RW, Optional
> -
> -trip_point_[0-*]_temp
> -       The temperature above which trip point will be fired.
> -       Unit: millidegree Celsius
> -       RO, Optional
> -
> -trip_point_[0-*]_type
> -       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
> -
> -cdev[0-*]
> -       Sysfs link to the thermal cooling device node where the sys I/F
> -       for cooling device throttling control represents.
> -       RO, Optional
> -
> -cdev[0-*]_trip_point
> -       The trip point with which cdev[0-*] is associated in this thermal
> -       zone; -1 means the cooling device is not associated with any trip
> -       point.
> -       RO, Optional
> -
> -passive
> -       Attribute is only present for zones which do not have a passive
> -       cooling policy (_PSV) defined in ACPI. Default is zero and can be
> -       set to a temperature (in millidegrees) to enable a passive trip
> -       point for the zone. Activation is done by polling (default interval:
> -       10 seconds); the polling interval can be set in
> -       /proc/acpi/thermal/TZN/polling_frequency.
> -       Unit: millidegree Celsius
> -       RW, Optional
> -
> -*****************************
> -* Cooling device attributes *
> -*****************************
> -
> -type
> -       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
> -
> -max_state
> -       The maximum permissible cooling state of this cooling device.
> -       RO, Required
> -
> -cur_state
> -       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
> -
> -3. A simple implementation
> -
> -ACPI thermal zone may support multiple trip points like critical, hot,
> -passive, active. If an ACPI thermal zone supports critical, passive,
> -active[0] and active[1] at the same time, it may register itself as a
> -thermal_zone_device (thermal_zone1) with 4 trip points in all.
> -It has one processor and one fan, which are both registered as
> -thermal_cooling_device.
> -
> -If the processor is listed in _PSL method, the fan is listed in _AL0
> -method, and the zone hase a _PSV method, the sys I/F structure will be
> -built like this:
> -
> -/sys/class/thermal:
> -
> -|thermal_zone1:
> -    |---type:                  acpitz
> -    |---temp:                  37000
> -    |---mode:                  kernel
> -    |---trip_point_0_temp:     100000
> -    |---trip_point_0_type:     critical
> -    |---trip_point_1_temp:     80000
> -    |---trip_point_1_type:     passive
> -    |---trip_point_2_temp:     70000
> -    |---trip_point_2_type:     active0
> -    |---trip_point_3_temp:     60000
> -    |---trip_point_3_type:     active1
> -    |---cdev0:                 --->/sys/class/thermal/cooling_device0
> -    |---cdev0_trip_point:      1       /* cdev0 can be used for passive */
> -    |---cdev1:                 --->/sys/class/thermal/cooling_device3
> -    |---cdev1_trip_point:      2       /* cdev1 can be used for active[0]*/
> -
> -|cooling_device0:
> -    |---type:                  Processor
> -    |---max_state:             8
> -    |---cur_state:             0
> -
> -|cooling_device3:
> -    |---type:                  Fan
> -    |---max_state:             2
> -    |---cur_state:             0
> -
> -/sys/class/hwmon:
> -
> -|hwmon0:
> -    |---name:                  acpitz
> -    |---temp1_input:           37000
> -    |---temp1_crit:            100000

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/acpi/thermal-sysfs-api.txt b/Documentation/acpi/thermal-sysfs-api.txt
new file mode 100644
index 0000000..52b63c4
--- /dev/null
+++ b/Documentation/acpi/thermal-sysfs-api.txt
@@ -0,0 +1,281 @@ 
+Generic Thermal Sysfs driver How To
+===================================
+
+Written by Sujith Thomas <sujith.thomas@intel.com>, Zhang Rui <rui.zhang@intel.com>
+
+Updated: 21 August 2009
+
+Copyright (c)  2008 Intel Corporation
+
+
+0. Introduction
+
+The generic thermal sysfs provides a set of interfaces for thermal zone
+devices (sensors) and thermal cooling devices (fan, processor...) to register
+with the thermal management solution and to be a part of it.
+
+This how-to focuses on enabling new thermal zone and cooling devices to
+participate in thermal management.
+This solution is platform independent and any type of thermal zone devices
+and cooling devices should be able to make use of the infrastructure.
+
+The main task of the thermal sysfs driver is to expose thermal zone attributes
+as well as cooling device attributes to the user space.
+An intelligent thermal management application can make decisions based on
+inputs from thermal zone attributes (the current temperature and trip point
+temperature) and throttle appropriate devices.
+
+[0-*]	denotes any positive number starting from 0
+[1-*]	denotes any positive number starting from 1
+
+1. thermal sysfs driver interface functions
+
+1.1 thermal zone device interface
+1.1.1 struct thermal_zone_device *thermal_zone_device_register(char *name,
+		int trips, void *devdata, struct thermal_zone_device_ops *ops)
+
+    This interface function adds a new thermal zone device (sensor) to
+    /sys/class/thermal folder as thermal_zone[0-*]. It tries to bind all the
+    thermal cooling devices registered at the same time.
+
+    name: the thermal zone name.
+    trips: the total number of trip points this thermal zone supports.
+    devdata: device private data
+    ops: thermal zone device call-backs.
+	.bind: bind the thermal zone device with a thermal cooling device.
+	.unbind: unbind the thermal zone device with a thermal cooling device.
+	.get_temp: get the current temperature of the thermal zone.
+	.get_mode: get the current mode (user/kernel) of the thermal zone.
+	    - "kernel" means thermal management is done in kernel.
+	    - "user" will prevent kernel thermal driver actions upon trip points
+	      so that user applications can take charge of thermal management.
+	.set_mode: set the mode (user/kernel) of the thermal zone.
+	.get_trip_type: get the type of certain trip point.
+	.get_trip_temp: get the temperature above which the certain trip point
+			will be fired.
+
+1.1.2 void thermal_zone_device_unregister(struct thermal_zone_device *tz)
+
+    This interface function removes the thermal zone device.
+    It deletes the corresponding entry form /sys/class/thermal folder and
+    unbind all the thermal cooling devices it uses.
+
+1.2 thermal cooling device interface
+1.2.1 struct thermal_cooling_device *thermal_cooling_device_register(char *name,
+		void *devdata, struct thermal_cooling_device_ops *)
+
+    This interface function adds a new thermal cooling device (fan/processor/...)
+    to /sys/class/thermal/ folder as cooling_device[0-*]. It tries to bind itself
+    to all the thermal zone devices register at the same time.
+    name: the cooling device name.
+    devdata: device private data.
+    ops: thermal cooling devices call-backs.
+	.get_max_state: get the Maximum throttle state of the cooling device.
+	.get_cur_state: get the Current throttle state of the cooling device.
+	.set_cur_state: set the Current throttle state of the cooling device.
+
+1.2.2 void thermal_cooling_device_unregister(struct thermal_cooling_device *cdev)
+
+    This interface function remove the thermal cooling device.
+    It deletes the corresponding entry form /sys/class/thermal folder and
+    unbind itself from all the thermal zone devices using it.
+
+1.3 interface for binding a thermal zone device with a thermal cooling device
+1.3.1 int thermal_zone_bind_cooling_device(struct thermal_zone_device *tz,
+		int trip, struct thermal_cooling_device *cdev);
+
+    This interface function bind a thermal cooling device to the certain trip
+    point of a thermal zone device.
+    This function is usually called in the thermal zone device .bind callback.
+    tz: the thermal zone device
+    cdev: thermal cooling device
+    trip: indicates which trip point the cooling devices is associated with
+	  in this thermal zone.
+
+1.3.2 int thermal_zone_unbind_cooling_device(struct thermal_zone_device *tz,
+		int trip, struct thermal_cooling_device *cdev);
+
+    This interface function unbind a thermal cooling device from the certain
+    trip point of a thermal zone device. This function is usually called in
+    the thermal zone device .unbind callback.
+    tz: the thermal zone device
+    cdev: thermal cooling device
+    trip: indicates which trip point the cooling devices is associated with
+	  in this thermal zone.
+
+2. sysfs attributes structure
+
+RO	read only value
+RW	read/write value
+
+Thermal sysfs attributes will be represented under /sys/class/thermal.
+Hwmon sysfs I/F extension is also available under /sys/class/hwmon
+if hwmon is compiled in or built as a module.
+
+Thermal zone device sys I/F, created once it's registered:
+/sys/class/thermal/thermal_zone[0-*]:
+    |---type:			Type of the thermal zone
+    |---temp:			Current temperature
+    |---mode:			Working mode of the thermal zone
+    |---trip_point_[0-*]_temp:	Trip point temperature
+    |---trip_point_[0-*]_type:	Trip point type
+
+Thermal cooling device sys I/F, created once it's registered:
+/sys/class/thermal/cooling_device[0-*]:
+    |---type:			Type of the cooling device(processor/fan/...)
+    |---max_state:		Maximum cooling state of the cooling device
+    |---cur_state:		Current cooling state of the cooling device
+
+
+Then next two dynamic attributes are created/removed in pairs. They represent
+the relationship between a thermal zone and its associated cooling device.
+They are created/removed for each successful execution of
+thermal_zone_bind_cooling_device/thermal_zone_unbind_cooling_device.
+
+/sys/class/thermal/thermal_zone[0-*]:
+    |---cdev[0-*]:		[0-*]th cooling device in current thermal zone
+    |---cdev[0-*]_trip_point:	Trip point that cdev[0-*] is associated with
+
+Besides the thermal zone device sysfs I/F and cooling device sysfs I/F,
+the generic thermal driver also creates a hwmon sysfs I/F for each _type_
+of thermal zone device. E.g. the generic thermal driver registers one hwmon
+class device and build the associated hwmon sysfs I/F for all the registered
+ACPI thermal zones.
+
+/sys/class/hwmon/hwmon[0-*]:
+    |---name:			The type of the thermal zone devices
+    |---temp[1-*]_input:	The current temperature of thermal zone [1-*]
+    |---temp[1-*]_critical:	The critical trip point of thermal zone [1-*]
+
+Please read Documentation/hwmon/sysfs-interface for additional information.
+
+***************************
+* Thermal zone attributes *
+***************************
+
+type
+	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 should
+ 	be a short, lowercase string, not containing spaces nor dashes.
+	RO, Required
+
+temp
+	Current temperature as reported by thermal zone (sensor).
+	Unit: millidegree Celsius
+	RO, Required
+
+mode
+	One of the predefined values in [kernel, user].
+	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.
+	kernel	= Thermal management in kernel thermal zone driver.
+	user	= Preventing kernel thermal zone driver actions upon
+		  trip points so that user application can take full
+		  charge of the thermal management.
+	RW, Optional
+
+trip_point_[0-*]_temp
+	The temperature above which trip point will be fired.
+	Unit: millidegree Celsius
+	RO, Optional
+
+trip_point_[0-*]_type
+	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
+
+cdev[0-*]
+	Sysfs link to the thermal cooling device node where the sys I/F
+	for cooling device throttling control represents.
+	RO, Optional
+
+cdev[0-*]_trip_point
+	The trip point with which cdev[0-*] is associated in this thermal
+	zone; -1 means the cooling device is not associated with any trip
+	point.
+	RO, Optional
+
+passive
+	Attribute is only present for zones which do not have a passive
+	cooling policy (_PSV) defined in ACPI. Default is zero and can be
+	set to a temperature (in millidegrees) to enable a passive trip
+	point for the zone. Activation is done by polling (default interval:
+	10 seconds); the polling interval can be set in
+	/proc/acpi/thermal/TZN/polling_frequency.
+	Unit: millidegree Celsius
+	RW, Optional
+
+*****************************
+* Cooling device attributes *
+*****************************
+
+type
+	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
+
+max_state
+	The maximum permissible cooling state of this cooling device.
+	RO, Required
+
+cur_state
+	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
+
+3. A simple implementation
+
+ACPI thermal zone may support multiple trip points like critical, hot,
+passive, active. If an ACPI thermal zone supports critical, passive,
+active[0] and active[1] at the same time, it may register itself as a
+thermal_zone_device (thermal_zone1) with 4 trip points in all.
+It has one processor and one fan, which are both registered as
+thermal_cooling_device.
+
+If the processor is listed in _PSL method, the fan is listed in _AL0
+method, and the zone hase a _PSV method, the sys I/F structure will be
+built like this:
+
+/sys/class/thermal:
+
+|thermal_zone1:
+    |---type:			acpitz
+    |---temp:			37000
+    |---mode:			kernel
+    |---trip_point_0_temp:	100000
+    |---trip_point_0_type:	critical
+    |---trip_point_1_temp:	80000
+    |---trip_point_1_type:	passive
+    |---trip_point_2_temp:	70000
+    |---trip_point_2_type:	active0
+    |---trip_point_3_temp:	60000
+    |---trip_point_3_type:	active1
+    |---cdev0:			--->/sys/class/thermal/cooling_device0
+    |---cdev0_trip_point:	1	/* cdev0 can be used for passive */
+    |---cdev1:			--->/sys/class/thermal/cooling_device3
+    |---cdev1_trip_point:	2	/* cdev1 can be used for active[0]*/
+
+|cooling_device0:
+    |---type:			Processor
+    |---max_state:		8
+    |---cur_state:		0
+
+|cooling_device3:
+    |---type:			Fan
+    |---max_state:		2
+    |---cur_state:		0
+
+/sys/class/hwmon:
+
+|hwmon0:
+    |---name:			acpitz
+    |---temp1_input:		37000
+    |---temp1_crit:		100000
diff --git a/Documentation/thermal/sysfs-api.txt b/Documentation/thermal/sysfs-api.txt
deleted file mode 100644
index 52b63c4..0000000
--- a/Documentation/thermal/sysfs-api.txt
+++ /dev/null
@@ -1,281 +0,0 @@ 
-Generic Thermal Sysfs driver How To
-===================================
-
-Written by Sujith Thomas <sujith.thomas@intel.com>, Zhang Rui <rui.zhang@intel.com>
-
-Updated: 21 August 2009
-
-Copyright (c)  2008 Intel Corporation
-
-
-0. Introduction
-
-The generic thermal sysfs provides a set of interfaces for thermal zone
-devices (sensors) and thermal cooling devices (fan, processor...) to register
-with the thermal management solution and to be a part of it.
-
-This how-to focuses on enabling new thermal zone and cooling devices to
-participate in thermal management.
-This solution is platform independent and any type of thermal zone devices
-and cooling devices should be able to make use of the infrastructure.
-
-The main task of the thermal sysfs driver is to expose thermal zone attributes
-as well as cooling device attributes to the user space.
-An intelligent thermal management application can make decisions based on
-inputs from thermal zone attributes (the current temperature and trip point
-temperature) and throttle appropriate devices.
-
-[0-*]	denotes any positive number starting from 0
-[1-*]	denotes any positive number starting from 1
-
-1. thermal sysfs driver interface functions
-
-1.1 thermal zone device interface
-1.1.1 struct thermal_zone_device *thermal_zone_device_register(char *name,
-		int trips, void *devdata, struct thermal_zone_device_ops *ops)
-
-    This interface function adds a new thermal zone device (sensor) to
-    /sys/class/thermal folder as thermal_zone[0-*]. It tries to bind all the
-    thermal cooling devices registered at the same time.
-
-    name: the thermal zone name.
-    trips: the total number of trip points this thermal zone supports.
-    devdata: device private data
-    ops: thermal zone device call-backs.
-	.bind: bind the thermal zone device with a thermal cooling device.
-	.unbind: unbind the thermal zone device with a thermal cooling device.
-	.get_temp: get the current temperature of the thermal zone.
-	.get_mode: get the current mode (user/kernel) of the thermal zone.
-	    - "kernel" means thermal management is done in kernel.
-	    - "user" will prevent kernel thermal driver actions upon trip points
-	      so that user applications can take charge of thermal management.
-	.set_mode: set the mode (user/kernel) of the thermal zone.
-	.get_trip_type: get the type of certain trip point.
-	.get_trip_temp: get the temperature above which the certain trip point
-			will be fired.
-
-1.1.2 void thermal_zone_device_unregister(struct thermal_zone_device *tz)
-
-    This interface function removes the thermal zone device.
-    It deletes the corresponding entry form /sys/class/thermal folder and
-    unbind all the thermal cooling devices it uses.
-
-1.2 thermal cooling device interface
-1.2.1 struct thermal_cooling_device *thermal_cooling_device_register(char *name,
-		void *devdata, struct thermal_cooling_device_ops *)
-
-    This interface function adds a new thermal cooling device (fan/processor/...)
-    to /sys/class/thermal/ folder as cooling_device[0-*]. It tries to bind itself
-    to all the thermal zone devices register at the same time.
-    name: the cooling device name.
-    devdata: device private data.
-    ops: thermal cooling devices call-backs.
-	.get_max_state: get the Maximum throttle state of the cooling device.
-	.get_cur_state: get the Current throttle state of the cooling device.
-	.set_cur_state: set the Current throttle state of the cooling device.
-
-1.2.2 void thermal_cooling_device_unregister(struct thermal_cooling_device *cdev)
-
-    This interface function remove the thermal cooling device.
-    It deletes the corresponding entry form /sys/class/thermal folder and
-    unbind itself from all the thermal zone devices using it.
-
-1.3 interface for binding a thermal zone device with a thermal cooling device
-1.3.1 int thermal_zone_bind_cooling_device(struct thermal_zone_device *tz,
-		int trip, struct thermal_cooling_device *cdev);
-
-    This interface function bind a thermal cooling device to the certain trip
-    point of a thermal zone device.
-    This function is usually called in the thermal zone device .bind callback.
-    tz: the thermal zone device
-    cdev: thermal cooling device
-    trip: indicates which trip point the cooling devices is associated with
-	  in this thermal zone.
-
-1.3.2 int thermal_zone_unbind_cooling_device(struct thermal_zone_device *tz,
-		int trip, struct thermal_cooling_device *cdev);
-
-    This interface function unbind a thermal cooling device from the certain
-    trip point of a thermal zone device. This function is usually called in
-    the thermal zone device .unbind callback.
-    tz: the thermal zone device
-    cdev: thermal cooling device
-    trip: indicates which trip point the cooling devices is associated with
-	  in this thermal zone.
-
-2. sysfs attributes structure
-
-RO	read only value
-RW	read/write value
-
-Thermal sysfs attributes will be represented under /sys/class/thermal.
-Hwmon sysfs I/F extension is also available under /sys/class/hwmon
-if hwmon is compiled in or built as a module.
-
-Thermal zone device sys I/F, created once it's registered:
-/sys/class/thermal/thermal_zone[0-*]:
-    |---type:			Type of the thermal zone
-    |---temp:			Current temperature
-    |---mode:			Working mode of the thermal zone
-    |---trip_point_[0-*]_temp:	Trip point temperature
-    |---trip_point_[0-*]_type:	Trip point type
-
-Thermal cooling device sys I/F, created once it's registered:
-/sys/class/thermal/cooling_device[0-*]:
-    |---type:			Type of the cooling device(processor/fan/...)
-    |---max_state:		Maximum cooling state of the cooling device
-    |---cur_state:		Current cooling state of the cooling device
-
-
-Then next two dynamic attributes are created/removed in pairs. They represent
-the relationship between a thermal zone and its associated cooling device.
-They are created/removed for each successful execution of
-thermal_zone_bind_cooling_device/thermal_zone_unbind_cooling_device.
-
-/sys/class/thermal/thermal_zone[0-*]:
-    |---cdev[0-*]:		[0-*]th cooling device in current thermal zone
-    |---cdev[0-*]_trip_point:	Trip point that cdev[0-*] is associated with
-
-Besides the thermal zone device sysfs I/F and cooling device sysfs I/F,
-the generic thermal driver also creates a hwmon sysfs I/F for each _type_
-of thermal zone device. E.g. the generic thermal driver registers one hwmon
-class device and build the associated hwmon sysfs I/F for all the registered
-ACPI thermal zones.
-
-/sys/class/hwmon/hwmon[0-*]:
-    |---name:			The type of the thermal zone devices
-    |---temp[1-*]_input:	The current temperature of thermal zone [1-*]
-    |---temp[1-*]_critical:	The critical trip point of thermal zone [1-*]
-
-Please read Documentation/hwmon/sysfs-interface for additional information.
-
-***************************
-* Thermal zone attributes *
-***************************
-
-type
-	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 should
- 	be a short, lowercase string, not containing spaces nor dashes.
-	RO, Required
-
-temp
-	Current temperature as reported by thermal zone (sensor).
-	Unit: millidegree Celsius
-	RO, Required
-
-mode
-	One of the predefined values in [kernel, user].
-	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.
-	kernel	= Thermal management in kernel thermal zone driver.
-	user	= Preventing kernel thermal zone driver actions upon
-		  trip points so that user application can take full
-		  charge of the thermal management.
-	RW, Optional
-
-trip_point_[0-*]_temp
-	The temperature above which trip point will be fired.
-	Unit: millidegree Celsius
-	RO, Optional
-
-trip_point_[0-*]_type
-	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
-
-cdev[0-*]
-	Sysfs link to the thermal cooling device node where the sys I/F
-	for cooling device throttling control represents.
-	RO, Optional
-
-cdev[0-*]_trip_point
-	The trip point with which cdev[0-*] is associated in this thermal
-	zone; -1 means the cooling device is not associated with any trip
-	point.
-	RO, Optional
-
-passive
-	Attribute is only present for zones which do not have a passive
-	cooling policy (_PSV) defined in ACPI. Default is zero and can be
-	set to a temperature (in millidegrees) to enable a passive trip
-	point for the zone. Activation is done by polling (default interval:
-	10 seconds); the polling interval can be set in
-	/proc/acpi/thermal/TZN/polling_frequency.
-	Unit: millidegree Celsius
-	RW, Optional
-
-*****************************
-* Cooling device attributes *
-*****************************
-
-type
-	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
-
-max_state
-	The maximum permissible cooling state of this cooling device.
-	RO, Required
-
-cur_state
-	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
-
-3. A simple implementation
-
-ACPI thermal zone may support multiple trip points like critical, hot,
-passive, active. If an ACPI thermal zone supports critical, passive,
-active[0] and active[1] at the same time, it may register itself as a
-thermal_zone_device (thermal_zone1) with 4 trip points in all.
-It has one processor and one fan, which are both registered as
-thermal_cooling_device.
-
-If the processor is listed in _PSL method, the fan is listed in _AL0
-method, and the zone hase a _PSV method, the sys I/F structure will be
-built like this:
-
-/sys/class/thermal:
-
-|thermal_zone1:
-    |---type:			acpitz
-    |---temp:			37000
-    |---mode:			kernel
-    |---trip_point_0_temp:	100000
-    |---trip_point_0_type:	critical
-    |---trip_point_1_temp:	80000
-    |---trip_point_1_type:	passive
-    |---trip_point_2_temp:	70000
-    |---trip_point_2_type:	active0
-    |---trip_point_3_temp:	60000
-    |---trip_point_3_type:	active1
-    |---cdev0:			--->/sys/class/thermal/cooling_device0
-    |---cdev0_trip_point:	1	/* cdev0 can be used for passive */
-    |---cdev1:			--->/sys/class/thermal/cooling_device3
-    |---cdev1_trip_point:	2	/* cdev1 can be used for active[0]*/
-
-|cooling_device0:
-    |---type:			Processor
-    |---max_state:		8
-    |---cur_state:		0
-
-|cooling_device3:
-    |---type:			Fan
-    |---max_state:		2
-    |---cur_state:		0
-
-/sys/class/hwmon:
-
-|hwmon0:
-    |---name:			acpitz
-    |---temp1_input:		37000
-    |---temp1_crit:		100000