forked from Minki/linux
cf583b4275
The dual tachometer feature is implemented in hardware with a TACHSEL input to indicate the rotor under measurement, and exposed on the device by extending the READ_FAN_SPEED_1 word with two extra bytes*. The need to read the non-standard four-byte response leads to a cut-down implementation of i2c_smbus_xfer_emulated() included in the driver. Further, to expose the second rotor tachometer value to userspace the values are exposed through virtual pages. We re-route accesses to FAN_CONFIG_1_2 and READ_FAN_SPEED_1 on pages 23-28 (not defined by the hardware) to the same registers on pages 0-5, and with the latter command we extract the value from the second word of the four-byte response. * The documentation recommends the slower rotor be associated with TACHSEL=0, which corresponds to the first word of the response. The TACHSEL=0 measurement is used by the controller's closed-loop fan management to judge target fan rate. Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Signed-off-by: Guenter Roeck <linux@roeck-us.net> |
||
---|---|---|
.. | ||
adm1275.c | ||
ibm-cffps.c | ||
ir35221.c | ||
Kconfig | ||
lm25066.c | ||
ltc2978.c | ||
ltc3815.c | ||
Makefile | ||
max8688.c | ||
max16064.c | ||
max20751.c | ||
max31785.c | ||
max34440.c | ||
pmbus_core.c | ||
pmbus.c | ||
pmbus.h | ||
tps40422.c | ||
tps53679.c | ||
ucd9000.c | ||
ucd9200.c | ||
zl6100.c |