Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^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 */