All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jean Delvare <jdelvare@suse.de>
To: lm-sensors@vger.kernel.org
Subject: Re: [lm-sensors] [PATCH 06/15] hwmon: (it87) Add support for IT8620E
Date: Wed, 01 Apr 2015 14:03:18 +0000	[thread overview]
Message-ID: <20150401160318.5e36b1e3@endymion.delvare> (raw)
In-Reply-To: <1427697235-23566-7-git-send-email-linux@roeck-us.net>

Hi Guenter,

On Sun, 29 Mar 2015 23:33:46 -0700, Guenter Roeck wrote:
> IT8620E is mostly compatible to IT7828F. Add generic support for it.
> 
> IT8620E supports up to 6 fan tachometers and 6 pwm controls.
> Support for the 6th tachometer and for the additional pwm controls
> are addded in separate patches.

Any plan to add support for the additional voltage/temperature inputs?
Pins 1, 2 and 3, registers 0x77, 0x2C-0x2E. Note that "VIN7" is used in
a confusing way in the datasheet, as it designates both the old
(internal) in7 and the new function of pin 1 :(

> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
>  Documentation/hwmon/it87 | 13 ++++++++++---
>  drivers/hwmon/Kconfig    |  2 +-
>  drivers/hwmon/it87.c     | 42 +++++++++++++++++++++++++++++++++++++++++-
>  3 files changed, 52 insertions(+), 5 deletions(-)
> 
> diff --git a/Documentation/hwmon/it87 b/Documentation/hwmon/it87
> index 64ea41f017c1..b5c0eed22c15 100644
> --- a/Documentation/hwmon/it87
> +++ b/Documentation/hwmon/it87
> @@ -6,6 +6,10 @@ Supported chips:
>      Prefix: 'it8603'
>      Addresses scanned: from Super I/O config space (8 I/O ports)
>      Datasheet: Not publicly available
> +  * IT8620E
> +    Prefix: 'it8620'
> +    Addresses scanned: from Super I/O config space (8 I/O ports)
> +    Datasheet: Not publicly available
>    * IT8705F
>      Prefix: 'it87'
>      Addresses scanned: from Super I/O config space (8 I/O ports)
> @@ -106,7 +110,7 @@ motherboard models.
>  Description
>  -----------
>  
> -This driver implements support for the IT8603E, IT8623E, IT8705F,
> +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.
> @@ -147,8 +151,11 @@ The IT8728F, IT8771E, and IT8772E are considered compatible with the IT8721F,
>  until a datasheet becomes available (hopefully.)
>  
>  The IT8603E/IT8623E is a custom design, hardware monitoring part is similar to
> -IT8728F. It only supports 16-bit fan mode, the full speed mode of the
> -fan is not supported (value 0 of pwmX_enable).
> +IT8728F. It only supports three fans, 16-bit fan mode, and the full speed mode

As mentioned before, I'd spell it "3 fans" for consistency.

> +of the fan is not supported (value 0 of pwmX_enable).
> +
> +The IT8620E is another custom design, hardware monitoring part is similar to
> +IT8728F. It only supports 16-bit fan mode.
>  
>  The IT8790E supports up to three fans. 16-bit fan mode is always enabled.
>  
> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
> index 929d30e2047e..eb8424f5e4b4 100644
> --- a/drivers/hwmon/Kconfig
> +++ b/drivers/hwmon/Kconfig
> @@ -601,7 +601,7 @@ config SENSORS_IT87
>  	  If you say yes here you get support for ITE IT8705F, IT8712F,
>  	  IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E,
>  	  IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E,
> -	  IT8603E, and IT8623E sensor chips, and the SiS950 clone.
> +	  IT8603E, IT8620E, and IT8623E sensor chips, and the SiS950 clone.
>  
>  	  This driver can also be built as a module.  If so, the module
>  	  will be called it87.
> diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
> index 01a021172121..ee6d30960fce 100644
> --- a/drivers/hwmon/it87.c
> +++ b/drivers/hwmon/it87.c
> @@ -11,6 +11,7 @@
>   *  similar parts.  The other devices are supported by different drivers.
>   *
>   *  Supports: IT8603E  Super I/O chip w/LPC interface
> + *            IT8620E  Super I/O chip w/LPC interface
>   *            IT8623E  Super I/O chip w/LPC interface
>   *            IT8705F  Super I/O chip w/LPC interface
>   *            IT8712F  Super I/O chip w/LPC interface
> @@ -69,7 +70,7 @@
>  #define DRVNAME "it87"
>  
>  enum chips { it87, it8712, it8716, it8718, it8720, it8721, it8728, it8771,
> -	     it8772, it8781, it8782, it8783, it8786, it8790, it8603 };
> +	     it8772, it8781, it8782, it8783, it8786, it8790, it8603, it8620 };
>  
>  static unsigned short force_id;
>  module_param(force_id, ushort, 0);
> @@ -154,6 +155,7 @@ static inline void superio_exit(void)
>  #define IT8783E_DEVID 0x8783
>  #define IT8786E_DEVID 0x8786
>  #define IT8603E_DEVID 0x8603
> +#define IT8620E_DEVID 0x8620
>  #define IT8623E_DEVID 0x8623
>  #define IT8790E_DEVID 0x8790
>  #define IT87_ACT_REG  0x30
> @@ -375,6 +377,14 @@ static const struct it87_devices it87_devices[] = {
>  		.peci_mask = 0x07,
>  		.suffix = "E",
>  	},
> +	[it8620] = {
> +		.name = "it8620",
> +		.features = FEAT_NEWER_AUTOPWM | FEAT_12MV_ADC | FEAT_16BIT_FANS
> +		  | FEAT_TEMP_OFFSET | FEAT_TEMP_PECI | FEAT_FIVE_FANS
> +		  | FEAT_IN7_INTERNAL,
> +		.peci_mask = 0x07,
> +		.suffix = "E",
> +	},
>  };
>  
>  #define has_16bit_fans(data)	((data)->features & FEAT_16BIT_FANS)
> @@ -1850,6 +1860,9 @@ static int __init it87_find(unsigned short *address,
>  	case IT8623E_DEVID:
>  		sio_data->type = it8603;
>  		break;
> +	case IT8620E_DEVID:
> +		sio_data->type = it8620;
> +		break;
>  	case 0xffff:	/* No device at all */
>  		goto exit;
>  	default:
> @@ -1985,6 +1998,33 @@ static int __init it87_find(unsigned short *address,
>  		sio_data->internal |= (1 << 3); /* in9 is AVCC */
>  
>  		sio_data->beep_pin = superio_inb(IT87_SIO_BEEP_PIN_REG) & 0x3f;
> +	} else if (sio_data->type = it8620) {
> +		int reg;
> +
> +		superio_select(GPIO);
> +
> +		/* Check for fan4, fan5 */
> +		reg = superio_inb(IT87_SIO_GPIO2_REG);
> +		if (!(reg & (1 << 5)))
> +			sio_data->skip_fan |= (1 << 3);
> +		if (!(reg & (1 << 4)))
> +			sio_data->skip_fan |= (1 << 4);
> +
> +		/* Check for pwm3, fan3 */
> +		reg = superio_inb(IT87_SIO_GPIO3_REG);
> +		if (reg & (1 << 6))
> +			sio_data->skip_pwm |= (1 << 2);
> +		if (reg & (1 << 7))
> +			sio_data->skip_fan |= (1 << 2);
> +
> +		/* Check for pwm2, fan2 */
> +		reg = superio_inb(IT87_SIO_GPIO5_REG);
> +		if (reg & (1 << 1))
> +			sio_data->skip_pwm |= (1 << 1);
> +		if (reg & (1 << 2))
> +			sio_data->skip_fan |= (1 << 1);
> +
> +		sio_data->beep_pin = superio_inb(IT87_SIO_BEEP_PIN_REG) & 0x3f;
>  	} else {
>  		int reg;
>  		bool uart6;

After adding the definition of IT87_SIO_GPIO2_REG, looks good.

Reviewed-by: Jean Delvare <jdelvare@suse.de>

-- 
Jean Delvare
SUSE L3 Support

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

  parent reply	other threads:[~2015-04-01 14:03 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-30  6:33 [lm-sensors] [PATCH 06/15] hwmon: (it87) Add support for IT8620E Guenter Roeck
2015-03-30 21:50 ` Guenter Roeck
2015-04-01 14:03 ` Jean Delvare [this message]
2015-04-01 14:10 ` Guenter Roeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150401160318.5e36b1e3@endymion.delvare \
    --to=jdelvare@suse.de \
    --cc=lm-sensors@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.