• Andrew Jeffery's avatar
    hwmon: (pmbus/max31785) Add dual tachometer support · cf583b42
    Andrew Jeffery authored
    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: 's avatarAndrew Jeffery <andrew@aj.id.au>
    Signed-off-by: 's avatarGuenter Roeck <linux@roeck-us.net>
    cf583b42
Name
Last commit
Last update
..
ab8500 Loading commit data...
abituguru Loading commit data...
abituguru-datasheet Loading commit data...
abituguru3 Loading commit data...
abx500 Loading commit data...
acpi_power_meter Loading commit data...
ad7314 Loading commit data...
adc128d818 Loading commit data...
adm1021 Loading commit data...
adm1025 Loading commit data...
adm1026 Loading commit data...
adm1031 Loading commit data...
adm1275 Loading commit data...
adm9240 Loading commit data...
ads1015 Loading commit data...
ads7828 Loading commit data...
adt7410 Loading commit data...
adt7411 Loading commit data...
adt7462 Loading commit data...
adt7470 Loading commit data...
adt7475 Loading commit data...
amc6821 Loading commit data...
asb100 Loading commit data...
asc7621 Loading commit data...
aspeed-pwm-tacho Loading commit data...
coretemp Loading commit data...
da9052 Loading commit data...
da9055 Loading commit data...
dme1737 Loading commit data...
ds1621 Loading commit data...
ds620 Loading commit data...
emc1403 Loading commit data...
emc2103 Loading commit data...
emc6w201 Loading commit data...
f71805f Loading commit data...
f71882fg Loading commit data...
fam15h_power Loading commit data...
ftsteutates Loading commit data...
g760a Loading commit data...
g762 Loading commit data...
gl518sm Loading commit data...
hih6130 Loading commit data...
hwmon-kernel-api.txt Loading commit data...
ibm-cffps Loading commit data...
ibmaem Loading commit data...
ibmpowernv Loading commit data...
ina209 Loading commit data...
ina2xx Loading commit data...
ina3221 Loading commit data...
ir35221 Loading commit data...
it87 Loading commit data...
jc42 Loading commit data...
k10temp Loading commit data...
k8temp Loading commit data...
lineage-pem Loading commit data...
lm25066 Loading commit data...
lm63 Loading commit data...
lm70 Loading commit data...
lm73 Loading commit data...
lm75 Loading commit data...
lm77 Loading commit data...
lm78 Loading commit data...
lm80 Loading commit data...
lm83 Loading commit data...
lm85 Loading commit data...
lm87 Loading commit data...
lm90 Loading commit data...
lm92 Loading commit data...
lm93 Loading commit data...
lm95234 Loading commit data...
lm95245 Loading commit data...
ltc2945 Loading commit data...
ltc2978 Loading commit data...
ltc2990 Loading commit data...
ltc3815 Loading commit data...
ltc4151 Loading commit data...
ltc4215 Loading commit data...
ltc4245 Loading commit data...
ltc4260 Loading commit data...
ltc4261 Loading commit data...
max16064 Loading commit data...
max16065 Loading commit data...
max1619 Loading commit data...
max1668 Loading commit data...
max197 Loading commit data...
max20751 Loading commit data...
max31722 Loading commit data...
max31785 Loading commit data...
max31790 Loading commit data...
max34440 Loading commit data...
max6639 Loading commit data...
max6642 Loading commit data...
max6650 Loading commit data...
max6697 Loading commit data...
max8688 Loading commit data...
mc13783-adc Loading commit data...
mcp3021 Loading commit data...
menf21bmc Loading commit data...
nct6683 Loading commit data...
nct6775 Loading commit data...
nct7802 Loading commit data...
nct7904 Loading commit data...
nsa320 Loading commit data...
ntc_thermistor Loading commit data...
pc87360 Loading commit data...
pc87427 Loading commit data...
pcf8591 Loading commit data...
pmbus Loading commit data...
pmbus-core Loading commit data...
powr1220 Loading commit data...
pwm-fan Loading commit data...
sch5627 Loading commit data...
sch5636 Loading commit data...
scpi-hwmon Loading commit data...
sht15 Loading commit data...
sht21 Loading commit data...
sht3x Loading commit data...
shtc1 Loading commit data...
sis5595 Loading commit data...
smm665 Loading commit data...
smsc47b397 Loading commit data...
smsc47m1 Loading commit data...
smsc47m192 Loading commit data...
submitting-patches Loading commit data...
sysfs-interface Loading commit data...
tc654 Loading commit data...
tc74 Loading commit data...
thmc50 Loading commit data...
tmp102 Loading commit data...
tmp103 Loading commit data...
tmp108 Loading commit data...
tmp401 Loading commit data...
tmp421 Loading commit data...
tps40422 Loading commit data...
twl4030-madc-hwmon Loading commit data...
ucd9000 Loading commit data...
ucd9200 Loading commit data...
userspace-tools Loading commit data...
vexpress Loading commit data...
via686a Loading commit data...
vt1211 Loading commit data...
w83627ehf Loading commit data...
w83627hf Loading commit data...
w83773g Loading commit data...
w83781d Loading commit data...
w83791d Loading commit data...
w83792d Loading commit data...
w83793 Loading commit data...
w83795 Loading commit data...
w83l785ts Loading commit data...
w83l786ng Loading commit data...
wm831x Loading commit data...
wm8350 Loading commit data...
xgene-hwmon Loading commit data...
zl6100 Loading commit data...