Andrew Jeffery
cf583b4275
hwmon: (pmbus/max31785) Add dual tachometer support
...
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>
2018-01-02 15:05:34 -08:00
..
2013-04-16 18:27:52 -07:00
2016-06-27 18:58:02 -07:00
2011-03-31 11:26:23 -03:00
2013-08-20 12:41:10 +02:00
2013-04-16 18:27:52 -07:00
2009-09-19 01:30:01 -04:00
2011-10-24 11:09:41 -07:00
2014-03-03 08:01:04 -08:00
2011-04-29 16:33:36 +02:00
2014-01-29 20:40:08 +01:00
2010-08-04 15:21:40 +02:00
2014-01-29 20:40:08 +01:00
2016-03-05 06:36:03 -08:00
2014-01-29 20:40:08 +01:00
2017-06-11 17:08:19 -07:00
2012-12-05 10:55:54 -08:00
2013-04-07 21:16:38 -07:00
2010-03-05 22:17:23 +01:00
2008-11-12 17:17:17 -08:00
2016-09-08 21:34:16 -07:00
2017-06-11 17:08:19 -07:00
2010-01-11 09:34:06 -08:00
2005-07-11 14:47:41 -07:00
2010-03-05 22:17:25 +01:00
2017-04-10 13:12:18 -07:00
2013-01-25 21:03:55 -08:00
2012-10-10 15:25:56 +02:00
2012-12-05 10:55:55 -08:00
2011-01-12 21:55:13 +01:00
2011-01-09 09:10:10 -08:00
2017-01-04 14:36:17 -07:00
2014-01-29 20:40:08 +01:00
2014-05-21 16:02:24 -07:00
2010-08-14 21:08:54 +02:00
2014-01-29 20:40:08 +01:00
2011-07-03 13:32:53 +02:00
2016-04-19 06:32:35 -07:00
2017-08-13 08:24:01 -07:00
2010-08-04 15:21:40 +02:00
2013-06-27 10:31:42 -07:00
2014-01-29 20:40:08 +01:00
2012-07-21 21:48:44 -07:00
2017-01-25 06:14:36 -08:00
2017-08-29 18:07:13 -07:00
2009-06-15 18:39:46 +02:00
2014-08-04 07:01:38 -07:00
2015-01-25 21:23:59 -08:00
2013-02-06 09:57:59 -08:00
2016-06-27 18:58:03 -07:00
2017-06-11 17:08:19 -07:00
2016-04-19 06:32:38 -07:00
2016-06-27 18:58:04 -07:00
2010-08-04 15:21:40 +02:00
2014-09-22 11:14:52 -07:00
2013-03-03 21:45:47 -08:00
2014-01-29 20:40:08 +01:00
2017-01-21 12:26:38 -08:00
2013-02-06 09:57:58 -08:00
2015-10-14 07:57:14 -07:00
2014-05-21 16:02:20 -07:00
2014-01-29 20:40:08 +01:00
2012-03-18 18:27:43 -07:00
2014-01-29 20:40:08 +01:00
2011-03-14 22:36:25 -07:00
2014-01-29 20:40:08 +01:00
2014-01-29 20:40:08 +01:00
2014-01-29 20:40:08 +01:00
2011-01-18 12:22:54 -08:00
2018-01-02 15:05:34 -08:00
2014-12-02 06:11:53 -08:00
2014-12-02 03:44:18 -08:00
2014-03-03 08:01:03 -08:00
2015-08-19 09:08:55 -07:00
2016-03-05 06:25:34 -08:00
2015-12-18 08:20:59 -08:00
2011-03-14 22:39:11 -07:00
2009-10-04 22:53:42 +02:00
2017-06-11 17:08:19 -07:00
2014-03-03 08:01:03 -08:00
2013-03-03 21:45:47 -08:00
2012-09-23 21:08:33 -07:00
2014-01-29 20:40:08 +01:00
2016-06-27 18:58:02 -07:00
2011-03-14 22:36:24 -07:00
2011-05-19 08:19:32 -07:00
2016-09-08 21:34:17 -07:00
2013-02-06 09:57:56 -08:00
2016-03-05 06:25:34 -08:00
2016-03-05 06:25:34 -08:00
2013-03-03 21:45:47 -08:00
2015-08-09 13:44:27 -07:00
2016-04-19 06:32:34 -07:00
2018-01-02 15:05:34 -08:00
2015-10-14 07:57:14 -07:00
2016-05-26 11:06:53 +02:00
2012-03-23 10:02:19 +01:00
2012-09-23 21:08:36 -07:00
2014-09-24 15:36:33 +01:00
2014-05-21 16:02:27 -07:00
2015-09-12 19:43:02 -07:00
2015-08-09 13:44:27 -07:00
2015-07-29 20:06:46 -07:00
2016-03-08 18:40:49 -08:00
2016-03-05 06:25:34 -08:00
2014-01-29 20:40:08 +01:00
2014-01-29 20:40:08 +01:00
2014-01-29 20:40:08 +01:00
2016-03-05 06:25:34 -08:00
2017-06-11 17:08:19 -07:00
2014-08-04 07:01:33 -07:00
2014-08-04 07:01:38 -07:00
2012-03-20 06:42:05 -07:00
2012-03-20 06:42:05 -07:00
2015-10-09 11:05:52 +01:00
2016-07-16 08:40:13 -07:00
2017-10-29 18:36:03 -07:00
2017-01-02 10:19:45 -08:00
2014-06-12 08:36:48 -07:00
2007-05-09 08:58:19 +02:00
2013-03-03 21:45:47 -08:00
2007-07-19 14:22:15 -04:00
2014-01-29 20:40:08 +01:00
2007-05-08 17:21:59 +02:00
2016-10-24 08:12:35 -02:00
2017-01-25 06:14:36 -08:00
2015-06-21 22:54:53 -07:00
2017-04-02 07:01:53 -07:00
2010-08-04 15:21:40 +02:00
2010-05-27 19:58:57 +02:00
2014-08-04 07:01:33 -07:00
2016-12-09 21:54:25 -08:00
2016-06-27 18:58:03 -07:00
2014-08-04 07:01:38 -07:00
2014-08-04 07:01:38 -07:00
2012-10-10 15:25:56 +02:00
2016-09-08 21:34:16 -07:00
2013-03-03 21:45:47 -08:00
2008-02-07 20:39:42 -05:00
2012-10-16 17:12:35 +01:00
2010-08-04 15:21:40 +02:00
2006-09-28 15:31:16 -07:00
2014-01-29 20:40:08 +01:00
2008-02-07 20:39:40 -05:00
2014-01-29 20:40:08 +01:00
2011-01-12 21:55:11 +01:00
2018-01-02 15:05:34 -08:00
2011-03-31 11:26:23 -03:00
2013-09-06 14:05:42 +02:00
2015-07-03 14:39:05 +02:00
2011-01-12 21:55:10 +01:00
2014-01-29 20:40:08 +01:00
2012-04-05 16:58:23 -07:00
2009-09-17 09:46:51 +02:00
2016-09-08 21:34:16 -07:00
2016-03-05 06:25:34 -08:00