linux/drivers/hwmon
Aleksandr Mezin 53e68c20ae hwmon: add driver for NZXT RGB&Fan Controller/Smart Device v2.
This driver implements monitoring and control of fans plugged into the
device. Besides typical speed monitoring and PWM duty cycle control,
voltage and current are reported for every fan.

The device also has 2 connectors for RGB LEDs, support for them isn't
implemented (mainly because there is no standardized sysfs interface).

Also, the device has a noise sensor, but the sensor seems to be completely
useless (and very imprecise), so support for it isn't implemented too.

The driver coexists with userspace tools that access the device through
hidraw interface with no known issues.

The driver has been tested on x86_64, built in and as a module.

Some changes/improvements were suggested by Jonas Malaco.

Signed-off-by: Aleksandr Mezin <mezin.alexander@gmail.com>
Link: https://lore.kernel.org/r/20211031033058.151014-1-mezin.alexander@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2021-12-26 15:02:07 -08:00
..
occ Merge branch 'akpm' (patches from Andrew) 2021-11-06 14:08:17 -07:00
pmbus hwmon: (pmbus) Add support for MPS Multi-phase mp5023 2021-12-26 15:02:06 -08:00
abituguru3.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
abituguru.c
acpi_power_meter.c hwmon: (acpi_power_meter) Use acpi_bus_get_acpi_device() 2021-10-16 22:41:25 -07:00
ad7314.c
ad7414.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
ad7418.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
adc128d818.c hwmon: Use kobj_to_dev() 2021-04-20 06:50:14 -07:00
adcxx.c
adm1021.c hwmon: (adm1021) Improve detection of LM84, MAX1617, and MAX1617A 2021-12-26 15:02:05 -08:00
adm1025.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
adm1026.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
adm1029.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
adm1031.c hwmon: (adm1031) Remove redundant assignment to variable range 2021-12-26 15:02:06 -08:00
adm1177.c hwmon: (adm1177) Fix kerneldoc attribute formatting 2020-12-02 17:42:23 -08:00
adm9240.c hwmon: (adm9240) Fix writes into inX_max attributes 2021-05-12 18:53:11 -07:00
ads7828.c hwmon: use simple i2c probe function (take 2) 2020-09-23 09:42:40 -07:00
ads7871.c
adt7x10.c hwmon: (adt7x10) Make adt7x10_remove() return void 2021-10-12 07:22:42 -07:00
adt7x10.h hwmon: (adt7x10) Make adt7x10_remove() return void 2021-10-12 07:22:42 -07:00
adt7310.c hwmon: (adt7x10) Make adt7x10_remove() return void 2021-10-12 07:22:42 -07:00
adt7410.c hwmon: (adt7x10) Make adt7x10_remove() return void 2021-10-12 07:22:42 -07:00
adt7411.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
adt7462.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
adt7470.c hwmon: (adt7470) Convert to devm_hwmon_device_register_with_info API 2021-08-27 14:24:14 -07:00
adt7475.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
aht10.c hwmon: (aht10) Unlock on error in aht10_read_values() 2021-01-27 17:44:19 -08:00
amc6821.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
applesmc.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
aquacomputer_d5next.c hwmon: add driver for Aquacomputer D5 Next 2021-08-28 08:53:30 -07:00
as370-hwmon.c
asb100.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
asc7621.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
aspeed-pwm-tacho.c hwmon: (aspeed-pwm-tacho) Switch to using the new API kobj_to_dev() 2021-01-27 17:44:18 -08:00
asus_atk0110.c
asus_wmi_ec_sensors.c hwmon: (asus_wmi_ec_sensors) fix array overflow 2021-12-26 15:02:06 -08:00
asus_wmi_sensors.c hwmon: (asus_wmi_sensors) fix an array overflow 2021-12-26 15:02:06 -08:00
atxp1.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
axi-fan-control.c hwmon: (axi-fan-control) Support temperature vs pwm points 2021-08-17 14:54:26 -07:00
bt1-pvt.c hwmon: (bt1-pvt) Remove redundant error printing in pvt_request_regs() 2021-06-17 04:21:45 -07:00
bt1-pvt.h hwmon: (bt1-pvt) Cache current update timeout 2020-10-04 08:40:10 -07:00
coretemp.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
corsair-cpro.c hwmon: (corsair-cpro) Fix fall-through warnings for Clang 2021-05-17 19:50:23 -05:00
corsair-psu.c hwmon: (corsair-psu) fix plain integer used as NULL pointer 2021-11-14 16:57:16 -08:00
da9052-hwmon.c hwmon: (da9052) Switch to using the new API kobj_to_dev() 2021-02-11 20:28:56 -08:00
da9055-hwmon.c
dell-smm-hwmon.c hwmon: (dell-smm) Unify i8k_ioctl() and i8k_ioctl_unlocked() 2021-12-26 15:02:06 -08:00
dme1737.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
drivetemp.c hwmon: drivetemp: fix typo temperatire => temperature 2020-12-02 17:42:23 -08:00
ds620.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
ds1621.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
emc6w201.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
emc1403.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
emc2103.c hwmon: (emc2103) use simple i2c probe 2020-09-23 09:42:40 -07:00
f71805f.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
f71882fg.c hwmon: (f71882fg) Add F81966 support 2021-12-26 15:02:05 -08:00
f75375s.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
fam15h_power.c hwmon: Replace deprecated CPU-hotplug functions. 2021-08-17 14:54:26 -07:00
fschmd.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
ftsteutates.c hwmon: (ftsteutates) Rudimentary typo fixes 2021-04-20 06:50:14 -07:00
g760a.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
g762.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
gl518sm.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
gl520sm.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
gpio-fan.c hwmon: (gpio-fan) Switch to using the new API kobj_to_dev() 2021-01-27 17:44:18 -08:00
gsc-hwmon.c hwmon: (gsc-hwmon) add fan sensor 2020-09-23 09:42:41 -07:00
hih6130.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
hwmon-vid.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
hwmon.c hwmon: Fix possible memleak in __hwmon_device_register() 2021-10-12 07:22:01 -07:00
i5k_amb.c
i5500_temp.c hwmon: (i5500_temp) Convert to devm_hwmon_device_register_with_info 2021-10-12 07:22:37 -07:00
ibmaem.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
ibmpex.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
ibmpowernv.c hwmon: (ibmpowernv) Silence strncpy() warning 2020-12-02 17:42:23 -08:00
iio_hwmon.c hwmon: (iio_hwmon) Drop bogus __refdata annotation 2020-12-11 07:42:27 -08:00
ina2xx.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
ina209.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
ina238.c hwmon: Driver for Texas Instruments INA238 2021-12-26 15:02:05 -08:00
ina3221.c hwmon: (ina3221) use CVRF only for single-shot conversion 2021-06-17 04:21:46 -07:00
intel-m10-bmc-hwmon.c hwmon: intel-m10-bmc-hwmon: add n5010 sensors 2021-08-17 14:54:25 -07:00
it87.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
jc42.c hwmon: (jc42) Add support for ONSEMI N34TS04 2021-12-26 15:02:05 -08:00
k8temp.c
k10temp.c hwmon: (k10temp) Support up to 12 CCDs on AMD Family of processors 2021-12-26 15:02:05 -08:00
Kconfig hwmon: add driver for NZXT RGB&Fan Controller/Smart Device v2. 2021-12-26 15:02:07 -08:00
lineage-pem.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
lm63.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
lm70.c hwmon: (lm70) Use SPI_MODE_X_MASK 2021-06-17 04:21:44 -07:00
lm73.c hwmon: (lm73) use simple i2c probe 2020-09-23 09:42:40 -07:00
lm75.c hwmon: (lm75) Add TI TMP1075 support 2021-06-17 04:21:44 -07:00
lm75.h
lm77.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
lm78.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
lm80.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
lm83.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
lm85.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
lm87.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
lm90.c hwmon: (lm90) Do not report 'busy' status bit as alarm 2021-12-12 16:22:53 -08:00
lm92.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
lm93.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
lm95234.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
lm95241.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
lm95245.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
lochnagar-hwmon.c
ltc2945.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
ltc2947-core.c hwmon: (ltc2947) Properly handle errors when looking for the external clock 2021-09-24 05:02:24 -07:00
ltc2947-i2c.c hwmon: (ltc2947) use simple i2c probe 2020-09-23 09:42:40 -07:00
ltc2947-spi.c
ltc2947.h
ltc2990.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
ltc2992.c hwmon: (ltc2992) Put fwnode in error case during ->probe() 2021-05-10 08:02:15 -07:00
ltc4151.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
ltc4215.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
ltc4222.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
ltc4245.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
ltc4260.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
ltc4261.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
ltq-cputemp.c
Makefile hwmon: add driver for NZXT RGB&Fan Controller/Smart Device v2. 2021-12-26 15:02:07 -08:00
max127.c hwmon: (max127) Add Maxim MAX127 hardware monitoring driver 2020-12-02 17:42:24 -08:00
max197.c
max1111.c
max1619.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
max1668.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
max6620.c hwmon: Add Maxim MAX6620 hardware monitoring driver 2021-10-12 07:22:37 -07:00
max6621.c hwmon: (max6621) Fix fall-through warnings for Clang 2021-05-17 19:50:37 -05:00
max6639.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
max6642.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
max6650.c hwmon: (max6650) Switch to using the new API kobj_to_dev() 2021-01-27 17:44:18 -08:00
max6697.c hwmon: Use kobj_to_dev() 2021-04-20 06:50:14 -07:00
max16065.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
max31722.c hwmon: (max31722) Warn about failure to put device in stand-by in .remove() 2021-10-16 22:42:14 -07:00
max31730.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
max31790.c hwmon: (max31790) Detect and report zero fan speed 2021-06-17 04:21:46 -07:00
mc13783-adc.c
mcp3021.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
menf21bmc_hwmon.c
mlxreg-fan.c hwmon: (mlxreg-fan) Support distinctive names per different cooling devices 2021-10-12 07:22:41 -07:00
mr75203.c hwmon/drivers/mr75203: use HZ macros 2021-09-08 11:50:26 -07:00
nct6683.c hwmon: (nct6683) Add another customer ID for NCT6683D sensor chip on some ASRock boards 2021-10-12 07:22:39 -07:00
nct6775.c hwmon: (nct6775) add ROG STRIX B550-A/X570-I GAMING 2021-12-26 15:02:06 -08:00
nct7802.c hwmon: (nct7802) Add of_node_put() before return 2021-10-28 21:27:38 -07:00
nct7904.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
npcm750-pwm-fan.c
nsa320-hwmon.c
ntc_thermistor.c hwmon: (ntc_thermistor) Add Samsung 1404-001221 NTC 2021-12-26 15:02:06 -08:00
nzxt-kraken2.c hwmon: add driver for NZXT Kraken X42/X52/X62/X72 2021-04-20 06:50:14 -07:00
nzxt-smart2.c hwmon: add driver for NZXT RGB&Fan Controller/Smart Device v2. 2021-12-26 15:02:07 -08:00
pc87360.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
pc87427.c
pcf8591.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
powr1220.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
pwm-fan.c hwmon: (pwm-fan) Ensure the fan going on in .probe() 2021-11-30 06:44:18 -08:00
raspberrypi-hwmon.c hwmon: (raspberrypi) Exit immediately in case of error in init 2021-12-26 15:02:06 -08:00
s3c-hwmon.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
sbrmi.c hwmon: Add support for SB-RMI power module 2021-08-17 14:54:25 -07:00
sbtsi_temp.c hwmon: (sbtsi) Add basic support for SB-TSI sensors 2020-12-12 08:32:35 -08:00
sch56xx-common.c hwmon: (sch56xx-common) Simplify sch56xx_device_add 2021-06-17 04:21:44 -07:00
sch56xx-common.h hwmon: (sch56xx) Use devres functions for watchdog 2021-06-17 04:21:44 -07:00
sch5627.c hwmon: (sch56xx) Use devres functions for watchdog 2021-06-17 04:21:44 -07:00
sch5636.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
scmi-hwmon.c hwmon: (scmi) port driver to the new scmi_sensor_proto_ops interface 2021-03-30 16:34:55 +01:00
scpi-hwmon.c hwmon: (scpi-hwmon) shows the negative temperature properly 2021-06-09 11:51:30 -07:00
sht3x.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
sht4x.c hwmon: (sht4x) Add device tree match table 2021-12-26 15:02:06 -08:00
sht15.c
sht21.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
shtc1.c hwmon: shtc1: add support for device tree bindings 2020-09-23 09:42:40 -07:00
sis5595.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
sl28cpld-hwmon.c hwmon: Add support for the sl28cpld hardware monitoring controller 2020-09-17 16:02:42 +01:00
smm665.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
smsc47b397.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
smsc47m1.c hwmon: (smsc47m1) Remove 'h' from printk format specifier 2021-01-27 17:44:17 -08:00
smsc47m192.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
sparx5-temp.c hwmon: (sparx5) Fix initial reading of temperature 2020-09-23 09:39:40 -07:00
stts751.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
tc74.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
tc654.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
thmc50.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
tmp102.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
tmp103.c hwmon: (tmp103) Convert tmp103 to use new hwmon registration API 2021-10-12 07:22:41 -07:00
tmp108.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
tmp401.c hwmon: (tmp401) Hide register write address differences in regmap code 2021-12-26 15:02:05 -08:00
tmp421.c hwmon: (tmp421) Add of_node_put() before return 2021-10-18 07:23:21 -07:00
tmp513.c hwmon: (tmp513) fix spelling typo in comments 2020-10-04 08:40:10 -07:00
tps23861.c hwmon: (tps23861) correct shunt LSB values 2021-06-10 08:40:09 -07:00
ultra45_env.c
vexpress-hwmon.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
via686a.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
via-cputemp.c
vt1211.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
vt8231.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
w83l785ts.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
w83l786ng.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
w83627ehf.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
w83627hf.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
w83773g.c hwmon: use simple i2c probe function 2020-09-23 09:42:39 -07:00
w83781d.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
w83791d.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
w83792d.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
w83793.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
w83795.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
wm831x-hwmon.c
wm8350-hwmon.c
xgene-hwmon.c mailbox: pcc: Use PCC mailbox channel pointer instead of standard 2021-10-29 22:46:38 -05:00