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) Kernel driver dme1737
^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) Supported chips:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)   * SMSC DME1737 and compatibles (like Asus A8000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)     Prefix: 'dme1737'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10)     Addresses scanned: I2C 0x2c, 0x2d, 0x2e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12)     Datasheet: Provided by SMSC upon request and under NDA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14)   * SMSC SCH3112, SCH3114, SCH3116
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16)     Prefix: 'sch311x'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18)     Addresses scanned: none, address read from Super-I/O config space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20)     Datasheet: Available on the Internet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22)   * SMSC SCH5027
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24)     Prefix: 'sch5027'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26)     Addresses scanned: I2C 0x2c, 0x2d, 0x2e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28)     Datasheet: Provided by SMSC upon request and under NDA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30)   * SMSC SCH5127
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32)     Prefix: 'sch5127'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34)     Addresses scanned: none, address read from Super-I/O config space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36)     Datasheet: Provided by SMSC upon request and under NDA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) Authors:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39)     Juerg Haefliger <juergh@gmail.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) Module Parameters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) -----------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) * force_start: bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 			Enables the monitoring of voltage, fan and temp inputs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 			and PWM output control functions. Using this parameter
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 			shouldn't be required since the BIOS usually takes care
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 			of this.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) * probe_all_addr: bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 			Include non-standard LPC addresses 0x162e and 0x164e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 			when probing for ISA devices. This is required for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 			following boards:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 			- VIA EPIA SN18000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) This driver implements support for the hardware monitoring capabilities of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) SMSC DME1737 and Asus A8000 (which are the same), SMSC SCH5027, SCH311x,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) and SCH5127 Super-I/O chips. These chips feature monitoring of 3 temp sensors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) temp[1-3] (2 remote diodes and 1 internal), 8 voltages in[0-7] (7 external and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 1 internal) and up to 6 fan speeds fan[1-6]. Additionally, the chips implement
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) up to 5 PWM outputs pwm[1-3,5-6] for controlling fan speeds both manually and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) automatically.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) For the DME1737, A8000 and SCH5027, fan[1-2] and pwm[1-2] are always present.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) Fan[3-6] and pwm[3,5-6] are optional features and their availability depends on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) the configuration of the chip. The driver will detect which features are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) present during initialization and create the sysfs attributes accordingly.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) For the SCH311x and SCH5127, fan[1-3] and pwm[1-3] are always present and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) fan[4-6] and pwm[5-6] don't exist.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) The hardware monitoring features of the DME1737, A8000, and SCH5027 are only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) accessible via SMBus, while the SCH311x and SCH5127 only provide access via
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) the ISA bus. The driver will therefore register itself as an I2C client driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) if it detects a DME1737, A8000, or SCH5027 and as a platform driver if it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) detects a SCH311x or SCH5127 chip.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) Voltage Monitoring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) ------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) The voltage inputs are sampled with 12-bit resolution and have internal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) scaling resistors. The values returned by the driver therefore reflect true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) millivolts and don't need scaling. The voltage inputs are mapped as follows
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) (the last column indicates the input ranges):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) DME1737, A8000::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 	in0: +5VTR	(+5V standby)		0V - 6.64V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 	in1: Vccp	(processor core)	0V - 3V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 	in2: VCC	(internal +3.3V)	0V - 4.38V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 	in3: +5V				0V - 6.64V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	in4: +12V				0V - 16V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	in5: VTR	(+3.3V standby)		0V - 4.38V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 	in6: Vbat	(+3.0V)			0V - 4.38V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) SCH311x::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 	in0: +2.5V				0V - 3.32V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 	in1: Vccp	(processor core)	0V - 2V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 	in2: VCC	(internal +3.3V)	0V - 4.38V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 	in3: +5V				0V - 6.64V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 	in4: +12V				0V - 16V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 	in5: VTR	(+3.3V standby)		0V - 4.38V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 	in6: Vbat	(+3.0V)			0V - 4.38V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) SCH5027::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 	in0: +5VTR	(+5V standby)		0V - 6.64V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 	in1: Vccp	(processor core)	0V - 3V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 	in2: VCC	(internal +3.3V)	0V - 4.38V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 	in3: V2_IN				0V - 1.5V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 	in4: V1_IN				0V - 1.5V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 	in5: VTR	(+3.3V standby)		0V - 4.38V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 	in6: Vbat	(+3.0V)			0V - 4.38V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) SCH5127::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 	in0: +2.5				0V - 3.32V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 	in1: Vccp	(processor core)	0V - 3V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 	in2: VCC	(internal +3.3V)	0V - 4.38V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 	in3: V2_IN				0V - 1.5V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 	in4: V1_IN				0V - 1.5V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 	in5: VTR	(+3.3V standby)		0V - 4.38V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 	in6: Vbat	(+3.0V)			0V - 4.38V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 	in7: Vtrip	(+1.5V)			0V - 1.99V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) Each voltage input has associated min and max limits which trigger an alarm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) when crossed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) Temperature Monitoring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) ----------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) Temperatures are measured with 12-bit resolution and reported in millidegree
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) Celsius. The chip also features offsets for all 3 temperature inputs which -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) when programmed - get added to the input readings. The chip does all the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) scaling by itself and the driver therefore reports true temperatures that don't
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) need any user-space adjustments. The temperature inputs are mapped as follows
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) (the last column indicates the input ranges)::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 	temp1: Remote diode 1 (3904 type) temperature	-127C - +127C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 	temp2: DME1737 internal temperature		-127C - +127C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 	temp3: Remote diode 2 (3904 type) temperature	-127C - +127C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) Each temperature input has associated min and max limits which trigger an alarm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) when crossed. Additionally, each temperature input has a fault attribute that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) returns 1 when a faulty diode or an unconnected input is detected and 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) otherwise.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) Fan Monitoring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) --------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) Fan RPMs are measured with 16-bit resolution. The chip provides inputs for 6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) fan tachometers. All 6 inputs have an associated min limit which triggers an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) alarm when crossed. Fan inputs 1-4 provide type attributes that need to be set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) to the number of pulses per fan revolution that the connected tachometer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) generates. Supported values are 1, 2, and 4. Fan inputs 5-6 only support fans
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) that generate 2 pulses per revolution. Fan inputs 5-6 also provide a max
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) attribute that needs to be set to the maximum attainable RPM (fan at 100% duty-
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) cycle) of the input. The chip adjusts the sampling rate based on this value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) PWM Output Control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) ------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) This chip features 5 PWM outputs. PWM outputs 1-3 are associated with fan
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) inputs 1-3 and PWM outputs 5-6 are associated with fan inputs 5-6. PWM outputs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 1-3 can be configured to operate either in manual or automatic mode by setting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) the appropriate enable attribute accordingly. PWM outputs 5-6 can only operate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) in manual mode, their enable attributes are therefore read-only. When set to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) manual mode, the fan speed is set by writing the duty-cycle value to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) appropriate PWM attribute. In automatic mode, the PWM attribute returns the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) current duty-cycle as set by the fan controller in the chip. All PWM outputs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) support the setting of the output frequency via the freq attribute.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) In automatic mode, the chip supports the setting of the PWM ramp rate which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) defines how fast the PWM output is adjusting to changes of the associated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) temperature input. Associating PWM outputs to temperature inputs is done via
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) temperature zones. The chip features 3 zones whose assignments to temperature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) inputs is static and determined during initialization. These assignments can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) be retrieved via the zone[1-3]_auto_channels_temp attributes. Each PWM output
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) is assigned to one (or hottest of multiple) temperature zone(s) through the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) pwm[1-3]_auto_channels_zone attributes. Each PWM output has 3 distinct output
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) duty-cycles: full, low, and min. Full is internally hard-wired to 255 (100%)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) and low and min can be programmed via pwm[1-3]_auto_point1_pwm and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) pwm[1-3]_auto_pwm_min, respectively. The thermal thresholds of the zones are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) programmed via zone[1-3]_auto_point[1-3]_temp and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) zone[1-3]_auto_point1_temp_hyst:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) 	=============================== =======================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) 	pwm[1-3]_auto_point2_pwm	full-speed duty-cycle (255, i.e., 100%)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 	pwm[1-3]_auto_point1_pwm	low-speed duty-cycle
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 	pwm[1-3]_auto_pwm_min		min-speed duty-cycle
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) 	zone[1-3]_auto_point3_temp	full-speed temp (all outputs)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 	zone[1-3]_auto_point2_temp	full-speed temp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 	zone[1-3]_auto_point1_temp	low-speed temp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 	zone[1-3]_auto_point1_temp_hyst	min-speed temp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 	=============================== =======================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) The chip adjusts the output duty-cycle linearly in the range of auto_point1_pwm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) to auto_point2_pwm if the temperature of the associated zone is between
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) auto_point1_temp and auto_point2_temp. If the temperature drops below the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) auto_point1_temp_hyst value, the output duty-cycle is set to the auto_pwm_min
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) value which only supports two values: 0 or auto_point1_pwm. That means that the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) fan either turns completely off or keeps spinning with the low-speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) duty-cycle. If any of the temperatures rise above the auto_point3_temp value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) all PWM outputs are set to 100% duty-cycle.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) Following is another representation of how the chip sets the output duty-cycle
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) based on the temperature of the associated thermal zone:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) 	=============== =============== =================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 	Temperature	Duty-Cycle	Duty-Cycle
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) 			Rising Temp	Falling Temp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) 	=============== =============== =================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 	full-speed	full-speed	full-speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) 	-		< linearly	-
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 			adjusted
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) 			duty-cycle >
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) 	low-speed	low-speed	low-speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) 	-		min-speed	low-speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) 	min-speed	min-speed	min-speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) 	-		min-speed	min-speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) 	=============== =============== =================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) Sysfs Attributes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) ----------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) Following is a list of all sysfs attributes that the driver provides, their
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) permissions and a short description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) =============================== ======= =======================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) Name				Perm	Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) =============================== ======= =======================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) cpu0_vid			RO	CPU core reference voltage in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) 					millivolts.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) vrm				RW	Voltage regulator module version
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) 					number.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) in[0-7]_input			RO	Measured voltage in millivolts.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) in[0-7]_min			RW	Low limit for voltage input.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) in[0-7]_max			RW	High limit for voltage input.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) in[0-7]_alarm			RO	Voltage input alarm. Returns 1 if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) 					voltage input is or went outside the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) 					associated min-max range, 0 otherwise.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) temp[1-3]_input			RO	Measured temperature in millidegree
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) 					Celsius.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) temp[1-3]_min			RW	Low limit for temp input.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) temp[1-3]_max			RW	High limit for temp input.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) temp[1-3]_offset		RW	Offset for temp input. This value will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) 					be added by the chip to the measured
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) 					temperature.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) temp[1-3]_alarm			RO	Alarm for temp input. Returns 1 if temp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) 					input is or went outside the associated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) 					min-max range, 0 otherwise.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) temp[1-3]_fault			RO	Temp input fault. Returns 1 if the chip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) 					detects a faulty thermal diode or an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) 					unconnected temp input, 0 otherwise.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) zone[1-3]_auto_channels_temp	RO	Temperature zone to temperature input
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) 					mapping. This attribute is a bitfield
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) 					and supports the following values:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) 						- 1: temp1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) 						- 2: temp2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) 						- 4: temp3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) zone[1-3]_auto_point1_temp_hyst	RW	Auto PWM temp point1 hysteresis. The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) 					output of the corresponding PWM is set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) 					to the pwm_auto_min value if the temp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) 					falls below the auto_point1_temp_hyst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) 					value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) zone[1-3]_auto_point[1-3]_temp	RW	Auto PWM temp points. Auto_point1 is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) 					the low-speed temp, auto_point2 is the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) 					full-speed temp, and auto_point3 is the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) 					temp at which all PWM outputs are set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) 					to full-speed (100% duty-cycle).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) fan[1-6]_input			RO	Measured fan speed in RPM.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) fan[1-6]_min			RW	Low limit for fan input.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) fan[1-6]_alarm			RO	Alarm for fan input. Returns 1 if fan
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) 					input is or went below the associated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) 					min value, 0 otherwise.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) fan[1-4]_type			RW	Type of attached fan. Expressed in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) 					number of pulses per revolution that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) 					the fan generates. Supported values are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) 					1, 2, and 4.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) fan[5-6]_max			RW	Max attainable RPM at 100% duty-cycle.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) 					Required for chip to adjust the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) 					sampling rate accordingly.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) pmw[1-3,5-6]			RO/RW	Duty-cycle of PWM output. Supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) 					values are 0-255 (0%-100%). Only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) 					writeable if the associated PWM is in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) 					manual mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) pwm[1-3]_enable			RW	Enable of PWM outputs 1-3. Supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) 					values are:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) 						- 0: turned off (output @ 100%)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) 						- 1: manual mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) 						- 2: automatic mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) pwm[5-6]_enable			RO	Enable of PWM outputs 5-6. Always
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) 					returns 1 since these 2 outputs are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) 					hard-wired to manual mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) pmw[1-3,5-6]_freq		RW	Frequency of PWM output. Supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) 					values are in the range 11Hz-30000Hz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) 					(default is 25000Hz).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) pmw[1-3]_ramp_rate		RW	Ramp rate of PWM output. Determines how
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) 					fast the PWM duty-cycle will change
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) 					when the PWM is in automatic mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) 					Expressed in ms per PWM step. Supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) 					values are in the range 0ms-206ms
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) 					(default is 0, which means the duty-
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) 					cycle changes instantly).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) pwm[1-3]_auto_channels_zone	RW	PWM output to temperature zone mapping.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) 					This attribute is a bitfield and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) 					supports the following values:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) 						- 1: zone1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) 						- 2: zone2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) 						- 4: zone3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) 						- 6: highest of zone[2-3]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) 						- 7: highest of zone[1-3]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) pwm[1-3]_auto_pwm_min		RW	Auto PWM min pwm. Minimum PWM duty-
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) 					cycle. Supported values are 0 or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) 					auto_point1_pwm.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) pwm[1-3]_auto_point1_pwm	RW	Auto PWM pwm point. Auto_point1 is the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) 					low-speed duty-cycle.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) pwm[1-3]_auto_point2_pwm	RO	Auto PWM pwm point. Auto_point2 is the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) 					full-speed duty-cycle which is hard-
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) 					wired to 255 (100% duty-cycle).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) =============================== ======= =======================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) Chip Differences
^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) Feature			dme1737	sch311x	sch5027	sch5127
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) ======================= ======= ======= ======= =======
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) temp[1-3]_offset	yes	yes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) vid			yes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) zone3			yes	yes	yes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) zone[1-3]_hyst		yes	yes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) pwm min/off		yes	yes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) fan3			opt	yes	opt	yes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) pwm3			opt	yes	opt	yes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) fan4			opt		opt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) fan5			opt		opt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) pwm5			opt		opt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) fan6			opt		opt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) pwm6			opt		opt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) in7						yes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) ======================= ======= ======= ======= =======