^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) Naming and data format standards for sysfs files
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) ================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) The libsensors library offers an interface to the raw sensors data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) through the sysfs interface. Since lm-sensors 3.0.0, libsensors is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) completely chip-independent. It assumes that all the kernel drivers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) implement the standard sysfs interface described in this document.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) This makes adding or updating support for any given chip very easy, as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) libsensors, and applications using it, do not need to be modified.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) This is a major improvement compared to lm-sensors 2.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) Note that motherboards vary widely in the connections to sensor chips.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) There is no standard that ensures, for example, that the second
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) temperature sensor is connected to the CPU, or that the second fan is on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) the CPU. Also, some values reported by the chips need some computation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) before they make full sense. For example, most chips can only measure
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) voltages between 0 and +4V. Other voltages are scaled back into that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) range using external resistors. Since the values of these resistors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) can change from motherboard to motherboard, the conversions cannot be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) hard coded into the driver and have to be done in user space.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) For this reason, even if we aim at a chip-independent libsensors, it will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) still require a configuration file (e.g. /etc/sensors.conf) for proper
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) values conversion, labeling of inputs and hiding of unused inputs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) An alternative method that some programs use is to access the sysfs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) files directly. This document briefly describes the standards that the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) drivers follow, so that an application program can scan for entries and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) access this data in a simple and consistent way. That said, such programs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) will have to implement conversion, labeling and hiding of inputs. For
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) this reason, it is still not recommended to bypass the library.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) Each chip gets its own directory in the sysfs /sys/devices tree. To
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) find all sensor chips, it is easier to follow the device symlinks from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) `/sys/class/hwmon/hwmon*`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) Up to lm-sensors 3.0.0, libsensors looks for hardware monitoring attributes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) in the "physical" device directory. Since lm-sensors 3.0.1, attributes found
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) in the hwmon "class" device directory are also supported. Complex drivers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) (e.g. drivers for multifunction chips) may want to use this possibility to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) avoid namespace pollution. The only drawback will be that older versions of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) libsensors won't support the driver in question.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) All sysfs values are fixed point numbers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) There is only one value per file, unlike the older /proc specification.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) The common scheme for files naming is: <type><number>_<item>. Usual
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) types for sensor chips are "in" (voltage), "temp" (temperature) and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) "fan" (fan). Usual items are "input" (measured value), "max" (high
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) threshold, "min" (low threshold). Numbering usually starts from 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) except for voltages which start from 0 (because most data sheets use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) this). A number is always used for elements that can be present more
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) than once, even if there is a single element of the given type on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) specific chip. Other files do not refer to a specific element, so
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) they have a simple name, and no number.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) Alarms are direct indications read from the chips. The drivers do NOT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) make comparisons of readings to thresholds. This allows violations
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) between readings to be caught and alarmed. The exact definition of an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) alarm (for example, whether a threshold must be met or must be exceeded
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) to cause an alarm) is chip-dependent.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) When setting values of hwmon sysfs attributes, the string representation of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) the desired value must be written, note that strings which are not a number
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) are interpreted as 0! For more on how written strings are interpreted see the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) "sysfs attribute writes interpretation" section at the end of this file.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) ======= ===========================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) `[0-*]` denotes any positive number starting from 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) `[1-*]` denotes any positive number starting from 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) RO read only value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) WO write only value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) RW read/write value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) ======= ===========================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) Read/write values may be read-only for some chips, depending on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) hardware implementation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) All entries (except name) are optional, and should only be created in a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) given driver if the chip has the feature.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) *****************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) Global attributes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) *****************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) `name`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) The chip name.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) This should be a short, lowercase string, not containing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) whitespace, dashes, or the wildcard character '*'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) This attribute represents the chip name. It is the only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) mandatory attribute.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) I2C devices get this attribute created automatically.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) `update_interval`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) The interval at which the chip will update readings.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) Unit: millisecond
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) Some devices have a variable update rate or interval.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) This attribute can be used to change it to the desired value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) ********
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) Voltages
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) ********
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) `in[0-*]_min`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) Voltage min value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) Unit: millivolt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) `in[0-*]_lcrit`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) Voltage critical min value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) Unit: millivolt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) If voltage drops to or below this limit, the system may
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) take drastic action such as power down or reset. At the very
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) least, it should report a fault.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) `in[0-*]_max`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) Voltage max value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) Unit: millivolt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) `in[0-*]_crit`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) Voltage critical max value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) Unit: millivolt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) If voltage reaches or exceeds this limit, the system may
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) take drastic action such as power down or reset. At the very
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) least, it should report a fault.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) `in[0-*]_input`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) Voltage input value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) Unit: millivolt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) Voltage measured on the chip pin.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) Actual voltage depends on the scaling resistors on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) motherboard, as recommended in the chip datasheet.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) This varies by chip and by motherboard.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) Because of this variation, values are generally NOT scaled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) by the chip driver, and must be done by the application.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) However, some drivers (notably lm87 and via686a)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) do scale, because of internal resistors built into a chip.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) These drivers will output the actual voltage. Rule of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) thumb: drivers should report the voltage values at the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) "pins" of the chip.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) `in[0-*]_average`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) Average voltage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) Unit: millivolt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) `in[0-*]_lowest`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) Historical minimum voltage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) Unit: millivolt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) `in[0-*]_highest`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) Historical maximum voltage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) Unit: millivolt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) `in[0-*]_reset_history`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) Reset inX_lowest and inX_highest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) WO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) `in_reset_history`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) Reset inX_lowest and inX_highest for all sensors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) WO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) `in[0-*]_label`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) Suggested voltage channel label.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) Text string
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) Should only be created if the driver has hints about what
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) this voltage channel is being used for, and user-space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) doesn't. In all other cases, the label is provided by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) user-space.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) `in[0-*]_enable`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) Enable or disable the sensors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) When disabled the sensor read will return -ENODATA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) - 1: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) - 0: Disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) `cpu[0-*]_vid`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) CPU core reference voltage.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) Unit: millivolt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) Not always correct.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) `vrm`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) Voltage Regulator Module version number.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) RW (but changing it should no more be necessary)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) Originally the VRM standard version multiplied by 10, but now
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) an arbitrary number, as not all standards have a version
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) number.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) Affects the way the driver calculates the CPU core reference
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) voltage from the vid pins.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) `in[0-*]_rated_min`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) Minimum rated voltage.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) Unit: millivolt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) `in[0-*]_rated_max`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) Maximum rated voltage.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) Unit: millivolt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) Also see the Alarms section for status flags associated with voltages.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) ****
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) Fans
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) ****
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) `fan[1-*]_min`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) Fan minimum value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) Unit: revolution/min (RPM)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) `fan[1-*]_max`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) Fan maximum value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) Unit: revolution/min (RPM)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) Only rarely supported by the hardware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) `fan[1-*]_input`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) Fan input value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) Unit: revolution/min (RPM)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) `fan[1-*]_div`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) Fan divisor.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) Integer value in powers of two (1, 2, 4, 8, 16, 32, 64, 128).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) Some chips only support values 1, 2, 4 and 8.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) Note that this is actually an internal clock divisor, which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) affects the measurable speed range, not the read value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) `fan[1-*]_pulses`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) Number of tachometer pulses per fan revolution.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) Integer value, typically between 1 and 4.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) This value is a characteristic of the fan connected to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) device's input, so it has to be set in accordance with the fan
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) model.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) Should only be created if the chip has a register to configure
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) the number of pulses. In the absence of such a register (and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) thus attribute) the value assumed by all devices is 2 pulses
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) per fan revolution.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) `fan[1-*]_target`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) Desired fan speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) Unit: revolution/min (RPM)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) Only makes sense if the chip supports closed-loop fan speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) control based on the measured fan speed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) `fan[1-*]_label`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) Suggested fan channel label.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) Text string
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) Should only be created if the driver has hints about what
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) this fan channel is being used for, and user-space doesn't.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) In all other cases, the label is provided by user-space.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) `fan[1-*]_enable`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) Enable or disable the sensors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) When disabled the sensor read will return -ENODATA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) - 1: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) - 0: Disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) Also see the Alarms section for status flags associated with fans.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) ***
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) PWM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) ***
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) `pwm[1-*]`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) Pulse width modulation fan control.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) Integer value in the range 0 to 255
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) 255 is max or 100%.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) `pwm[1-*]_enable`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) Fan speed control method:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) - 0: no fan speed control (i.e. fan at full speed)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) - 1: manual fan speed control enabled (using `pwm[1-*]`)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) - 2+: automatic fan speed control enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) Check individual chip documentation files for automatic mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) `pwm[1-*]_mode`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) - 0: DC mode (direct current)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) - 1: PWM mode (pulse-width modulation)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) `pwm[1-*]_freq`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) Base PWM frequency in Hz.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) Only possibly available when pwmN_mode is PWM, but not always
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) present even then.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) `pwm[1-*]_auto_channels_temp`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) Select which temperature channels affect this PWM output in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) auto mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) Bitfield, 1 is temp1, 2 is temp2, 4 is temp3 etc...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) Which values are possible depend on the chip used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) `pwm[1-*]_auto_point[1-*]_pwm` / `pwm[1-*]_auto_point[1-*]_temp` / `pwm[1-*]_auto_point[1-*]_temp_hyst`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) Define the PWM vs temperature curve.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) Number of trip points is chip-dependent. Use this for chips
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) which associate trip points to PWM output channels.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) `temp[1-*]_auto_point[1-*]_pwm` / `temp[1-*]_auto_point[1-*]_temp` / `temp[1-*]_auto_point[1-*]_temp_hyst`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) Define the PWM vs temperature curve.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) Number of trip points is chip-dependent. Use this for chips
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) which associate trip points to temperature channels.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) There is a third case where trip points are associated to both PWM output
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) channels and temperature channels: the PWM values are associated to PWM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) output channels while the temperature values are associated to temperature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) channels. In that case, the result is determined by the mapping between
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) temperature inputs and PWM outputs. When several temperature inputs are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) mapped to a given PWM output, this leads to several candidate PWM values.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) The actual result is up to the chip, but in general the highest candidate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) value (fastest fan speed) wins.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) ************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) Temperatures
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) ************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) `temp[1-*]_type`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) Sensor type selection.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) Integers 1 to 6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) - 1: CPU embedded diode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) - 2: 3904 transistor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) - 3: thermal diode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) - 4: thermistor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) - 5: AMD AMDSI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) - 6: Intel PECI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) Not all types are supported by all chips
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) `temp[1-*]_max`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) Temperature max value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) Unit: millidegree Celsius (or millivolt, see below)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) `temp[1-*]_min`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) Temperature min value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) Unit: millidegree Celsius
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) `temp[1-*]_max_hyst`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) Temperature hysteresis value for max limit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) Unit: millidegree Celsius
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) Must be reported as an absolute temperature, NOT a delta
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) from the max value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) `temp[1-*]_min_hyst`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) Temperature hysteresis value for min limit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) Unit: millidegree Celsius
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) Must be reported as an absolute temperature, NOT a delta
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) from the min value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) `temp[1-*]_input`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) Temperature input value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) Unit: millidegree Celsius
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) `temp[1-*]_crit`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) Temperature critical max value, typically greater than
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) corresponding temp_max values.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) Unit: millidegree Celsius
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) `temp[1-*]_crit_hyst`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) Temperature hysteresis value for critical limit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) Unit: millidegree Celsius
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) Must be reported as an absolute temperature, NOT a delta
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) from the critical value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) `temp[1-*]_emergency`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) Temperature emergency max value, for chips supporting more than
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) two upper temperature limits. Must be equal or greater than
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) corresponding temp_crit values.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) Unit: millidegree Celsius
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) `temp[1-*]_emergency_hyst`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) Temperature hysteresis value for emergency limit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) Unit: millidegree Celsius
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) Must be reported as an absolute temperature, NOT a delta
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) from the emergency value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) `temp[1-*]_lcrit`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) Temperature critical min value, typically lower than
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) corresponding temp_min values.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) Unit: millidegree Celsius
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) `temp[1-*]_lcrit_hyst`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) Temperature hysteresis value for critical min limit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) Unit: millidegree Celsius
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) Must be reported as an absolute temperature, NOT a delta
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) from the critical min value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) `temp[1-*]_offset`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) Temperature offset which is added to the temperature reading
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) by the chip.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) Unit: millidegree Celsius
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) Read/Write value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) `temp[1-*]_label`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) Suggested temperature channel label.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) Text string
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) Should only be created if the driver has hints about what
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) this temperature channel is being used for, and user-space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) doesn't. In all other cases, the label is provided by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) user-space.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) `temp[1-*]_lowest`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) Historical minimum temperature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) Unit: millidegree Celsius
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) `temp[1-*]_highest`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) Historical maximum temperature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) Unit: millidegree Celsius
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) `temp[1-*]_reset_history`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) Reset temp_lowest and temp_highest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) WO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) `temp_reset_history`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) Reset temp_lowest and temp_highest for all sensors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) WO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581) `temp[1-*]_enable`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) Enable or disable the sensors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) When disabled the sensor read will return -ENODATA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) - 1: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) - 0: Disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) `temp[1-*]_rated_min`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) Minimum rated temperature.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) Unit: millidegree Celsius
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) `temp[1-*]_rated_max`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) Maximum rated temperature.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) Unit: millidegree Celsius
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) Some chips measure temperature using external thermistors and an ADC, and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) report the temperature measurement as a voltage. Converting this voltage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) back to a temperature (or the other way around for limits) requires
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) mathematical functions not available in the kernel, so the conversion
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) must occur in user space. For these chips, all temp* files described
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) above should contain values expressed in millivolt instead of millidegree
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) Celsius. In other words, such temperature channels are handled as voltage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) channels by the driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) Also see the Alarms section for status flags associated with temperatures.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) ********
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) Currents
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) ********
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) `curr[1-*]_max`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622) Current max value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) Unit: milliampere
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) `curr[1-*]_min`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629) Current min value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) Unit: milliampere
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) `curr[1-*]_lcrit`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636) Current critical low value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) Unit: milliampere
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642) `curr[1-*]_crit`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643) Current critical high value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645) Unit: milliampere
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) `curr[1-*]_input`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) Current input value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652) Unit: milliampere
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656) `curr[1-*]_average`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) Average current use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) Unit: milliampere
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663) `curr[1-*]_lowest`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664) Historical minimum current
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666) Unit: milliampere
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670) `curr[1-*]_highest`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671) Historical maximum current
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672) Unit: milliampere
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675) `curr[1-*]_reset_history`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676) Reset currX_lowest and currX_highest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678) WO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680) `curr_reset_history`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681) Reset currX_lowest and currX_highest for all sensors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683) WO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685) `curr[1-*]_enable`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686) Enable or disable the sensors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688) When disabled the sensor read will return -ENODATA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690) - 1: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691) - 0: Disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695) `curr[1-*]_rated_min`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696) Minimum rated current.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698) Unit: milliampere
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702) `curr[1-*]_rated_max`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703) Maximum rated current.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705) Unit: milliampere
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709) Also see the Alarms section for status flags associated with currents.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711) *****
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712) Power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713) *****
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715) `power[1-*]_average`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716) Average power use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718) Unit: microWatt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722) `power[1-*]_average_interval`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723) Power use averaging interval. A poll
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 724) notification is sent to this file if the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 725) hardware changes the averaging interval.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 726)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 727) Unit: milliseconds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 728)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 729) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 730)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 731) `power[1-*]_average_interval_max`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 732) Maximum power use averaging interval
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 733)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 734) Unit: milliseconds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 735)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 736) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 737)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 738) `power[1-*]_average_interval_min`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 739) Minimum power use averaging interval
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 740)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 741) Unit: milliseconds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 742)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 743) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 744)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 745) `power[1-*]_average_highest`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 746) Historical average maximum power use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 747)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 748) Unit: microWatt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 749)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 750) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 751)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 752) `power[1-*]_average_lowest`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 753) Historical average minimum power use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 754)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 755) Unit: microWatt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 756)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 757) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 758)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 759) `power[1-*]_average_max`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 760) A poll notification is sent to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 761) `power[1-*]_average` when power use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 762) rises above this value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 763)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 764) Unit: microWatt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 765)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 766) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 767)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 768) `power[1-*]_average_min`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 769) A poll notification is sent to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 770) `power[1-*]_average` when power use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 771) sinks below this value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 772)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 773) Unit: microWatt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 774)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 775) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 776)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 777) `power[1-*]_input`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 778) Instantaneous power use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 779)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 780) Unit: microWatt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 781)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 782) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 783)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 784) `power[1-*]_input_highest`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 785) Historical maximum power use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 786)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 787) Unit: microWatt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 788)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 789) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 790)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 791) `power[1-*]_input_lowest`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 792) Historical minimum power use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 793)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 794) Unit: microWatt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 795)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 796) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 797)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 798) `power[1-*]_reset_history`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 799) Reset input_highest, input_lowest,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 800) average_highest and average_lowest.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 801)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 802) WO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 803)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 804) `power[1-*]_accuracy`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 805) Accuracy of the power meter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 806)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 807) Unit: Percent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 808)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 809) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 810)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 811) `power[1-*]_cap`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 812) If power use rises above this limit, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 813) system should take action to reduce power use.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 814) A poll notification is sent to this file if the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 815) cap is changed by the hardware. The `*_cap`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 816) files only appear if the cap is known to be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 817) enforced by hardware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 818)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 819) Unit: microWatt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 820)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 821) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 822)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 823) `power[1-*]_cap_hyst`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 824) Margin of hysteresis built around capping and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 825) notification.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 826)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 827) Unit: microWatt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 828)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 829) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 830)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 831) `power[1-*]_cap_max`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 832) Maximum cap that can be set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 833)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 834) Unit: microWatt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 835)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 836) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 837)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 838) `power[1-*]_cap_min`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 839) Minimum cap that can be set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 840)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 841) Unit: microWatt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 842)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 843) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 844)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 845) `power[1-*]_max`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 846) Maximum power.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 847)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 848) Unit: microWatt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 849)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 850) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 851)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 852) `power[1-*]_crit`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 853) Critical maximum power.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 854)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 855) If power rises to or above this limit, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 856) system is expected take drastic action to reduce
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 857) power consumption, such as a system shutdown or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 858) a forced powerdown of some devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 859)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 860) Unit: microWatt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 861)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 862) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 863)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 864) `power[1-*]_enable`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 865) Enable or disable the sensors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 866)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 867) When disabled the sensor read will return
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 868) -ENODATA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 869)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 870) - 1: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 871) - 0: Disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 872)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 873) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 874)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 875) `power[1-*]_rated_min`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 876) Minimum rated power.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 877)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 878) Unit: microWatt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 879)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 880) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 881)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 882) `power[1-*]_rated_max`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 883) Maximum rated power.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 884)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 885) Unit: microWatt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 886)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 887) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 888)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 889) Also see the Alarms section for status flags associated with power readings.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 890)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 891) ******
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 892) Energy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 893) ******
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 894)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 895) `energy[1-*]_input`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 896) Cumulative energy use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 897)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 898) Unit: microJoule
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 899)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 900) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 901)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 902) `energy[1-*]_enable`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 903) Enable or disable the sensors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 904)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 905) When disabled the sensor read will return
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 906) -ENODATA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 907)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 908) - 1: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 909) - 0: Disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 910)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 911) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 912)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 913) ********
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 914) Humidity
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 915) ********
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 916)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 917) `humidity[1-*]_input`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 918) Humidity
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 919)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 920) Unit: milli-percent (per cent mille, pcm)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 921)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 922) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 923)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 924)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 925) `humidity[1-*]_enable`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 926) Enable or disable the sensors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 927)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 928) When disabled the sensor read will return
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 929) -ENODATA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 930)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 931) - 1: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 932) - 0: Disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 933)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 934) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 935)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 936) `humidity[1-*]_rated_min`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 937) Minimum rated humidity.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 938)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 939) Unit: milli-percent (per cent mille, pcm)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 940)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 941) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 942)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 943) `humidity[1-*]_rated_max`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 944) Maximum rated humidity.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 945)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 946) Unit: milli-percent (per cent mille, pcm)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 947)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 948) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 949)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 950) ******
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 951) Alarms
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 952) ******
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 953)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 954) Each channel or limit may have an associated alarm file, containing a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 955) boolean value. 1 means than an alarm condition exists, 0 means no alarm.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 956)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 957) Usually a given chip will either use channel-related alarms, or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 958) limit-related alarms, not both. The driver should just reflect the hardware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 959) implementation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 960)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 961) +-------------------------------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 962) | **`in[0-*]_alarm`, | Channel alarm |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 963) | `curr[1-*]_alarm`, | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 964) | `power[1-*]_alarm`, | - 0: no alarm |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 965) | `fan[1-*]_alarm`, | - 1: alarm |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 966) | `temp[1-*]_alarm`** | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 967) | | RO |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 968) +-------------------------------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 969)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 970) **OR**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 971)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 972) +-------------------------------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 973) | **`in[0-*]_min_alarm`, | Limit alarm |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 974) | `in[0-*]_max_alarm`, | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 975) | `in[0-*]_lcrit_alarm`, | - 0: no alarm |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 976) | `in[0-*]_crit_alarm`, | - 1: alarm |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 977) | `curr[1-*]_min_alarm`, | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 978) | `curr[1-*]_max_alarm`, | RO |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 979) | `curr[1-*]_lcrit_alarm`, | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 980) | `curr[1-*]_crit_alarm`, | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 981) | `power[1-*]_cap_alarm`, | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 982) | `power[1-*]_max_alarm`, | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 983) | `power[1-*]_crit_alarm`, | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 984) | `fan[1-*]_min_alarm`, | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 985) | `fan[1-*]_max_alarm`, | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 986) | `temp[1-*]_min_alarm`, | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 987) | `temp[1-*]_max_alarm`, | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 988) | `temp[1-*]_lcrit_alarm`, | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 989) | `temp[1-*]_crit_alarm`, | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 990) | `temp[1-*]_emergency_alarm`** | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 991) +-------------------------------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 992)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 993) Each input channel may have an associated fault file. This can be used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 994) to notify open diodes, unconnected fans etc. where the hardware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 995) supports it. When this boolean has value 1, the measurement for that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 996) channel should not be trusted.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 997)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 998) `fan[1-*]_fault` / `temp[1-*]_fault`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 999) Input fault condition
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1001) - 0: no fault occurred
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1002) - 1: fault condition
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1003)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1004) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1005)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1006) Some chips also offer the possibility to get beeped when an alarm occurs:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1007)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1008) `beep_enable`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1009) Master beep enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1010)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1011) - 0: no beeps
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1012) - 1: beeps
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1013)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1014) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1015)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1016) `in[0-*]_beep`, `curr[1-*]_beep`, `fan[1-*]_beep`, `temp[1-*]_beep`,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1017) Channel beep
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1018)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1019) - 0: disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1020) - 1: enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1021)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1022) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1023)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1024) In theory, a chip could provide per-limit beep masking, but no such chip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1025) was seen so far.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1026)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1027) Old drivers provided a different, non-standard interface to alarms and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1028) beeps. These interface files are deprecated, but will be kept around
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1029) for compatibility reasons:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1030)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1031) `alarms`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1032) Alarm bitmask.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1033)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1034) RO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1035)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1036) Integer representation of one to four bytes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1037)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1038) A '1' bit means an alarm.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1039)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1040) Chips should be programmed for 'comparator' mode so that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1041) the alarm will 'come back' after you read the register
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1042) if it is still valid.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1043)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1044) Generally a direct representation of a chip's internal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1045) alarm registers; there is no standard for the position
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1046) of individual bits. For this reason, the use of this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1047) interface file for new drivers is discouraged. Use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1048) `individual *_alarm` and `*_fault` files instead.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1049) Bits are defined in kernel/include/sensors.h.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1050)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1051) `beep_mask`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1052) Bitmask for beep.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1053) Same format as 'alarms' with the same bit locations,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1054) use discouraged for the same reason. Use individual
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1055) `*_beep` files instead.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1056) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1057)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1058)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1059) *******************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1060) Intrusion detection
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1061) *******************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1062)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1063) `intrusion[0-*]_alarm`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1064) Chassis intrusion detection
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1065)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1066) - 0: OK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1067) - 1: intrusion detected
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1068)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1069) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1070)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1071) Contrary to regular alarm flags which clear themselves
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1072) automatically when read, this one sticks until cleared by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1073) the user. This is done by writing 0 to the file. Writing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1074) other values is unsupported.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1075)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1076) `intrusion[0-*]_beep`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1077) Chassis intrusion beep
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1078)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1079) 0: disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1080) 1: enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1081)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1082) RW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1083)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1084) ****************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1085) Average sample configuration
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1086) ****************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1087)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1088) Devices allowing for reading {in,power,curr,temp}_average values may export
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1089) attributes for controlling number of samples used to compute average.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1090)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1091) +--------------+---------------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1092) | samples | Sets number of average samples for all types of measurements. |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1093) | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1094) | | RW |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1095) +--------------+---------------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1096) | in_samples | Sets number of average samples for specific type of |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1097) | power_samples| measurements. |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1098) | curr_samples | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1099) | temp_samples | Note that on some devices it won't be possible to set all of |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1100) | | them to different values so changing one might also change |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1101) | | some others. |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1102) | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1103) | | RW |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1104) +--------------+---------------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1105)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1106) sysfs attribute writes interpretation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1107) -------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1109) hwmon sysfs attributes always contain numbers, so the first thing to do is to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1110) convert the input to a number, there are 2 ways todo this depending whether
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1111) the number can be negative or not::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1113) unsigned long u = simple_strtoul(buf, NULL, 10);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1114) long s = simple_strtol(buf, NULL, 10);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1115)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1116) With buf being the buffer with the user input being passed by the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1117) Notice that we do not use the second argument of strto[u]l, and thus cannot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1118) tell when 0 is returned, if this was really 0 or is caused by invalid input.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1119) This is done deliberately as checking this everywhere would add a lot of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1120) code to the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1121)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1122) Notice that it is important to always store the converted value in an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1123) unsigned long or long, so that no wrap around can happen before any further
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1124) checking.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1125)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1126) After the input string is converted to an (unsigned) long, the value should be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1127) checked if its acceptable. Be careful with further conversions on the value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1128) before checking it for validity, as these conversions could still cause a wrap
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1129) around before the check. For example do not multiply the result, and only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1130) add/subtract if it has been divided before the add/subtract.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1131)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1132) What to do if a value is found to be invalid, depends on the type of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1133) sysfs attribute that is being set. If it is a continuous setting like a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1134) tempX_max or inX_max attribute, then the value should be clamped to its
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1135) limits using clamp_val(value, min_limit, max_limit). If it is not continuous
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1136) like for example a tempX_type, then when an invalid value is written,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1137) -EINVAL should be returned.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1138)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1139) Example1, temp1_max, register is a signed 8 bit value (-128 - 127 degrees)::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1141) long v = simple_strtol(buf, NULL, 10) / 1000;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1142) v = clamp_val(v, -128, 127);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1143) /* write v to register */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1144)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1145) Example2, fan divider setting, valid values 2, 4 and 8::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1146)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1147) unsigned long v = simple_strtoul(buf, NULL, 10);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1148)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1149) switch (v) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1150) case 2: v = 1; break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1151) case 4: v = 2; break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1152) case 8: v = 3; break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1153) default:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1154) return -EINVAL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1155) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1156) /* write v to register */