Commit Graph

11 Commits

Author SHA1 Message Date
Arvind Yadav
afc680f38e hwmon: (nct7802) constify attribute_group structures.
attribute_groups are not supposed to change at runtime. All functions
working with attribute_groups provided by <linux/sysfs.h> work with const
attribute_group. So mark the non-const structs as const.

File size before:
   text	   data	    bss	    dec	    hex	filename
   6161	   9400	      0	  15561	   3cc9	drivers/hwmon/nct7802.o

File size After adding 'const':
   text	   data	    bss	    dec	    hex	filename
   6465	   9080	      0	  15545	   3cb9	drivers/hwmon/nct7802.o

Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2017-08-13 08:24:38 -07:00
Guenter Roeck
c0d04e9112 hwmon: (nct7802) Fix overflows seen when writing into limit attributes
Fix overflows seen when writing voltage and temperature limit attributes.

The value passed to DIV_ROUND_CLOSEST() needs to be clamped, and the
value parameter passed to nct7802_write_fan_min() is an unsigned long.

Also, writing values larger than 2700000 into a fan limit attribute results
in writing 0 into the chip's limit registers. The exact behavior when
writing this value is unspecified. For consistency, report a limit of
1350000 if the chip register reads 0. This may be wrong, and the chip
behavior should be verified with the actual chip, but it is better than
reporting a value of 0 (which, when written, results in writing a value
of 0x1fff into the chip register).

Fixes: 3434f37835 ("hwmon: Driver for Nuvoton NCT7802Y")
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2016-12-12 11:32:34 -08:00
Constantine Shulyupin
1c6e8f6ba8 hwmon: (nct7802) Add auto_point attributes
Introduced REG_PWM, pwm[1..3]_auto_point[1..5]_temp,
pwm[1..3]_auto_point[1..5]_pwm, nct7802_auto_point_attrs,
nct7802_auto_point_group, updated nct7802_regmap_is_volatile

Signed-off-by: Constantine Shulyupin <const@MakeLinux.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2015-08-09 13:44:27 -07:00
Constantine Shulyupin
5102f02268 hwmon: (nct7802) Add pwmX_enable attribute
Introduced REG_SMARTFAN_EN, SMARTFAN_EN_SHIFT, pwmX_enable,
show_pwm_enable, store_pwm_enable.

Signed-off-by: Constantine Shulyupin <const@MakeLinux.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2015-08-09 13:44:26 -07:00
Constantine Shulyupin
876420e05a hwmon: (nct7802) Add pwm mode attributes
Introduced: show_pwm_mode, pwm1_mode, pwm2_mode, pwm2_mode

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2015-08-09 13:44:25 -07:00
Constantine Shulyupin
ea33597c6f hwmon: (nct7802) Add pwm control
Added fan output control registers.
Modes of operation are PWM (default) and DC.

Introduced show_pwm, store_pwm, nct7802_pwm_attrs, nct7802_pwm_group.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2015-08-09 13:44:25 -07:00
Constantine Shulyupin
fcdc5739dc hwmon: (nct7802) add temperature sensor type attribute
Sensor type:
3 diode (current mode), MD=1
4 thermistor, MD=2

Reference:
Nuvoton Hardware Monitoring IC NCT7802Y
7.2.32 Mode Selection Register
Location : Index 22h

Signed-off-by: Constantine Shulyupin <const@MakeLinux.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2015-08-09 13:44:25 -07:00
Guenter Roeck
9200bc4c28 hwmon: (nct7802) Fix integer overflow seen when writing voltage limits
Writing a large value into a voltage limit attribute can result
in an overflow due to an auto-conversion from unsigned long to
unsigned int.

Cc: Constantine Shulyupin <const@MakeLinux.com>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Cc: stable@vger.kernel.org # v4.1+
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2015-07-29 20:06:50 -07:00
Constantine Shulyupin
56172d81a9 hwmon: (nct7802) fix visibility of temp3
Excerpt from datasheet:
7.2.32 Mode Selection Register
RTD3_MD : 00=Closed , 01=Reserved , 10=Thermistor mode , 11=Voltage sense

Show temp3 only in Thermistor mode

Cc: stable@vger.kernel.org # v3.19+
Signed-off-by: Constantine Shulyupin <const@MakeLinux.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2015-07-01 13:56:27 -07:00
Krzysztof Kozlowski
3c535bca9a hwmon: (nct7802) Constify struct regmap_config
The regmap_config struct may be const because it is not modified by the
driver and regmap_init() accepts pointer to const.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2015-01-25 21:23:58 -08:00
Guenter Roeck
3434f37835 hwmon: Driver for Nuvoton NCT7802Y
NCT7802Y is an I2C based hardware monitoring chip from Nuvoton.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2014-11-30 20:13:13 -08:00