* [lm-sensors] [PATCH v3] hwmon: (it87) Add support for IT8732F
@ 2015-08-05 19:53 Justin Maggard
2015-08-05 20:36 ` Phil Perry
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Justin Maggard @ 2015-08-05 19:53 UTC (permalink / raw)
To: lm-sensors
Add support for the IT8732F. This chip is pretty similar to IT8721F,
with the main difference being that the ADC LSB is 10.9 mV instead of
12 mV.
Signed-off-by: Justin Maggard <jmaggard@netgear.com>
---
Documentation/hwmon/it87 | 35 ++++++++++++++++++++++-------------
drivers/hwmon/Kconfig | 4 ++--
drivers/hwmon/it87.c | 43 ++++++++++++++++++++++++++++++++++++-------
3 files changed, 60 insertions(+), 22 deletions(-)
diff --git a/Documentation/hwmon/it87 b/Documentation/hwmon/it87
index e872948..733296d 100644
--- a/Documentation/hwmon/it87
+++ b/Documentation/hwmon/it87
@@ -38,6 +38,10 @@ Supported chips:
Prefix: 'it8728'
Addresses scanned: from Super I/O config space (8 I/O ports)
Datasheet: Not publicly available
+ * IT8732F
+ Prefix: 'it8732'
+ Addresses scanned: from Super I/O config space (8 I/O ports)
+ Datasheet: Not publicly available
* IT8771E
Prefix: 'it8771'
Addresses scanned: from Super I/O config space (8 I/O ports)
@@ -111,9 +115,9 @@ Description
-----------
This driver implements support for the IT8603E, IT8620E, IT8623E, IT8705F,
-IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E,
-IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E, and SiS950
-chips.
+IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8732F,
+IT8758E, IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E, and
+SiS950 chips.
These chips are 'Super I/O chips', supporting floppy disks, infrared ports,
joysticks and other miscellaneous stuff. For hardware monitoring, they
@@ -137,10 +141,10 @@ The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E and later IT8712F revisions
have support for 2 additional fans. The additional fans are supported by the
driver.
-The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E, IT8781F, IT8782F, IT8783E/F,
-and late IT8712F and IT8705F also have optional 16-bit tachometer counters
-for fans 1 to 3. This is better (no more fan clock divider mess) but not
-compatible with the older chips and revisions. The 16-bit tachometer mode
+The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F,
+IT8783E/F, and late IT8712F and IT8705F also have optional 16-bit tachometer
+counters for fans 1 to 3. This is better (no more fan clock divider mess) but
+not compatible with the older chips and revisions. The 16-bit tachometer mode
is enabled by the driver when one of the above chips is detected.
The IT8726F is just bit enhanced IT8716F with additional hardware
@@ -159,6 +163,9 @@ IT8728F. It only supports 16-bit fan mode.
The IT8790E supports up to 3 fans. 16-bit fan mode is always enabled.
+The IT8732F supports a closed-loop mode for fan control, but this is not
+currently implemented by the driver.
+
Temperatures are measured in degrees Celsius. An alarm is triggered once
when the Overtemperature Shutdown limit is crossed.
@@ -173,12 +180,14 @@ is done.
Voltage sensors (also known as IN sensors) report their values in volts. An
alarm is triggered if the voltage has crossed a programmable minimum or
maximum limit. Note that minimum in this case always means 'closest to
-zero'; this is important for negative voltage measurements. All voltage
-inputs can measure voltages between 0 and 4.08 volts, with a resolution of
-0.016 volt (except IT8603E, IT8721F/IT8758E and IT8728F: 0.012 volt.) The
-battery voltage in8 does not have limit registers.
-
-On the IT8603E, IT8721F/IT8758E, IT8781F, IT8782F, and IT8783E/F, some
+zero'; this is important for negative voltage measurements. On most chips, all
+voltage inputs can measure voltages between 0 and 4.08 volts, with a resolution
+of 0.016 volt. IT8603E, IT8721F/IT8758E and IT8728F can measure between 0 and
+3.06 volts, with a resolution of 0.012 volt. IT8732F can measure between 0 and
+2.8 volts with a resolution of 0.0109 volt. The battery voltage in8 does not
+have limit registers.
+
+On the IT8603E, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F, and IT8783E/F, some
voltage inputs are internal and scaled inside the chip:
* in3 (optional)
* in7 (optional for IT8781F, IT8782F, and IT8783E/F)
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
index 7c65b73..500b262 100644
--- a/drivers/hwmon/Kconfig
+++ b/drivers/hwmon/Kconfig
@@ -609,8 +609,8 @@ config SENSORS_IT87
depends on !PPC
select HWMON_VID
help
- If you say yes here you get support for ITE IT8705F, IT8712F,
- IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E,
+ If you say yes here you get support for ITE IT8705F, IT8712F, IT8716F,
+ IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8732F, IT8758E,
IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E,
IT8603E, IT8620E, and IT8623E sensor chips, and the SiS950 clone.
diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
index d0ee556..3ed6663 100644
--- a/drivers/hwmon/it87.c
+++ b/drivers/hwmon/it87.c
@@ -21,6 +21,7 @@
* IT8721F Super I/O chip w/LPC interface
* IT8726F Super I/O chip w/LPC interface
* IT8728F Super I/O chip w/LPC interface
+ * IT8732F Super I/O chip w/LPC interface
* IT8758E Super I/O chip w/LPC interface
* IT8771E Super I/O chip w/LPC interface
* IT8772E Super I/O chip w/LPC interface
@@ -69,8 +70,9 @@
#define DRVNAME "it87"
-enum chips { it87, it8712, it8716, it8718, it8720, it8721, it8728, it8771,
- it8772, it8781, it8782, it8783, it8786, it8790, it8603, it8620 };
+enum chips { it87, it8712, it8716, it8718, it8720, it8721, it8728, it8732,
+ it8771, it8772, it8781, it8782, it8783, it8786, it8790, it8603,
+ it8620 };
static unsigned short force_id;
module_param(force_id, ushort, 0);
@@ -147,6 +149,7 @@ static inline void superio_exit(void)
#define IT8720F_DEVID 0x8720
#define IT8721F_DEVID 0x8721
#define IT8726F_DEVID 0x8726
+#define IT8732F_DEVID 0x8732
#define IT8728F_DEVID 0x8728
#define IT8771E_DEVID 0x8771
#define IT8772E_DEVID 0x8772
@@ -265,6 +268,7 @@ struct it87_devices {
#define FEAT_VID (1 << 9) /* Set if chip supports VID */
#define FEAT_IN7_INTERNAL (1 << 10) /* Set if in7 is internal */
#define FEAT_SIX_FANS (1 << 11) /* Supports six fans */
+#define FEAT_10_9MV_ADC (1 << 12)
static const struct it87_devices it87_devices[] = {
[it87] = {
@@ -315,6 +319,15 @@ static const struct it87_devices it87_devices[] = {
| FEAT_IN7_INTERNAL,
.peci_mask = 0x07,
},
+ [it8732] = {
+ .name = "it8732",
+ .suffix = "F",
+ .features = FEAT_NEWER_AUTOPWM | FEAT_16BIT_FANS
+ | FEAT_TEMP_OFFSET | FEAT_TEMP_OLD_PECI | FEAT_TEMP_PECI
+ | FEAT_10_9MV_ADC | FEAT_IN7_INTERNAL,
+ .peci_mask = 0x07,
+ .old_peci_mask = 0x02, /* Actually reports PCH */
+ },
[it8771] = {
.name = "it8771",
.suffix = "E",
@@ -391,6 +404,7 @@ static const struct it87_devices it87_devices[] = {
#define has_16bit_fans(data) ((data)->features & FEAT_16BIT_FANS)
#define has_12mv_adc(data) ((data)->features & FEAT_12MV_ADC)
+#define has_10_9mv_adc(data) ((data)->features & FEAT_10_9MV_ADC)
#define has_newer_autopwm(data) ((data)->features & FEAT_NEWER_AUTOPWM)
#define has_old_autopwm(data) ((data)->features & FEAT_OLD_AUTOPWM)
#define has_temp_offset(data) ((data)->features & FEAT_TEMP_OFFSET)
@@ -475,7 +489,14 @@ struct it87_data {
static int adc_lsb(const struct it87_data *data, int nr)
{
- int lsb = has_12mv_adc(data) ? 12 : 16;
+ int lsb;
+
+ if (has_12mv_adc(data))
+ lsb = 120;
+ else if (has_10_9mv_adc(data))
+ lsb = 109;
+ else
+ lsb = 160;
if (data->in_scaled & (1 << nr))
lsb <<= 1;
return lsb;
@@ -483,13 +504,13 @@ static int adc_lsb(const struct it87_data *data, int nr)
static u8 in_to_reg(const struct it87_data *data, int nr, long val)
{
- val = DIV_ROUND_CLOSEST(val, adc_lsb(data, nr));
+ val = DIV_ROUND_CLOSEST(val * 10, adc_lsb(data, nr));
return clamp_val(val, 0, 255);
}
static int in_from_reg(const struct it87_data *data, int nr, int val)
{
- return val * adc_lsb(data, nr);
+ return DIV_ROUND_CLOSEST(val * adc_lsb(data, nr), 10);
}
static inline u8 FAN_TO_REG(long rpm, int div)
@@ -1515,9 +1536,14 @@ static ssize_t show_label(struct device *dev, struct device_attribute *attr,
};
struct it87_data *data = dev_get_drvdata(dev);
int nr = to_sensor_dev_attr(attr)->index;
+ const char *label;
- return sprintf(buf, "%s\n", has_12mv_adc(data) ? labels_it8721[nr]
- : labels[nr]);
+ if (has_12mv_adc(data) || has_10_9mv_adc(data))
+ label = labels_it8721[nr];
+ else
+ label = labels[nr];
+
+ return sprintf(buf, "%s\n", label);
}
static SENSOR_DEVICE_ATTR(in3_label, S_IRUGO, show_label, NULL, 0);
static SENSOR_DEVICE_ATTR(in7_label, S_IRUGO, show_label, NULL, 1);
@@ -1853,6 +1879,9 @@ static int __init it87_find(unsigned short *address,
case IT8728F_DEVID:
sio_data->type = it8728;
break;
+ case IT8732F_DEVID:
+ sio_data->type = it8732;
+ break;
case IT8771E_DEVID:
sio_data->type = it8771;
break;
--
2.5.0
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [lm-sensors] [PATCH v3] hwmon: (it87) Add support for IT8732F
2015-08-05 19:53 [lm-sensors] [PATCH v3] hwmon: (it87) Add support for IT8732F Justin Maggard
@ 2015-08-05 20:36 ` Phil Perry
2015-08-05 20:50 ` Justin Maggard
2015-08-05 20:56 ` Guenter Roeck
2 siblings, 0 replies; 4+ messages in thread
From: Phil Perry @ 2015-08-05 20:36 UTC (permalink / raw)
To: lm-sensors
On 05/08/15 20:53, Justin Maggard wrote:
> Add support for the IT8732F. This chip is pretty similar to IT8721F,
> with the main difference being that the ADC LSB is 10.9 mV instead of
> 12 mV.
>
> Signed-off-by: Justin Maggard <jmaggard@netgear.com>
> ---
> Documentation/hwmon/it87 | 35 ++++++++++++++++++++++-------------
> drivers/hwmon/Kconfig | 4 ++--
> drivers/hwmon/it87.c | 43 ++++++++++++++++++++++++++++++++++++-------
> 3 files changed, 60 insertions(+), 22 deletions(-)
>
> diff --git a/Documentation/hwmon/it87 b/Documentation/hwmon/it87
> index e872948..733296d 100644
> --- a/Documentation/hwmon/it87
> +++ b/Documentation/hwmon/it87
> @@ -38,6 +38,10 @@ Supported chips:
> Prefix: 'it8728'
> Addresses scanned: from Super I/O config space (8 I/O ports)
> Datasheet: Not publicly available
> + * IT8732F
> + Prefix: 'it8732'
> + Addresses scanned: from Super I/O config space (8 I/O ports)
> + Datasheet: Not publicly available
> * IT8771E
> Prefix: 'it8771'
> Addresses scanned: from Super I/O config space (8 I/O ports)
> @@ -111,9 +115,9 @@ Description
> -----------
>
> This driver implements support for the IT8603E, IT8620E, IT8623E, IT8705F,
> -IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E,
> -IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E, and SiS950
> -chips.
> +IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8732F,
> +IT8758E, IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E, and
> +SiS950 chips.
>
> These chips are 'Super I/O chips', supporting floppy disks, infrared ports,
> joysticks and other miscellaneous stuff. For hardware monitoring, they
> @@ -137,10 +141,10 @@ The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E and later IT8712F revisions
> have support for 2 additional fans. The additional fans are supported by the
> driver.
>
> -The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E, IT8781F, IT8782F, IT8783E/F,
> -and late IT8712F and IT8705F also have optional 16-bit tachometer counters
> -for fans 1 to 3. This is better (no more fan clock divider mess) but not
> -compatible with the older chips and revisions. The 16-bit tachometer mode
> +The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F,
> +IT8783E/F, and late IT8712F and IT8705F also have optional 16-bit tachometer
> +counters for fans 1 to 3. This is better (no more fan clock divider mess) but
> +not compatible with the older chips and revisions. The 16-bit tachometer mode
> is enabled by the driver when one of the above chips is detected.
>
> The IT8726F is just bit enhanced IT8716F with additional hardware
> @@ -159,6 +163,9 @@ IT8728F. It only supports 16-bit fan mode.
>
> The IT8790E supports up to 3 fans. 16-bit fan mode is always enabled.
>
> +The IT8732F supports a closed-loop mode for fan control, but this is not
> +currently implemented by the driver.
> +
> Temperatures are measured in degrees Celsius. An alarm is triggered once
> when the Overtemperature Shutdown limit is crossed.
>
> @@ -173,12 +180,14 @@ is done.
> Voltage sensors (also known as IN sensors) report their values in volts. An
> alarm is triggered if the voltage has crossed a programmable minimum or
> maximum limit. Note that minimum in this case always means 'closest to
> -zero'; this is important for negative voltage measurements. All voltage
> -inputs can measure voltages between 0 and 4.08 volts, with a resolution of
> -0.016 volt (except IT8603E, IT8721F/IT8758E and IT8728F: 0.012 volt.) The
> -battery voltage in8 does not have limit registers.
> -
> -On the IT8603E, IT8721F/IT8758E, IT8781F, IT8782F, and IT8783E/F, some
> +zero'; this is important for negative voltage measurements. On most chips, all
> +voltage inputs can measure voltages between 0 and 4.08 volts, with a resolution
> +of 0.016 volt. IT8603E, IT8721F/IT8758E and IT8728F can measure between 0 and
> +3.06 volts, with a resolution of 0.012 volt. IT8732F can measure between 0 and
> +2.8 volts with a resolution of 0.0109 volt. The battery voltage in8 does not
> +have limit registers.
> +
> +On the IT8603E, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F, and IT8783E/F, some
> voltage inputs are internal and scaled inside the chip:
> * in3 (optional)
> * in7 (optional for IT8781F, IT8782F, and IT8783E/F)
> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
> index 7c65b73..500b262 100644
> --- a/drivers/hwmon/Kconfig
> +++ b/drivers/hwmon/Kconfig
> @@ -609,8 +609,8 @@ config SENSORS_IT87
> depends on !PPC
> select HWMON_VID
> help
> - If you say yes here you get support for ITE IT8705F, IT8712F,
> - IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E,
> + If you say yes here you get support for ITE IT8705F, IT8712F, IT8716F,
> + IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8732F, IT8758E,
> IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E,
> IT8603E, IT8620E, and IT8623E sensor chips, and the SiS950 clone.
>
> diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
> index d0ee556..3ed6663 100644
> --- a/drivers/hwmon/it87.c
> +++ b/drivers/hwmon/it87.c
> @@ -21,6 +21,7 @@
> * IT8721F Super I/O chip w/LPC interface
> * IT8726F Super I/O chip w/LPC interface
> * IT8728F Super I/O chip w/LPC interface
> + * IT8732F Super I/O chip w/LPC interface
> * IT8758E Super I/O chip w/LPC interface
> * IT8771E Super I/O chip w/LPC interface
> * IT8772E Super I/O chip w/LPC interface
> @@ -69,8 +70,9 @@
>
> #define DRVNAME "it87"
>
> -enum chips { it87, it8712, it8716, it8718, it8720, it8721, it8728, it8771,
> - it8772, it8781, it8782, it8783, it8786, it8790, it8603, it8620 };
> +enum chips { it87, it8712, it8716, it8718, it8720, it8721, it8728, it8732,
> + it8771, it8772, it8781, it8782, it8783, it8786, it8790, it8603,
> + it8620 };
>
> static unsigned short force_id;
> module_param(force_id, ushort, 0);
> @@ -147,6 +149,7 @@ static inline void superio_exit(void)
> #define IT8720F_DEVID 0x8720
> #define IT8721F_DEVID 0x8721
> #define IT8726F_DEVID 0x8726
> +#define IT8732F_DEVID 0x8732
> #define IT8728F_DEVID 0x8728
Nit-picking, but shouldn't these be kept in numerical order?
> #define IT8771E_DEVID 0x8771
> #define IT8772E_DEVID 0x8772
> @@ -265,6 +268,7 @@ struct it87_devices {
> #define FEAT_VID (1 << 9) /* Set if chip supports VID */
> #define FEAT_IN7_INTERNAL (1 << 10) /* Set if in7 is internal */
> #define FEAT_SIX_FANS (1 << 11) /* Supports six fans */
> +#define FEAT_10_9MV_ADC (1 << 12)
>
> static const struct it87_devices it87_devices[] = {
> [it87] = {
> @@ -315,6 +319,15 @@ static const struct it87_devices it87_devices[] = {
> | FEAT_IN7_INTERNAL,
> .peci_mask = 0x07,
> },
> + [it8732] = {
> + .name = "it8732",
> + .suffix = "F",
> + .features = FEAT_NEWER_AUTOPWM | FEAT_16BIT_FANS
> + | FEAT_TEMP_OFFSET | FEAT_TEMP_OLD_PECI | FEAT_TEMP_PECI
> + | FEAT_10_9MV_ADC | FEAT_IN7_INTERNAL,
> + .peci_mask = 0x07,
> + .old_peci_mask = 0x02, /* Actually reports PCH */
> + },
> [it8771] = {
> .name = "it8771",
> .suffix = "E",
> @@ -391,6 +404,7 @@ static const struct it87_devices it87_devices[] = {
>
> #define has_16bit_fans(data) ((data)->features & FEAT_16BIT_FANS)
> #define has_12mv_adc(data) ((data)->features & FEAT_12MV_ADC)
> +#define has_10_9mv_adc(data) ((data)->features & FEAT_10_9MV_ADC)
> #define has_newer_autopwm(data) ((data)->features & FEAT_NEWER_AUTOPWM)
> #define has_old_autopwm(data) ((data)->features & FEAT_OLD_AUTOPWM)
> #define has_temp_offset(data) ((data)->features & FEAT_TEMP_OFFSET)
> @@ -475,7 +489,14 @@ struct it87_data {
>
> static int adc_lsb(const struct it87_data *data, int nr)
> {
> - int lsb = has_12mv_adc(data) ? 12 : 16;
> + int lsb;
> +
> + if (has_12mv_adc(data))
> + lsb = 120;
> + else if (has_10_9mv_adc(data))
> + lsb = 109;
> + else
> + lsb = 160;
> if (data->in_scaled & (1 << nr))
> lsb <<= 1;
> return lsb;
> @@ -483,13 +504,13 @@ static int adc_lsb(const struct it87_data *data, int nr)
>
> static u8 in_to_reg(const struct it87_data *data, int nr, long val)
> {
> - val = DIV_ROUND_CLOSEST(val, adc_lsb(data, nr));
> + val = DIV_ROUND_CLOSEST(val * 10, adc_lsb(data, nr));
> return clamp_val(val, 0, 255);
> }
>
> static int in_from_reg(const struct it87_data *data, int nr, int val)
> {
> - return val * adc_lsb(data, nr);
> + return DIV_ROUND_CLOSEST(val * adc_lsb(data, nr), 10);
> }
>
> static inline u8 FAN_TO_REG(long rpm, int div)
> @@ -1515,9 +1536,14 @@ static ssize_t show_label(struct device *dev, struct device_attribute *attr,
> };
> struct it87_data *data = dev_get_drvdata(dev);
> int nr = to_sensor_dev_attr(attr)->index;
> + const char *label;
>
> - return sprintf(buf, "%s\n", has_12mv_adc(data) ? labels_it8721[nr]
> - : labels[nr]);
> + if (has_12mv_adc(data) || has_10_9mv_adc(data))
> + label = labels_it8721[nr];
> + else
> + label = labels[nr];
> +
> + return sprintf(buf, "%s\n", label);
> }
> static SENSOR_DEVICE_ATTR(in3_label, S_IRUGO, show_label, NULL, 0);
> static SENSOR_DEVICE_ATTR(in7_label, S_IRUGO, show_label, NULL, 1);
> @@ -1853,6 +1879,9 @@ static int __init it87_find(unsigned short *address,
> case IT8728F_DEVID:
> sio_data->type = it8728;
> break;
> + case IT8732F_DEVID:
> + sio_data->type = it8732;
> + break;
> case IT8771E_DEVID:
> sio_data->type = it8771;
> break;
>
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [lm-sensors] [PATCH v3] hwmon: (it87) Add support for IT8732F
2015-08-05 19:53 [lm-sensors] [PATCH v3] hwmon: (it87) Add support for IT8732F Justin Maggard
2015-08-05 20:36 ` Phil Perry
@ 2015-08-05 20:50 ` Justin Maggard
2015-08-05 20:56 ` Guenter Roeck
2 siblings, 0 replies; 4+ messages in thread
From: Justin Maggard @ 2015-08-05 20:50 UTC (permalink / raw)
To: lm-sensors
On Wed, Aug 5, 2015 at 1:36 PM, Phil Perry <phil@elrepo.org> wrote:
> On 05/08/15 20:53, Justin Maggard wrote:
>> Add support for the IT8732F. This chip is pretty similar to IT8721F,
>> with the main difference being that the ADC LSB is 10.9 mV instead of
>> 12 mV.
>>
>> Signed-off-by: Justin Maggard <jmaggard@netgear.com>
>> ---
>> Documentation/hwmon/it87 | 35 ++++++++++++++++++++++-------------
>> drivers/hwmon/Kconfig | 4 ++--
>> drivers/hwmon/it87.c | 43 ++++++++++++++++++++++++++++++++++++-------
>> 3 files changed, 60 insertions(+), 22 deletions(-)
>>
>> diff --git a/Documentation/hwmon/it87 b/Documentation/hwmon/it87
>> index e872948..733296d 100644
>> --- a/Documentation/hwmon/it87
>> +++ b/Documentation/hwmon/it87
>> @@ -38,6 +38,10 @@ Supported chips:
>> Prefix: 'it8728'
>> Addresses scanned: from Super I/O config space (8 I/O ports)
>> Datasheet: Not publicly available
>> + * IT8732F
>> + Prefix: 'it8732'
>> + Addresses scanned: from Super I/O config space (8 I/O ports)
>> + Datasheet: Not publicly available
>> * IT8771E
>> Prefix: 'it8771'
>> Addresses scanned: from Super I/O config space (8 I/O ports)
>> @@ -111,9 +115,9 @@ Description
>> -----------
>>
>> This driver implements support for the IT8603E, IT8620E, IT8623E, IT8705F,
>> -IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E,
>> -IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E, and SiS950
>> -chips.
>> +IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8732F,
>> +IT8758E, IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E, and
>> +SiS950 chips.
>>
>> These chips are 'Super I/O chips', supporting floppy disks, infrared ports,
>> joysticks and other miscellaneous stuff. For hardware monitoring, they
>> @@ -137,10 +141,10 @@ The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E and later IT8712F revisions
>> have support for 2 additional fans. The additional fans are supported by the
>> driver.
>>
>> -The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E, IT8781F, IT8782F, IT8783E/F,
>> -and late IT8712F and IT8705F also have optional 16-bit tachometer counters
>> -for fans 1 to 3. This is better (no more fan clock divider mess) but not
>> -compatible with the older chips and revisions. The 16-bit tachometer mode
>> +The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F,
>> +IT8783E/F, and late IT8712F and IT8705F also have optional 16-bit tachometer
>> +counters for fans 1 to 3. This is better (no more fan clock divider mess) but
>> +not compatible with the older chips and revisions. The 16-bit tachometer mode
>> is enabled by the driver when one of the above chips is detected.
>>
>> The IT8726F is just bit enhanced IT8716F with additional hardware
>> @@ -159,6 +163,9 @@ IT8728F. It only supports 16-bit fan mode.
>>
>> The IT8790E supports up to 3 fans. 16-bit fan mode is always enabled.
>>
>> +The IT8732F supports a closed-loop mode for fan control, but this is not
>> +currently implemented by the driver.
>> +
>> Temperatures are measured in degrees Celsius. An alarm is triggered once
>> when the Overtemperature Shutdown limit is crossed.
>>
>> @@ -173,12 +180,14 @@ is done.
>> Voltage sensors (also known as IN sensors) report their values in volts. An
>> alarm is triggered if the voltage has crossed a programmable minimum or
>> maximum limit. Note that minimum in this case always means 'closest to
>> -zero'; this is important for negative voltage measurements. All voltage
>> -inputs can measure voltages between 0 and 4.08 volts, with a resolution of
>> -0.016 volt (except IT8603E, IT8721F/IT8758E and IT8728F: 0.012 volt.) The
>> -battery voltage in8 does not have limit registers.
>> -
>> -On the IT8603E, IT8721F/IT8758E, IT8781F, IT8782F, and IT8783E/F, some
>> +zero'; this is important for negative voltage measurements. On most chips, all
>> +voltage inputs can measure voltages between 0 and 4.08 volts, with a resolution
>> +of 0.016 volt. IT8603E, IT8721F/IT8758E and IT8728F can measure between 0 and
>> +3.06 volts, with a resolution of 0.012 volt. IT8732F can measure between 0 and
>> +2.8 volts with a resolution of 0.0109 volt. The battery voltage in8 does not
>> +have limit registers.
>> +
>> +On the IT8603E, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F, and IT8783E/F, some
>> voltage inputs are internal and scaled inside the chip:
>> * in3 (optional)
>> * in7 (optional for IT8781F, IT8782F, and IT8783E/F)
>> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
>> index 7c65b73..500b262 100644
>> --- a/drivers/hwmon/Kconfig
>> +++ b/drivers/hwmon/Kconfig
>> @@ -609,8 +609,8 @@ config SENSORS_IT87
>> depends on !PPC
>> select HWMON_VID
>> help
>> - If you say yes here you get support for ITE IT8705F, IT8712F,
>> - IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E,
>> + If you say yes here you get support for ITE IT8705F, IT8712F, IT8716F,
>> + IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8732F, IT8758E,
>> IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E,
>> IT8603E, IT8620E, and IT8623E sensor chips, and the SiS950 clone.
>>
>> diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
>> index d0ee556..3ed6663 100644
>> --- a/drivers/hwmon/it87.c
>> +++ b/drivers/hwmon/it87.c
>> @@ -21,6 +21,7 @@
>> * IT8721F Super I/O chip w/LPC interface
>> * IT8726F Super I/O chip w/LPC interface
>> * IT8728F Super I/O chip w/LPC interface
>> + * IT8732F Super I/O chip w/LPC interface
>> * IT8758E Super I/O chip w/LPC interface
>> * IT8771E Super I/O chip w/LPC interface
>> * IT8772E Super I/O chip w/LPC interface
>> @@ -69,8 +70,9 @@
>>
>> #define DRVNAME "it87"
>>
>> -enum chips { it87, it8712, it8716, it8718, it8720, it8721, it8728, it8771,
>> - it8772, it8781, it8782, it8783, it8786, it8790, it8603, it8620 };
>> +enum chips { it87, it8712, it8716, it8718, it8720, it8721, it8728, it8732,
>> + it8771, it8772, it8781, it8782, it8783, it8786, it8790, it8603,
>> + it8620 };
>>
>> static unsigned short force_id;
>> module_param(force_id, ushort, 0);
>> @@ -147,6 +149,7 @@ static inline void superio_exit(void)
>> #define IT8720F_DEVID 0x8720
>> #define IT8721F_DEVID 0x8721
>> #define IT8726F_DEVID 0x8726
>> +#define IT8732F_DEVID 0x8732
>> #define IT8728F_DEVID 0x8728
>
> Nit-picking, but shouldn't these be kept in numerical order?
>
Oops... yes, I'll fix that.
Anything else for v4? :-)
-Justin
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [lm-sensors] [PATCH v3] hwmon: (it87) Add support for IT8732F
2015-08-05 19:53 [lm-sensors] [PATCH v3] hwmon: (it87) Add support for IT8732F Justin Maggard
2015-08-05 20:36 ` Phil Perry
2015-08-05 20:50 ` Justin Maggard
@ 2015-08-05 20:56 ` Guenter Roeck
2 siblings, 0 replies; 4+ messages in thread
From: Guenter Roeck @ 2015-08-05 20:56 UTC (permalink / raw)
To: lm-sensors
Hi Justin,
On 08/05/2015 01:50 PM, Justin Maggard wrote:
> On Wed, Aug 5, 2015 at 1:36 PM, Phil Perry <phil@elrepo.org> wrote:
>> On 05/08/15 20:53, Justin Maggard wrote:
>>> Add support for the IT8732F. This chip is pretty similar to IT8721F,
>>> with the main difference being that the ADC LSB is 10.9 mV instead of
>>> 12 mV.
>>>
>>> Signed-off-by: Justin Maggard <jmaggard@netgear.com>
>>> ---
[ ... ]
>>>
>>> static unsigned short force_id;
>>> module_param(force_id, ushort, 0);
>>> @@ -147,6 +149,7 @@ static inline void superio_exit(void)
>>> #define IT8720F_DEVID 0x8720
>>> #define IT8721F_DEVID 0x8721
>>> #define IT8726F_DEVID 0x8726
>>> +#define IT8732F_DEVID 0x8732
>>> #define IT8728F_DEVID 0x8728
>>
>> Nit-picking, but shouldn't these be kept in numerical order?
>>
>
> Oops... yes, I'll fix that.
>
I think you were just testing us :-)
> Anything else for v4? :-)
>
Not worth a v4 just for that. The patch looks good to me otherwise.
I fixed this up and applied the patch to hwmon-next.
Thanks,
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-08-05 20:56 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-05 19:53 [lm-sensors] [PATCH v3] hwmon: (it87) Add support for IT8732F Justin Maggard
2015-08-05 20:36 ` Phil Perry
2015-08-05 20:50 ` Justin Maggard
2015-08-05 20:56 ` Guenter Roeck
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.